fsl/usb: Fix phy type for Second USB controller
authorNikhil Badola <B46172@freescale.com>
Thu, 19 Dec 2013 05:38:46 +0000 (11:08 +0530)
committerYork Sun <yorksun@freescale.com>
Wed, 23 Apr 2014 00:58:45 +0000 (17:58 -0700)
Set correct phy_type value for second USB controller.
This is required for supporting SOCs having 2 USB controllers
working simultaneously, one with UTMI phy and other with ULPI phy

Signed-off-by: Nikhil Badola <B46172@freescale.com>
Reviewed-by: York Sun <yorksun@freescale.com>
drivers/usb/host/ehci-fsl.c

index 1ca7cf5d9b7911aac8e2bbc5c5ff7aefffe2e299..3fd9e13af8ae1877bfe448e1b2feff61e2792e4d 100644 (file)
@@ -41,11 +41,14 @@ int ehci_hcd_init(int index, enum usb_init_type init,
        struct usb_ehci *ehci = NULL;
        const char *phy_type = NULL;
        size_t len;
+       char current_usb_controller[5];
 #ifdef CONFIG_SYS_FSL_USB_INTERNAL_UTMI_PHY
        char usb_phy[5];
 
        usb_phy[0] = '\0';
 #endif
+       memset(current_usb_controller, '\0', 5);
+       snprintf(current_usb_controller, 4, "usb%d", index+1);
 
        switch (index) {
        case 0:
@@ -70,8 +73,9 @@ int ehci_hcd_init(int index, enum usb_init_type init,
        out_be32(&ehci->snoop2, 0x80000000 | SNOOP_SIZE_2GB);
 
        /* Init phy */
-       if (hwconfig_sub("usb1", "phy_type"))
-               phy_type = hwconfig_subarg("usb1", "phy_type", &len);
+       if (hwconfig_sub(current_usb_controller, "phy_type"))
+               phy_type = hwconfig_subarg(current_usb_controller,
+                               "phy_type", &len);
        else
                phy_type = getenv("usb_phy_type");