Skip to content

Commit

Permalink
pinctrl: samsung: Add support for SoC-specific suspend/resume callbacks
Browse files Browse the repository at this point in the history
SoC-specific driver might require additional save and restore of
registers. This patch adds pair of SoC-specific callbacks per pinctrl
device to account for this.

Signed-off-by: Tomasz Figa <t.figa@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Tested-by: Doug Anderson <dianders@chromium.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
  • Loading branch information
Tomasz Figa authored and Linus Walleij committed May 27, 2013
1 parent 97fc463 commit 21c2199
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 0 deletions.
6 changes: 6 additions & 0 deletions drivers/pinctrl/pinctrl-samsung.c
Original file line number Diff line number Diff line change
Expand Up @@ -1010,6 +1010,9 @@ static void samsung_pinctrl_suspend_dev(
reg, bank->pm_save[PINCFG_TYPE_FUNC]);
}
}

if (ctrl->suspend)
ctrl->suspend(drvdata);
}

/**
Expand All @@ -1026,6 +1029,9 @@ static void samsung_pinctrl_resume_dev(struct samsung_pinctrl_drv_data *drvdata)
void __iomem *virt_base = drvdata->virt_base;
int i;

if (ctrl->resume)
ctrl->resume(drvdata);

for (i = 0; i < ctrl->nr_banks; i++) {
struct samsung_pin_bank *bank = &ctrl->pin_banks[i];
void __iomem *reg = virt_base + bank->pctl_offset;
Expand Down
3 changes: 3 additions & 0 deletions drivers/pinctrl/pinctrl-samsung.h
Original file line number Diff line number Diff line change
Expand Up @@ -187,6 +187,9 @@ struct samsung_pin_ctrl {

int (*eint_gpio_init)(struct samsung_pinctrl_drv_data *);
int (*eint_wkup_init)(struct samsung_pinctrl_drv_data *);
void (*suspend)(struct samsung_pinctrl_drv_data *);
void (*resume)(struct samsung_pinctrl_drv_data *);

char *label;
};

Expand Down

0 comments on commit 21c2199

Please sign in to comment.