usb: dwc_otg: fix usb otg force_device_mode
authorlyz <lyz@rock-chips.com>
Wed, 1 Apr 2015 02:22:06 +0000 (10:22 +0800)
committerlyz <lyz@rock-chips.com>
Wed, 1 Apr 2015 02:28:44 +0000 (10:28 +0800)
TEST: set rockchip,usb-mode = <2> in dts and then the usb works

Tested-by: huang zhibao <hzb@rock-chips.com>
Signed-off-by: lyz <lyz@rock-chips.com>
drivers/usb/dwc_otg_310/dwc_otg_pcd_linux.c

index cc3afa20b6fea14161e54bbe559c535a8bbd32ec..99b3dd7c35efc463cb4cfc502d19e9b1e2f252e2 100755 (executable)
@@ -1752,6 +1752,12 @@ static void dwc_otg_pcd_work_init(dwc_otg_pcd_t *pcd,
                pldata->dwc_otg_uart_mode(pldata, PHY_USB_MODE);
        }
        schedule_delayed_work(&pcd->check_id_work, 8 * HZ);
+       if (otg_dev->core_if->usb_mode == USB_MODE_FORCE_DEVICE) {
+               pcd->vbus_status = 0;
+               dwc_otg_core_init(otg_dev->core_if);
+               cil_pcd_start(otg_dev->core_if);
+               dwc_otg_pcd_start_check_vbus_work(pcd);
+       }
 }
 
 #endif /* DWC_HOST_ONLY */