diff options
-rw-r--r-- | arch/arm/mach-mx6/board-mx6q_sabrelite.c | 4 | ||||
-rwxr-xr-x | arch/arm/plat-mxc/usb_common.c | 14 |
2 files changed, 18 insertions, 0 deletions
diff --git a/arch/arm/mach-mx6/board-mx6q_sabrelite.c b/arch/arm/mach-mx6/board-mx6q_sabrelite.c index 50c9e9c5231c..4d791f7c379a 100644 --- a/arch/arm/mach-mx6/board-mx6q_sabrelite.c +++ b/arch/arm/mach-mx6/board-mx6q_sabrelite.c @@ -276,6 +276,10 @@ static iomux_v3_cfg_t mx6q_sabrelite_pads[] = { /* USBOTG ID pin */ MX6Q_PAD_GPIO_1__USBOTG_ID, + /* USB OC pin */ + MX6Q_PAD_KEY_COL4__USBOH3_USBOTG_OC, + MX6Q_PAD_EIM_D30__USBOH3_USBH1_OC, + /* USDHC3 */ MX6Q_PAD_SD3_CLK__USDHC3_CLK_50MHZ, MX6Q_PAD_SD3_CMD__USDHC3_CMD_50MHZ, diff --git a/arch/arm/plat-mxc/usb_common.c b/arch/arm/plat-mxc/usb_common.c index 5ebbc6ef9b33..2c195d81ffb8 100755 --- a/arch/arm/plat-mxc/usb_common.c +++ b/arch/arm/plat-mxc/usb_common.c @@ -520,6 +520,14 @@ int fsl_usb_host_init(struct platform_device *pdev) } else if (xops->xcvr_type == PORTSC_PTS_UTMI) { usbh1_set_utmi_xcvr(); } + } else { + if (!strcmp("Host 1", pdata->name)) { + if (machine_is_mx6q_arm2()) + USB_H1_CTRL &= ~UCTRL_OVER_CUR_POL; + else if (machine_is_mx6q_sabrelite()) + USB_H1_CTRL |= UCTRL_OVER_CUR_POL; + USB_H1_CTRL |= UCTRL_OVER_CUR_DIS; + } } pr_debug("%s: %s success\n", __func__, pdata->name); @@ -827,6 +835,12 @@ int usbotg_init(struct platform_device *pdev) } else if (xops->xcvr_type == PORTSC_PTS_UTMI) { otg_set_utmi_xcvr(); } + } else { + if (machine_is_mx6q_arm2()) + USB_OTG_CTRL &= ~UCTRL_OVER_CUR_POL; + else if (machine_is_mx6q_sabrelite()) + USB_OTG_CTRL |= UCTRL_OVER_CUR_POL; + USB_OTG_CTRL |= UCTRL_OVER_CUR_DIS; } } |