summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathan Connell <w14185@motorola.com>2011-01-12 14:32:24 -0600
committerBenoit Goby <benoit@android.com>2011-01-25 17:33:24 -0800
commit769922c5aa726ddb100548f4df6cbe0c40503666 (patch)
treeab8a0837c63caa1efa6a7bfa84ae7f045560d682
parent41fec00c4b01ac43b19bba39422c85d00487a98b (diff)
ARM: tegra: usb_phy: Configure USB1 PHY to use programmed value
instead of fused value. This is required to meet High Speed USB signaling requirements. Change-Id: I659b33faa950605ecf040598112e1972047ae7ad Signed-off-by: Nathan Connell <w14185@motorola.com>
-rw-r--r--arch/arm/mach-tegra/usb_phy.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/arch/arm/mach-tegra/usb_phy.c b/arch/arm/mach-tegra/usb_phy.c
index 13e502cd0490..7242dda542c2 100644
--- a/arch/arm/mach-tegra/usb_phy.c
+++ b/arch/arm/mach-tegra/usb_phy.c
@@ -136,7 +136,7 @@
#define UTMIP_PD_CHRG (1 << 0)
#define UTMIP_SPARE_CFG0 0x834
-#define FUSE_SETUP_SEL (1 << 3);
+#define FUSE_SETUP_SEL (1 << 3)
#define UTMIP_XCVR_CFG1 0x838
#define UTMIP_FORCE_PDDISC_POWERDOWN (1 << 0)
@@ -420,6 +420,15 @@ static void utmi_phy_power_on(struct tegra_usb_phy *phy)
val |= UTMIP_BIAS_PDTRK_COUNT(0x5);
writel(val, base + UTMIP_BIAS_CFG1);
+ if (phy->instance == 0) {
+ val = readl(base + UTMIP_SPARE_CFG0);
+ if (phy->mode == TEGRA_USB_PHY_MODE_DEVICE)
+ val &= ~FUSE_SETUP_SEL;
+ else
+ val |= FUSE_SETUP_SEL;
+ writel(val, base + UTMIP_SPARE_CFG0);
+ }
+
if (phy->instance == 2) {
val = readl(base + USB_SUSP_CTRL);
val |= UTMIP_PHY_ENABLE;