summaryrefslogtreecommitdiff
path: root/drivers/usb/host/ehci-hub.c
diff options
context:
space:
mode:
authorRamneek Mehresh <ramneek.mehresh@freescale.com>2013-04-16 08:41:19 (GMT)
committerFleming Andrew-AFLEMING <AFLEMING@freescale.com>2013-05-02 04:51:51 (GMT)
commitcb74e74b3f5bb0aeaa1a36ee20d311c671da02c8 (patch)
treedaf10d2c01da919d6d473d509d14e2ad8630988d /drivers/usb/host/ehci-hub.c
parentc4a4e6fbc411a53a25e653a14835bbda6f55a198 (diff)
downloadlinux-fsl-qoriq-cb74e74b3f5bb0aeaa1a36ee20d311c671da02c8.tar.xz
fsl/usb: Workaround for USB erratum-A005275
Incoming packets are randomly corrucpted by h/w resulting in varying errors. This workaround makes FS as default mode in all affected socs by - Disabling HS chirp signalling - Forcing EPS field of all packets to FS This errata does not affect FS mode. Forces all HS devices to connect in FS mode for all socs affected by this erratum: P3041 and P2041 rev 1.0 and 1.1 P5020 and P5010 rev 1.0 and 2.0 P5040 and P1010 rev 1.0 Workaround can be disabled by mentioning "no_erratum_a005275" in hwconfig string (in u-boot command line) Signed-off-by: Ramneek Mehresh <ramneek.mehresh@freescale.com> Change-Id: Ie7b75b033220e4be44b5c769d7c187928d84dd6d Reviewed-on: http://git.am.freescale.net:8181/1435 Reviewed-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com> Tested-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
Diffstat (limited to 'drivers/usb/host/ehci-hub.c')
-rw-r--r--drivers/usb/host/ehci-hub.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/usb/host/ehci-hub.c b/drivers/usb/host/ehci-hub.c
index 7d06e77..586b2d4 100644
--- a/drivers/usb/host/ehci-hub.c
+++ b/drivers/usb/host/ehci-hub.c
@@ -1064,6 +1064,13 @@ static int ehci_hub_control (
ehci->reset_done [wIndex] = jiffies
+ msecs_to_jiffies (50);
}
+
+ /* Force full-speed connect for FSL high-speed erratum;
+ * disable HS Chirp by setting PFSC bit
+ */
+ if (ehci_has_fsl_hs_errata(ehci))
+ temp |= (1 << PORTSC_FSL_PFSC);
+
ehci_writel(ehci, temp, status_reg);
break;