From 769922c5aa726ddb100548f4df6cbe0c40503666 Mon Sep 17 00:00:00 2001 From: Nathan Connell Date: Wed, 12 Jan 2011 14:32:24 -0600 Subject: [PATCH] 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 --- arch/arm/mach-tegra/usb_phy.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) 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; -- 2.34.1