From: Nathan Connell Date: Wed, 12 Jan 2011 20:32:24 +0000 (-0600) Subject: ARM: tegra: usb_phy: Configure USB1 PHY to use programmed value X-Git-Tag: firefly_0821_release~9833^2~44^2~4 X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=769922c5aa726ddb100548f4df6cbe0c40503666;p=firefly-linux-kernel-4.4.55.git 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 --- 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;