Эх сурвалжийг харах

usb: dwc3: support for pinctrl state change during system sleep

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>
Sekhar Nori 10 жил өмнө
parent
commit
6344475f53

+ 5 - 0
drivers/usb/dwc3/core.c

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