summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arch/arm/mach-mx6/board-mx6q_sabrelite.c4
-rwxr-xr-xarch/arm/plat-mxc/usb_common.c14
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;
}
}