pinctrl: samsung: Add support for SoC-specific suspend/resume callbacks
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>
This commit is contained in:
parent
97fc463769
commit
21c219933f
@ -1010,6 +1010,9 @@ static void samsung_pinctrl_suspend_dev(
|
|||||||
reg, bank->pm_save[PINCFG_TYPE_FUNC]);
|
reg, bank->pm_save[PINCFG_TYPE_FUNC]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (ctrl->suspend)
|
||||||
|
ctrl->suspend(drvdata);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1026,6 +1029,9 @@ static void samsung_pinctrl_resume_dev(struct samsung_pinctrl_drv_data *drvdata)
|
|||||||
void __iomem *virt_base = drvdata->virt_base;
|
void __iomem *virt_base = drvdata->virt_base;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
if (ctrl->resume)
|
||||||
|
ctrl->resume(drvdata);
|
||||||
|
|
||||||
for (i = 0; i < ctrl->nr_banks; i++) {
|
for (i = 0; i < ctrl->nr_banks; i++) {
|
||||||
struct samsung_pin_bank *bank = &ctrl->pin_banks[i];
|
struct samsung_pin_bank *bank = &ctrl->pin_banks[i];
|
||||||
void __iomem *reg = virt_base + bank->pctl_offset;
|
void __iomem *reg = virt_base + bank->pctl_offset;
|
||||||
|
@ -187,6 +187,9 @@ struct samsung_pin_ctrl {
|
|||||||
|
|
||||||
int (*eint_gpio_init)(struct samsung_pinctrl_drv_data *);
|
int (*eint_gpio_init)(struct samsung_pinctrl_drv_data *);
|
||||||
int (*eint_wkup_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;
|
char *label;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user