usb: dwc3: support for pinctrl state change during system sleep
authorSekhar Nori <nsekhar@ti.com>
Mon, 31 Aug 2015 15:39:08 +0000 (21:09 +0530)
committerFelipe Balbi <balbi@ti.com>
Sun, 27 Sep 2015 15:54:31 +0000 (10:54 -0500)
Add support for USB DRVVBUS pinctrl state change during
suspend/resume. This helps is conserving power during
system sleep.

Signed-off-by: Sekhar Nori <nsekhar@ti.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
drivers/usb/dwc3/core.c

index 6270581fc7a9141460cdbb3cde27a4d04a539725..cfbcebe2cf8fa69a414b2c1008ef22650b362622 100644 (file)
@@ -34,6 +34,7 @@
 #include <linux/dma-mapping.h>
 #include <linux/of.h>
 #include <linux/acpi.h>
+#include <linux/pinctrl/consumer.h>
 
 #include <linux/usb/ch9.h>
 #include <linux/usb/gadget.h>
@@ -1125,6 +1126,8 @@ static int dwc3_suspend(struct device *dev)
        phy_exit(dwc->usb2_generic_phy);
        phy_exit(dwc->usb3_generic_phy);
 
+       pinctrl_pm_select_sleep_state(dev);
+
        return 0;
 }
 
@@ -1134,6 +1137,8 @@ static int dwc3_resume(struct device *dev)
        unsigned long   flags;
        int             ret;
 
+       pinctrl_pm_select_default_state(dev);
+
        usb_phy_init(dwc->usb3_phy);
        usb_phy_init(dwc->usb2_phy);
        ret = phy_init(dwc->usb2_generic_phy);