usb: ehci-omap: don't hard-code TLL channel count
authorKeshava Munegowda <keshava_mgowda@ti.com>
Sun, 21 Nov 2010 17:53:40 +0000 (23:23 +0530)
committerAnand Gadiyar <gadiyar@ti.com>
Tue, 30 Nov 2010 21:02:01 +0000 (02:32 +0530)
Make the TLL channel count a parameter instead of a hardcoded
value. This allows us to be flexible with future OMAP revisions
which could have a different number of channels.

Signed-off-by: Keshava Munegowda <keshava_mgowda@ti.com>
Signed-off-by: Anand Gadiyar <gadiyar@ti.com>
drivers/usb/host/ehci-omap.c

index d042bdefa2bde0c8e4f4b15129cbbe8329bdbe5a..d60efdc9b142a3b9cabae8649960d77389ddb36b 100644 (file)
@@ -191,13 +191,14 @@ struct ehci_hcd_omap {
 
 /*-------------------------------------------------------------------------*/
 
-static void omap_usb_utmi_init(struct ehci_hcd_omap *omap, u8 tll_channel_mask)
+static void omap_usb_utmi_init(struct ehci_hcd_omap *omap, u8 tll_channel_mask,
+                               u8 tll_channel_count)
 {
        unsigned reg;
        int i;
 
        /* Program the 3 TLL channels upfront */
-       for (i = 0; i < OMAP_TLL_CHANNEL_COUNT; i++) {
+       for (i = 0; i < tll_channel_count; i++) {
                reg = ehci_omap_readl(omap->tll_base, OMAP_TLL_CHANNEL_CONF(i));
 
                /* Disable AutoIdle, BitStuffing and use SDR Mode */
@@ -217,7 +218,7 @@ static void omap_usb_utmi_init(struct ehci_hcd_omap *omap, u8 tll_channel_mask)
        ehci_omap_writel(omap->tll_base, OMAP_TLL_SHARED_CONF, reg);
 
        /* Enable channels now */
-       for (i = 0; i < OMAP_TLL_CHANNEL_COUNT; i++) {
+       for (i = 0; i < tll_channel_count; i++) {
                reg = ehci_omap_readl(omap->tll_base, OMAP_TLL_CHANNEL_CONF(i));
 
                /* Enable only the reg that is needed */
@@ -438,7 +439,7 @@ static int omap_start_ehc(struct ehci_hcd_omap *omap, struct usb_hcd *hcd)
                        tll_ch_mask |= OMAP_TLL_CHANNEL_3_EN_MASK;
 
                /* Enable UTMI mode for required TLL channels */
-               omap_usb_utmi_init(omap, tll_ch_mask);
+               omap_usb_utmi_init(omap, tll_ch_mask, OMAP_TLL_CHANNEL_COUNT);
        }
 
        if (omap->phy_reset) {