]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
usb: chipidea: ci_hdrc_imx: restore pinctrl
authorPeter Chen <peter.chen@nxp.com>
Thu, 1 Nov 2018 06:47:20 +0000 (14:47 +0800)
committerPeter Chen <peter.chen@nxp.com>
Thu, 3 Sep 2020 08:32:07 +0000 (16:32 +0800)
The pinctrl setting may lost during the system suspend
(eg, imx7ulp), it needs to restore them after system resume.
Meanwhile, some platforms may need to set special pinctrl
for power comsumption.

Signed-off-by: Peter Chen <peter.chen@nxp.com>
drivers/usb/chipidea/ci_hdrc_imx.c

index d6085f46772feb06e191357c17ae7fae191ad5fb..25c65accf089c169b6a9cfbabedabf1a7ad3a8b6 100644 (file)
@@ -614,7 +614,12 @@ static int __maybe_unused ci_hdrc_imx_suspend(struct device *dev)
                }
        }
 
-       return imx_controller_suspend(dev);
+       ret = imx_controller_suspend(dev);
+       if (ret)
+               return ret;
+
+       pinctrl_pm_select_sleep_state(dev);
+       return ret;
 }
 
 static int __maybe_unused ci_hdrc_imx_resume(struct device *dev)
@@ -622,6 +627,7 @@ static int __maybe_unused ci_hdrc_imx_resume(struct device *dev)
        struct ci_hdrc_imx_data *data = dev_get_drvdata(dev);
        int ret;
 
+       pinctrl_pm_select_default_state(dev);
        ret = imx_controller_resume(dev);
        if (!ret && data->supports_runtime_pm) {
                pm_runtime_disable(dev);