]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
ENGR00161518 [MX6] USB: Add USB OC(Over Current) code
authormake shi <b15407@freescale.com>
Wed, 9 Nov 2011 10:59:00 +0000 (18:59 +0800)
committerOliver Wendt <ow@karo-electronics.de>
Mon, 30 Sep 2013 12:09:59 +0000 (14:09 +0200)
Add config USB OC setting code for mx6q, and make the OC default off.
After adding it, fixing the loop less code during kernel boot in mx6qLite.

Signed-off-by: make shi <b15407@freescale.com>
arch/arm/mach-mx6/board-mx6q_sabrelite.c
arch/arm/plat-mxc/usb_common.c

index 50c9e9c5231cc74a453b669f8e4a70c42b20ce8e..4d791f7c379a2197a2cada5ed252e27d33eb1dc8 100644 (file)
@@ -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,
index 5ebbc6ef9b336b98aeeac95d153e1241d02f95d3..2c195d81ffb80ce7f50ffaeaca3ca3aadff24fab 100755 (executable)
@@ -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;
                }
        }