usb: dwc_otg_310: add rk3288 usb otg support
[firefly-linux-kernel-4.4.55.git] / drivers / usb / dwc_otg_310 / dwc_otg_driver.c
old mode 100755 (executable)
new mode 100644 (file)
index 4e064c6..9905a39
@@ -68,6 +68,7 @@ static const char dwc_host20_driver_name[] = "usb20_host";
 static const char dwc_otg20_driver_name[] = "usb20_otg";
 
 dwc_otg_device_t *g_otgdev;
+void *dwc_otg_dev;
 
 extern int pcd_init(struct platform_device *_dev);
 extern int otg20_hcd_init(struct platform_device *_dev);
@@ -385,6 +386,7 @@ void dwc_otg_force_device(dwc_otg_core_if_t *core_if)
        local_irq_save(flags);
 
        if (core_if->op_state == B_PERIPHERAL) {
+               local_irq_restore(flags);
                printk
                    ("dwc_otg_force_device,already in B_PERIPHERAL,everest\n");
                return;
@@ -915,6 +917,7 @@ static int host20_driver_remove(struct platform_device *_dev)
 }
 
 static const struct of_device_id usb20_host_of_match[] = {
+#ifdef CONFIG_ARM
        {
         .compatible = "rockchip,rk3188_usb20_host",
         .data = &usb20host_pdata_rk3188,
@@ -931,6 +934,7 @@ static const struct of_device_id usb20_host_of_match[] = {
         .compatible = "rockchip,rk3126_usb20_host",
         .data = &usb20host_pdata_rk3126,
         },
+#endif
        {},
 };
 
@@ -1288,6 +1292,7 @@ static int otg20_driver_remove(struct platform_device *_dev)
 }
 
 static const struct of_device_id usb20_otg_of_match[] = {
+#ifdef CONFIG_ARM
        {
         .compatible = "rockchip,rk3188_usb20_otg",
         .data = &usb20otg_pdata_rk3188,
@@ -1304,10 +1309,13 @@ static const struct of_device_id usb20_otg_of_match[] = {
         .compatible = "rockchip,rk3126_usb20_otg",
         .data = &usb20otg_pdata_rk3126,
         },
+#endif
+#ifdef CONFIG_ARM64
        {
-        .compatible = "rockchip,rk3368_usb20_otg",
+        .compatible = "rockchip,rk3368-usb",
         .data = &usb20otg_pdata_rk3368,
         },
+#endif
        { },
 };
 
@@ -1413,6 +1421,7 @@ static int otg20_driver_probe(struct platform_device *_dev)
         */
 
        g_otgdev = dwc_otg_device;
+       dwc_otg_dev = (struct device *)&_dev->dev;
        pldata->privdata = dwc_otg_device;
        dwc_otg_device->pldata = pldata;
 
@@ -1612,10 +1621,14 @@ static struct platform_driver dwc_otg_driver = {
 void rk_usb_power_up(void)
 {
        struct dwc_otg_platform_data *pldata_otg;
+#ifdef CONFIG_USB20_HOST
        struct dwc_otg_platform_data *pldata_host;
+#endif
+#ifdef CONFIG_USB_EHCI_RK
        struct rkehci_platform_data *pldata_ehci;
+#endif
 
-       if (cpu_is_rk3288()) {
+       if (is_rk3288_usb()) {
 #ifdef CONFIG_RK_USB_UART
                /* enable USB bypass UART function  */
                writel_relaxed(0x00c00000 | usb_to_uart_status,
@@ -1666,10 +1679,14 @@ void rk_usb_power_up(void)
 void rk_usb_power_down(void)
 {
        struct dwc_otg_platform_data *pldata_otg;
+#ifdef CONFIG_USB20_HOST
        struct dwc_otg_platform_data *pldata_host;
+#endif
+#ifdef CONFIG_USB_EHCI_RK
        struct rkehci_platform_data *pldata_ehci;
+#endif
 
-       if (cpu_is_rk3288()) {
+       if (is_rk3288_usb()) {
 #ifdef CONFIG_RK_USB_UART
                /* disable USB bypass UART function */
                usb_to_uart_status =