diff options
author | Chris Packham <judge.packham@gmail.com> | 2018-10-04 20:03:53 +1300 |
---|---|---|
committer | York Sun <york.sun@nxp.com> | 2018-10-29 13:13:05 -0700 |
commit | 4eaf7f525a0874a1eff0f5666004896cc5c89fa3 (patch) | |
tree | 551c1b5d786f0f8fc0182361ad98f591c6a71481 /drivers/usb/host/ehci.h | |
parent | 454cf76184c65426b68033a23da086e73663f2fc (diff) | |
download | u-boot-4eaf7f525a0874a1eff0f5666004896cc5c89fa3.tar.gz |
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.h | 4 |
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 */ }; |