Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 21c21993 authored by Tomasz Figa's avatar Tomasz Figa Committed by Linus Walleij
Browse files

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: default avatarTomasz Figa <t.figa@samsung.com>
Signed-off-by: default avatarKyungmin Park <kyungmin.park@samsung.com>
Tested-by: default avatarDoug Anderson <dianders@chromium.org>
Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
parent 97fc4637
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -1010,6 +1010,9 @@ static void samsung_pinctrl_suspend_dev(
				 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;
	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;
+3 −0
Original line number Diff line number Diff line
@@ -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;
};