summaryrefslogtreecommitdiff
path: root/drivers/usb/dwc_otg_310/dwc_otg_driver.c
diff options
context:
space:
mode:
authorlyz <lyz@rock-chips.com>2014-08-07 21:16:14 +0800
committerlyz <lyz@rock-chips.com>2014-08-15 10:39:10 +0800
commitd765e373a1e10744d65b6f02e0f090b98501772e (patch)
tree2c65836c9a8d32bd0b66744be235783d0f545b88 /drivers/usb/dwc_otg_310/dwc_otg_driver.c
parent295c152c8bc48e4ab1f1f8e78d3b302e0237d5c3 (diff)
usb: dwc_otg: put usb phy back to normal state when shutdown
Diffstat (limited to 'drivers/usb/dwc_otg_310/dwc_otg_driver.c')
-rwxr-xr-xdrivers/usb/dwc_otg_310/dwc_otg_driver.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/usb/dwc_otg_310/dwc_otg_driver.c b/drivers/usb/dwc_otg_310/dwc_otg_driver.c
index 57034a80f4ee..2befa34ec6af 100755
--- a/drivers/usb/dwc_otg_310/dwc_otg_driver.c
+++ b/drivers/usb/dwc_otg_310/dwc_otg_driver.c
@@ -1217,12 +1217,18 @@ static int dwc_otg_driver_resume(struct platform_device *_dev)
static void dwc_otg_driver_shutdown(struct platform_device *_dev)
{
struct device *dev = &_dev->dev;
+ struct dwc_otg_platform_data *pldata = dev->platform_data;
dwc_otg_device_t *otg_dev = dev->platform_data;
dwc_otg_core_if_t *core_if = otg_dev->core_if;
dctl_data_t dctl = {.d32 = 0 };
DWC_PRINTF("%s: disconnect USB %s mode\n", __func__,
dwc_otg_is_host_mode(core_if) ? "host" : "device");
+
+ if( pldata->dwc_otg_uart_mode != NULL)
+ pldata->dwc_otg_uart_mode( pldata, PHY_USB_MODE);
+ if(pldata->phy_suspend != NULL)
+ pldata->phy_suspend(pldata, USB_PHY_ENABLED);
if (dwc_otg_is_host_mode(core_if)) {
if (core_if->hcd_cb && core_if->hcd_cb->stop)
core_if->hcd_cb->stop(core_if->hcd_cb_p);