Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

pinctrl: msm: Add sleep pinctrl state transitions

Add PM suspend callbacks to the msm core driver that select the
sleep and default pinctrl states. Then wire those callbacks up
in the sdm845 driver, for those boards that may have GPIO hogs
that need to change state during suspend.

Signed-off-by: Evan Green <evgreen@chromium.org>
Reviewed-by: Stephen Boyd <swboyd@chromium.org>
Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>

authored by

Evan Green and committed by
Linus Walleij
977d057a 757bd6d5

+22
+19
drivers/pinctrl/qcom/pinctrl-msm.c
··· 1072 1072 } 1073 1073 } 1074 1074 1075 + static int msm_pinctrl_suspend(struct device *dev) 1076 + { 1077 + struct msm_pinctrl *pctrl = dev_get_drvdata(dev); 1078 + 1079 + return pinctrl_force_sleep(pctrl->pctrl); 1080 + } 1081 + 1082 + static int msm_pinctrl_resume(struct device *dev) 1083 + { 1084 + struct msm_pinctrl *pctrl = dev_get_drvdata(dev); 1085 + 1086 + return pinctrl_force_default(pctrl->pctrl); 1087 + } 1088 + 1089 + SIMPLE_DEV_PM_OPS(msm_pinctrl_dev_pm_ops, msm_pinctrl_suspend, 1090 + msm_pinctrl_resume); 1091 + 1092 + EXPORT_SYMBOL(msm_pinctrl_dev_pm_ops); 1093 + 1075 1094 int msm_pinctrl_probe(struct platform_device *pdev, 1076 1095 const struct msm_pinctrl_soc_data *soc_data) 1077 1096 {
+2
drivers/pinctrl/qcom/pinctrl-msm.h
··· 123 123 unsigned int ntiles; 124 124 }; 125 125 126 + extern const struct dev_pm_ops msm_pinctrl_dev_pm_ops; 127 + 126 128 int msm_pinctrl_probe(struct platform_device *pdev, 127 129 const struct msm_pinctrl_soc_data *soc_data); 128 130 int msm_pinctrl_remove(struct platform_device *pdev);
+1
drivers/pinctrl/qcom/pinctrl-sdm845.c
··· 1300 1300 static struct platform_driver sdm845_pinctrl_driver = { 1301 1301 .driver = { 1302 1302 .name = "sdm845-pinctrl", 1303 + .pm = &msm_pinctrl_dev_pm_ops, 1303 1304 .of_match_table = sdm845_pinctrl_of_match, 1304 1305 }, 1305 1306 .probe = sdm845_pinctrl_probe,