diff options
author | Rakesh Bodla <rbodla@nvidia.com> | 2011-07-14 18:19:41 +0530 |
---|---|---|
committer | Varun Colbert <vcolbert@nvidia.com> | 2011-07-15 14:42:27 -0700 |
commit | 6259e05c3c5ac671a65bb3bf86153be0e0312b21 (patch) | |
tree | 9454a5119ca108630f83c978291984d2d1b40d01 | |
parent | 99b8fbcbbdcd0aa309979756f7e37c005489659e (diff) |
arm: tegra: usb_phy: enable utmip phy
UTMIP_PHY_ENABLE bit should be set, otherwise
phy won't work. Also, modified the logic of
turning power ON of pad circuit.
Bug 846719
Change-Id: I1ea654322db9a70b3007b06309dc3cc753b23edf
Reviewed-on: http://git-master/r/41038
Reviewed-by: Varun Colbert <vcolbert@nvidia.com>
Tested-by: Varun Colbert <vcolbert@nvidia.com>
-rw-r--r-- | arch/arm/mach-tegra/usb_phy.c | 21 |
1 files changed, 9 insertions, 12 deletions
diff --git a/arch/arm/mach-tegra/usb_phy.c b/arch/arm/mach-tegra/usb_phy.c index 2a56da4bcd39..8c9f9fafeeb3 100644 --- a/arch/arm/mach-tegra/usb_phy.c +++ b/arch/arm/mach-tegra/usb_phy.c @@ -561,15 +561,14 @@ static int utmip_pad_power_on(struct tegra_usb_phy *phy) spin_lock_irqsave(&utmip_pad_lock, flags); - if (utmip_pad_count++ == 0) { - val = readl(base + UTMIP_BIAS_CFG0); - val &= ~(UTMIP_OTGPD | UTMIP_BIASPD); + utmip_pad_count++; + val = readl(base + UTMIP_BIAS_CFG0); + val &= ~(UTMIP_OTGPD | UTMIP_BIASPD); #ifndef CONFIG_ARCH_TEGRA_2x_SOC - val |= UTMIP_HSSQUELCH_LEVEL(0x2) | UTMIP_HSDISCON_LEVEL(0x2) | - UTMIP_HSDISCON_LEVEL_MSB; + val |= UTMIP_HSSQUELCH_LEVEL(0x2) | UTMIP_HSDISCON_LEVEL(0x2) | + UTMIP_HSDISCON_LEVEL_MSB; #endif - writel(val, base + UTMIP_BIAS_CFG0); - } + writel(val, base + UTMIP_BIAS_CFG0); spin_unlock_irqrestore(&utmip_pad_lock, flags); @@ -843,11 +842,9 @@ static int utmi_phy_power_on(struct tegra_usb_phy *phy, bool is_dpd) writel(val, base + USB_SUSP_CTRL); } #else - if ((phy->instance == 1) || (phy->instance == 2)) { - val = readl(base + USB_SUSP_CTRL); - val |= UTMIP_PHY_ENABLE; - writel(val, base + USB_SUSP_CTRL); - } + val = readl(base + USB_SUSP_CTRL); + val |= UTMIP_PHY_ENABLE; + writel(val, base + USB_SUSP_CTRL); #endif val = readl(base + USB_SUSP_CTRL); |