From: Ajay Kumar Gupta <ajay.gu...@ti.com>

Enabled the phy control logic for am335x also based on usbss
revision register.

[zon...@gmail.com: rebased to 3.7-rc1]

Signed-off-by: Ajay Kumar Gupta <ajay.gu...@ti.com>
---
 arch/arm/plat-omap/include/plat/usb.h |  1 +
 drivers/usb/musb/musb_dsps.c          | 17 +++++++++++------
 2 files changed, 12 insertions(+), 6 deletions(-)

diff --git a/arch/arm/plat-omap/include/plat/usb.h 
b/arch/arm/plat-omap/include/plat/usb.h
index 43052e7f..bb27e88 100644
--- a/arch/arm/plat-omap/include/plat/usb.h
+++ b/arch/arm/plat-omap/include/plat/usb.h
@@ -127,6 +127,7 @@ extern void am35x_set_mode(u8 musb_mode);
 /* TI81XX specific definitions */
 #define MUSB_USBSS_REV_816X    0x9
 #define MUSB_USBSS_REV_814X    0xb
+#define MUSB_USBSS_REV_33XX    0xd
 
 /* TI816X PHY controls bits */
 #define TI816X_USBPHY0_NORMAL_MODE     (1 << 0)
diff --git a/drivers/usb/musb/musb_dsps.c b/drivers/usb/musb/musb_dsps.c
index 9b412b4..ba400dc 100644
--- a/drivers/usb/musb/musb_dsps.c
+++ b/drivers/usb/musb/musb_dsps.c
@@ -149,16 +149,21 @@ static void musb_dsps_phy_control(struct dsps_glue *glue, 
u8 id, u8 on)
                if (glue->usbss_rev == MUSB_USBSS_REV_816X) {
                        usbphycfg |= TI816X_USBPHY0_NORMAL_MODE;
                        usbphycfg &= ~TI816X_USBPHY_REFCLK_OSC;
-               } else if (glue->usbss_rev == MUSB_USBSS_REV_814X) {
-                       usbphycfg &= ~(USBPHY_CM_PWRDN | USBPHY_OTG_PWRDN
-                               | USBPHY_DPINPUT | USBPHY_DMINPUT);
-                       usbphycfg |= (USBPHY_OTGVDET_EN | USBPHY_OTGSESSEND_EN
-                               | USBPHY_DPOPBUFCTL | USBPHY_DMOPBUFCTL);
+               } else if (glue->usbss_rev == MUSB_USBSS_REV_814X ||
+                               glue->usbss_rev == MUSB_USBSS_REV_33XX) {
+                       usbphycfg &= ~(USBPHY_CM_PWRDN | USBPHY_OTG_PWRDN);
+                       usbphycfg |= USBPHY_OTGVDET_EN | USBPHY_OTGSESSEND_EN;
+                       if (glue->usbss_rev == MUSB_USBSS_REV_814X) {
+                               usbphycfg &= ~(USBPHY_DPINPUT | USBPHY_DMINPUT);
+                               usbphycfg |= USBPHY_DPOPBUFCTL
+                                               | USBPHY_DMOPBUFCTL;
+                       }
                }
        } else {
                if (glue->usbss_rev == MUSB_USBSS_REV_816X)
                        usbphycfg &= ~TI816X_USBPHY0_NORMAL_MODE;
-               else if (glue->usbss_rev == MUSB_USBSS_REV_814X)
+               else if (glue->usbss_rev == MUSB_USBSS_REV_814X ||
+                               glue->usbss_rev == MUSB_USBSS_REV_33XX)
                        usbphycfg |= USBPHY_CM_PWRDN | USBPHY_OTG_PWRDN;
        }
        __raw_writel(usbphycfg, glue->usb_ctrl[id]);
-- 
1.7.11.7

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to