Merge branch develop-3.10
[firefly-linux-kernel-4.4.55.git] / drivers / usb / dwc_otg_310 / dwc_otg_driver.c
index 775d29c6ba506c60ff86bf21806475da7fd306e1..58abce5e7a3f4e162649723517013d2abe172796 100755 (executable)
@@ -77,8 +77,9 @@ extern void hcd_remove(struct platform_device *_dev);
 extern void dwc_otg_adp_start(dwc_otg_core_if_t *core_if, uint8_t is_host);
 
 
-
+#ifdef CONFIG_RK_USB_UART
 static u32 usb_to_uart_status;
+#endif
 /*-------------------------------------------------------------------------*/
 /* Encapsulate the module parameter settings */
 
@@ -1609,11 +1610,7 @@ void rk_usb_power_up(void)
        struct dwc_otg_platform_data *pldata_otg;
        struct dwc_otg_platform_data *pldata_host;
        struct rkehci_platform_data *pldata_ehci;
-       if (cpu_is_rk312x()) {
-               pldata_otg = &usb20otg_pdata_rk3126;
-               if (usb_to_uart_status)
-                       pldata_otg->dwc_otg_uart_mode(pldata_otg, PHY_UART_MODE);
-       }
+
        if (cpu_is_rk3288()) {
 #ifdef CONFIG_RK_USB_UART
                /* enable USB bypass UART function  */
@@ -1650,6 +1647,15 @@ void rk_usb_power_up(void)
                }
 #endif
 
+       } else {
+               dwc_otg_device_t *otg_dev = g_otgdev;
+
+               if (!otg_dev)
+                       return;
+
+               pldata_otg = otg_dev->pldata;
+               if (pldata_otg && pldata_otg->phy_power_down)
+                       pldata_otg->phy_power_down(PHY_POWER_UP);
        }
 }
 
@@ -1659,11 +1665,6 @@ void rk_usb_power_down(void)
        struct dwc_otg_platform_data *pldata_host;
        struct rkehci_platform_data *pldata_ehci;
 
-       if (cpu_is_rk312x()) {
-               pldata_otg = &usb20otg_pdata_rk3126;
-               usb_to_uart_status = pldata_otg->get_status(USB_STATUS_UARTMODE);
-               pldata_otg->dwc_otg_uart_mode(pldata_otg, PHY_USB_MODE);
-       }
        if (cpu_is_rk3288()) {
 #ifdef CONFIG_RK_USB_UART
                /* disable USB bypass UART function */
@@ -1707,6 +1708,15 @@ void rk_usb_power_down(void)
                                               RK3288_GRF_UOC1_CON0);
                }
 #endif
+       } else {
+               dwc_otg_device_t *otg_dev = g_otgdev;
+
+               if (!otg_dev)
+                       return;
+
+               pldata_otg = otg_dev->pldata;
+               if (pldata_otg && pldata_otg->phy_power_down)
+                       pldata_otg->phy_power_down(PHY_POWER_DOWN);
        }
 }