diff options
author | Tom Rini <trini@konsulko.com> | 2016-09-30 21:58:44 -0400 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2016-09-30 21:58:44 -0400 |
commit | fe4ba689a0cb2bb2ceafb88556a57bd80814b648 (patch) | |
tree | 1012656ba1d3e9f8288d69de33c71417b2f22466 /drivers/usb/common | |
parent | f413d1cae89143ad45b066b3d3bc602deafcb50a (diff) | |
parent | 4c043712e9910ef1d612aedbd8304a1f7348ef5f (diff) | |
download | u-boot-fe4ba689a0cb2bb2ceafb88556a57bd80814b648.tar.gz |
Merge branch 'master' of git://git.denx.de/u-boot-usb
Signed-off-by: Tom Rini <trini@konsulko.com>
Conflicts:
include/configs/dra7xx_evm.h
Diffstat (limited to 'drivers/usb/common')
-rw-r--r-- | drivers/usb/common/fsl-dt-fixup.c | 47 | ||||
-rw-r--r-- | drivers/usb/common/fsl-errata.c | 26 |
2 files changed, 50 insertions, 23 deletions
diff --git a/drivers/usb/common/fsl-dt-fixup.c b/drivers/usb/common/fsl-dt-fixup.c index 9c48852ea0..63a24f74ad 100644 --- a/drivers/usb/common/fsl-dt-fixup.c +++ b/drivers/usb/common/fsl-dt-fixup.c @@ -86,8 +86,9 @@ static int fdt_fixup_usb_mode_phy_type(void *blob, const char *mode, return node_offset; } -static int fdt_fixup_usb_erratum(void *blob, const char *prop_erratum, - const char *controller_type, int start_offset) +static int fsl_fdt_fixup_usb_erratum(void *blob, const char *prop_erratum, + const char *controller_type, + int start_offset) { int node_offset, err; const char *node_type = NULL; @@ -114,24 +115,24 @@ static int fdt_fixup_usb_erratum(void *blob, const char *prop_erratum, return node_offset; } -static int fdt_fixup_erratum(int *usb_erratum_off, void *blob, - const char *controller_type, char *str, - bool (*has_erratum)(void)) +static int fsl_fdt_fixup_erratum(int *usb_erratum_off, void *blob, + const char *controller_type, char *str, + bool (*has_erratum)(void)) { char buf[32] = {0}; snprintf(buf, sizeof(buf), "fsl,usb-erratum-%s", str); if (!has_erratum()) return -EINVAL; - *usb_erratum_off = fdt_fixup_usb_erratum(blob, buf, controller_type, - *usb_erratum_off); + *usb_erratum_off = fsl_fdt_fixup_usb_erratum(blob, buf, controller_type, + *usb_erratum_off); if (*usb_erratum_off < 0) return -ENOSPC; debug("Adding USB erratum %s\n", str); return 0; } -void fdt_fixup_dr_usb(void *blob, bd_t *bd) +void fsl_fdt_fixup_dr_usb(void *blob, bd_t *bd) { static const char * const modes[] = { "host", "peripheral", "otg" }; static const char * const phys[] = { "ulpi", "utmi", "utmi_dual" }; @@ -198,29 +199,29 @@ void fdt_fixup_dr_usb(void *blob, bd_t *bd) if (usb_phy_off < 0) return; - ret = fdt_fixup_erratum(&usb_erratum_a006261_off, blob, - CHIPIDEA_USB2, "a006261", - has_erratum_a006261); + ret = fsl_fdt_fixup_erratum(&usb_erratum_a006261_off, blob, + CHIPIDEA_USB2, "a006261", + has_erratum_a006261); if (ret == -ENOSPC) return; - ret = fdt_fixup_erratum(&usb_erratum_a007075_off, blob, - CHIPIDEA_USB2, "a007075", - has_erratum_a007075); + ret = fsl_fdt_fixup_erratum(&usb_erratum_a007075_off, blob, + CHIPIDEA_USB2, "a007075", + has_erratum_a007075); if (ret == -ENOSPC) return; - ret = fdt_fixup_erratum(&usb_erratum_a007792_off, blob, - CHIPIDEA_USB2, "a007792", - has_erratum_a007792); + ret = fsl_fdt_fixup_erratum(&usb_erratum_a007792_off, blob, + CHIPIDEA_USB2, "a007792", + has_erratum_a007792); if (ret == -ENOSPC) return; - ret = fdt_fixup_erratum(&usb_erratum_a005697_off, blob, - CHIPIDEA_USB2, "a005697", - has_erratum_a005697); + ret = fsl_fdt_fixup_erratum(&usb_erratum_a005697_off, blob, + CHIPIDEA_USB2, "a005697", + has_erratum_a005697); if (ret == -ENOSPC) return; - ret = fdt_fixup_erratum(&usb_erratum_a008751_off, blob, - SNPS_DWC3, "a008751", - has_erratum_a008751); + ret = fsl_fdt_fixup_erratum(&usb_erratum_a008751_off, blob, + SNPS_DWC3, "a008751", + has_erratum_a008751); if (ret == -ENOSPC) return; diff --git a/drivers/usb/common/fsl-errata.c b/drivers/usb/common/fsl-errata.c index 972016ceb3..0dc3dd8117 100644 --- a/drivers/usb/common/fsl-errata.c +++ b/drivers/usb/common/fsl-errata.c @@ -185,4 +185,30 @@ bool has_erratum_a008751(void) return false; } +bool has_erratum_a010151(void) +{ + u32 svr = get_svr(); + u32 soc = SVR_SOC_VER(svr); + + switch (soc) { +#ifdef CONFIG_ARM64 + case SVR_LS2080A: + case SVR_LS2085A: + case SVR_LS1046A: + case SVR_LS1012A: + return IS_SVR_REV(svr, 1, 0); + case SVR_LS1043A: + return IS_SVR_REV(svr, 1, 0) || IS_SVR_REV(svr, 1, 1); +#endif +#ifdef CONFIG_LS102XA + case SOC_VER_LS1020: + case SOC_VER_LS1021: + case SOC_VER_LS1022: + case SOC_VER_SLS1020: + return IS_SVR_REV(svr, 2, 0); +#endif + } + return false; +} + #endif |