提交 da5ce448 编写于 作者: N Nikhil Badola 提交者: York Sun

drivers: usb: fsl: Check USB Erratum A007792 applicability

Check USB Erratum A007792 applicability. If applicable, add
corresponding  property in the device tree via device tree fixup
Signed-off-by: NNikhil Badola <nikhil.badola@freescale.com>
Reviewed-by: NYork Sun <yorksun@freescale.com>
上级 ecfc19f3
......@@ -262,6 +262,7 @@ void fdt_fixup_dr_usb(void *blob, bd_t *bd)
static const char * const phys[] = { "ulpi", "utmi" };
int usb_erratum_a006261_off = -1;
int usb_erratum_a007075_off = -1;
int usb_erratum_a007792_off = -1;
int usb_mode_off = -1;
int usb_phy_off = -1;
char str[5];
......@@ -332,6 +333,14 @@ void fdt_fixup_dr_usb(void *blob, bd_t *bd)
if (usb_erratum_a007075_off < 0)
return;
}
if (has_erratum_a007792()) {
usb_erratum_a007792_off = fdt_fixup_usb_erratum
(blob,
"fsl,usb-erratum-a007792",
usb_erratum_a007792_off);
if (usb_erratum_a007792_off < 0)
return;
}
}
}
#endif
......@@ -145,6 +145,25 @@ static inline bool has_erratum_a007798(void)
return SVR_SOC_VER(get_svr()) == SVR_T4240 &&
IS_SVR_REV(get_svr(), 2, 0);
}
static inline bool has_erratum_a007792(void)
{
u32 svr = get_svr();
u32 soc = SVR_SOC_VER(svr);
switch (soc) {
case SVR_T4240:
case SVR_T4160:
return IS_SVR_REV(svr, 2, 0);
case SVR_T1040:
return IS_SVR_REV(svr, 1, 0);
case SVR_T2080:
case SVR_T2081:
return IS_SVR_REV(svr, 1, 0) || IS_SVR_REV(svr, 1, 1);
}
return false;
}
#else
static inline bool has_erratum_a006261(void)
{
......@@ -161,5 +180,9 @@ static inline bool has_erratum_a007798(void)
return false;
}
static inline bool has_erratum_a007792(void)
{
return false;
}
#endif
#endif /*_ASM_FSL_USB_H_ */
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册