summaryrefslogtreecommitdiffstats
path: root/drivers/usb/common
diff options
context:
space:
mode:
authorSriram Dash <sriram.dash@nxp.com>2016-06-13 09:58:36 +0530
committerMarek Vasut <marex@denx.de>2016-06-13 15:16:46 +0200
commitef53b8c4ce2919d6685d2dc0c51a91a180433ff0 (patch)
treea8e74bad3688faf65dcdee23c5ea28c32abd00df /drivers/usb/common
parent32fbd46f38ed183ae92aabc0a2abd7847bc3363e (diff)
downloadtalos-obmc-uboot-ef53b8c4ce2919d6685d2dc0c51a91a180433ff0.tar.gz
talos-obmc-uboot-ef53b8c4ce2919d6685d2dc0c51a91a180433ff0.zip
usb: xhci: fsl: Add workaround for USB erratum A008751
This patch is doing the following: 1. Implementing the errata for LS2080. 2. Adding fixup for fdt for LS2080. Signed-off-by: Sriram Dash <sriram.dash@nxp.com> Signed-off-by: Rajesh Bhagat <rajesh.bhagat@nxp.com>
Diffstat (limited to 'drivers/usb/common')
-rw-r--r--drivers/usb/common/fsl-dt-fixup.c7
-rw-r--r--drivers/usb/common/fsl-errata.c15
2 files changed, 22 insertions, 0 deletions
diff --git a/drivers/usb/common/fsl-dt-fixup.c b/drivers/usb/common/fsl-dt-fixup.c
index 930ca1d35e..9c48852ea0 100644
--- a/drivers/usb/common/fsl-dt-fixup.c
+++ b/drivers/usb/common/fsl-dt-fixup.c
@@ -139,6 +139,7 @@ void fdt_fixup_dr_usb(void *blob, bd_t *bd)
int usb_erratum_a007075_off = -1;
int usb_erratum_a007792_off = -1;
int usb_erratum_a005697_off = -1;
+ int usb_erratum_a008751_off = -1;
int usb_mode_off = -1;
int usb_phy_off = -1;
char str[5];
@@ -217,5 +218,11 @@ void fdt_fixup_dr_usb(void *blob, bd_t *bd)
has_erratum_a005697);
if (ret == -ENOSPC)
return;
+ ret = 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 95918fc890..ebe60a82f1 100644
--- a/drivers/usb/common/fsl-errata.c
+++ b/drivers/usb/common/fsl-errata.c
@@ -175,4 +175,19 @@ bool has_erratum_a004477(void)
return false;
}
+bool has_erratum_a008751(void)
+{
+ u32 svr = get_svr();
+ u32 soc = SVR_SOC_VER(svr);
+
+ switch (soc) {
+#ifdef CONFIG_ARM64
+ case SVR_LS2080:
+ case SVR_LS2085:
+ return IS_SVR_REV(svr, 1, 0);
+#endif
+ }
+ return false;
+}
+
#endif
OpenPOWER on IntegriCloud