Check if USB Erratum A005697 is applicable on BSC913x and
add corresponding  property in the device tree via device
tree fixup which is used by linux driver

Signed-off-by: Nikhil Badola <nikhil.bad...@freescale.com>
---
Depends on "drivers:usb:fsl: Add affected SOCs for USB Erratum A007792"
http://patchwork.ozlabs.org/patch/448965/

 drivers/usb/host/ehci-fsl.c |  9 +++++++++
 include/fsl_usb.h           | 18 ++++++++++++++++++
 2 files changed, 27 insertions(+)

diff --git a/drivers/usb/host/ehci-fsl.c b/drivers/usb/host/ehci-fsl.c
index ed83eb4..2dca524 100644
--- a/drivers/usb/host/ehci-fsl.c
+++ b/drivers/usb/host/ehci-fsl.c
@@ -263,6 +263,7 @@ void fdt_fixup_dr_usb(void *blob, bd_t *bd)
        int usb_erratum_a006261_off = -1;
        int usb_erratum_a007075_off = -1;
        int usb_erratum_a007792_off = -1;
+       int usb_erratum_a005697_off = -1;
        int usb_mode_off = -1;
        int usb_phy_off = -1;
        char str[5];
@@ -346,6 +347,14 @@ void fdt_fixup_dr_usb(void *blob, bd_t *bd)
                        if (usb_erratum_a007792_off < 0)
                                return;
                }
+               if (has_erratum_a005697()) {
+                       usb_erratum_a005697_off =  fdt_fixup_usb_erratum
+                                                  (blob,
+                                                   "fsl,usb-erratum-a005697",
+                                                   usb_erratum_a005697_off);
+                       if (usb_erratum_a005697_off < 0)
+                               return;
+               }
        }
 }
 #endif
diff --git a/include/fsl_usb.h b/include/fsl_usb.h
index 92751dd..33d9f03 100644
--- a/include/fsl_usb.h
+++ b/include/fsl_usb.h
@@ -196,6 +196,19 @@ static inline bool has_erratum_a007792(void)
        return false;
 }
 
+static inline bool has_erratum_a005697(void)
+{
+       u32 svr = get_svr();
+       u32 soc = SVR_SOC_VER(svr);
+
+       switch (soc) {
+       case SVR_9131:
+       case SVR_9132:
+               return IS_SVR_REV(svr, 1, 0) || IS_SVR_REV(svr, 1, 1);
+       }
+       return false;
+}
+
 #else
 static inline bool has_dual_phy(void)
 {
@@ -221,5 +234,10 @@ static inline bool has_erratum_a007792(void)
 {
        return false;
 }
+
+static inline bool has_erratum_a005697(void)
+{
+       return false;
+}
 #endif
 #endif /*_ASM_FSL_USB_H_ */
-- 
1.7.11.7


_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to