summaryrefslogtreecommitdiff
path: root/drivers/usb/host/ehci.h
diff options
context:
space:
mode:
authorChris Packham <judge.packham@gmail.com>2018-10-04 10:03:53 +0300
committerYork Sun <york.sun@nxp.com>2018-10-29 23:13:05 +0300
commit4eaf7f525a0874a1eff0f5666004896cc5c89fa3 (patch)
tree551c1b5d786f0f8fc0182361ad98f591c6a71481 /drivers/usb/host/ehci.h
parent454cf76184c65426b68033a23da086e73663f2fc (diff)
downloadu-boot-4eaf7f525a0874a1eff0f5666004896cc5c89fa3.tar.xz
fsl/usb: Workaround for USB erratum-A005275
Workaround makes FS as default mode on all affected socs. Add support to check erratum-A005275 validity for an soc. This info is required to determine whether a given soc is affected by this erratum. Add quirk for this erratum "has_fsl_erratum_a005275" . This quirk is used to enable workaround for the errata Force FS mode as default by: - making EPS as FS - setting PFSC bit to disable HS chirping This workaround can be disabled by mentioning "no_erratum_a005275" in hwconfig string Signed-off-by: Chris Packham <judge.packham@gmail.com> Reviewed-by: York Sun <york.sun@nxp.com>
Diffstat (limited to 'drivers/usb/host/ehci.h')
-rw-r--r--drivers/usb/host/ehci.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/usb/host/ehci.h b/drivers/usb/host/ehci.h
index 7945016624..6c359af90c 100644
--- a/drivers/usb/host/ehci.h
+++ b/drivers/usb/host/ehci.h
@@ -8,6 +8,7 @@
#ifndef USB_EHCI_H
#define USB_EHCI_H
+#include <stdbool.h>
#include <usb.h>
#include <generic-phy.h>
@@ -66,6 +67,8 @@ struct ehci_hcor {
#define PORTSC_PSPD_FS 0x0
#define PORTSC_PSPD_LS 0x1
#define PORTSC_PSPD_HS 0x2
+#define PORTSC_FSL_PFSC BIT(24) /* PFSC bit to disable HS chirping */
+
uint32_t or_systune;
} __attribute__ ((packed, aligned(4)));
@@ -251,6 +254,7 @@ struct ehci_ctrl {
uint32_t *periodic_list;
int periodic_schedules;
int ntds;
+ bool has_fsl_erratum_a005275; /* Freescale HS silicon quirk */
struct ehci_ops ops;
void *priv; /* client's private data */
};