MLK-20158-1 usb: chipidea: ci_hdrc_imx: restore pinctrl
authorPeter Chen <peter.chen@nxp.com>
Thu, 1 Nov 2018 06:47:20 +0000 (14:47 +0800)
committerLeonard Crestez <leonard.crestez@nxp.com>
Wed, 17 Apr 2019 23:51:34 +0000 (02:51 +0300)
The pinctrl setting may lost during the system suspend
(eg, imx7ulp), we need to restore it after system resume.
Meanwhile, some platforms may need to set special pinctrl
for power comsumption.

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

index fa3ca2a..6cf925b 100644 (file)
@@ -677,7 +677,12 @@ static int 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 ci_hdrc_imx_resume(struct device *dev)
@@ -685,6 +690,7 @@ static int 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);