mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-28 15:41:40 +00:00
drivers: usb: fsl: Move USB Errata checking code
Move USB Errata checking code from "arch/powerpc" to architecture independent file "fsl_usb.h" so that errata(s) become independent of the architecture. For each erratum checking function for PPC arch, define a nop function for non PPC arch for successful compilation in either case Signed-off-by: Nikhil Badola <nikhil.badola@freescale.com> Reviewed-by: York Sun <yorksun@freescale.com>
This commit is contained in:
parent
5632d15cf4
commit
c26c80a1a4
4 changed files with 68 additions and 56 deletions
|
@ -9,6 +9,7 @@
|
|||
#include <linux/compiler.h>
|
||||
#include <asm/fsl_errata.h>
|
||||
#include <asm/processor.h>
|
||||
#include <fsl_usb.h>
|
||||
#include "fsl_corenet_serdes.h"
|
||||
|
||||
#ifdef CONFIG_SYS_FSL_ERRATUM_A004849
|
||||
|
|
|
@ -26,59 +26,4 @@ static inline bool has_erratum_a006379(void)
|
|||
return false;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_SYS_FSL_ERRATUM_A006261
|
||||
static inline bool has_erratum_a006261(void)
|
||||
{
|
||||
u32 svr = get_svr();
|
||||
u32 soc = SVR_SOC_VER(svr);
|
||||
|
||||
switch (soc) {
|
||||
case SVR_P1010:
|
||||
return IS_SVR_REV(svr, 1, 0) || IS_SVR_REV(svr, 2, 0);
|
||||
case SVR_P2041:
|
||||
case SVR_P2040:
|
||||
return IS_SVR_REV(svr, 1, 0) ||
|
||||
IS_SVR_REV(svr, 1, 1) || IS_SVR_REV(svr, 2, 1);
|
||||
case SVR_P3041:
|
||||
return IS_SVR_REV(svr, 1, 0) ||
|
||||
IS_SVR_REV(svr, 1, 1) ||
|
||||
IS_SVR_REV(svr, 2, 0) || IS_SVR_REV(svr, 2, 1);
|
||||
case SVR_P5010:
|
||||
case SVR_P5020:
|
||||
case SVR_P5021:
|
||||
return IS_SVR_REV(svr, 1, 0) || IS_SVR_REV(svr, 2, 0);
|
||||
case SVR_T4240:
|
||||
case SVR_T4160:
|
||||
case SVR_T4080:
|
||||
return IS_SVR_REV(svr, 1, 0) || 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);
|
||||
case SVR_P5040:
|
||||
return IS_SVR_REV(svr, 1, 0);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
|
||||
static inline bool has_erratum_a007075(void)
|
||||
{
|
||||
u32 svr = get_svr();
|
||||
u32 soc = SVR_SOC_VER(svr);
|
||||
|
||||
switch (soc) {
|
||||
case SVR_B4860:
|
||||
case SVR_B4420:
|
||||
return IS_SVR_REV(svr, 1, 0) || IS_SVR_REV(svr, 2, 0);
|
||||
case SVR_P1010:
|
||||
return IS_SVR_REV(svr, 1, 0);
|
||||
case SVR_P4080:
|
||||
return IS_SVR_REV(svr, 2, 0) || IS_SVR_REV(svr, 3, 0);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
#include <asm/io.h>
|
||||
#include <usb/ehci-fsl.h>
|
||||
#include <hwconfig.h>
|
||||
#include <asm/fsl_errata.h>
|
||||
#include <fsl_usb.h>
|
||||
|
||||
#include "ehci.h"
|
||||
|
||||
|
|
|
@ -85,4 +85,70 @@ struct ccsr_usb_phy {
|
|||
#define CONFIG_SYS_FSL_USB_SQUELCH_PROG_MASK 0x07
|
||||
#endif
|
||||
|
||||
/* USB Erratum Checking code */
|
||||
#ifdef CONFIG_PPC
|
||||
static inline bool has_erratum_a006261(void)
|
||||
{
|
||||
u32 svr = get_svr();
|
||||
u32 soc = SVR_SOC_VER(svr);
|
||||
|
||||
switch (soc) {
|
||||
case SVR_P1010:
|
||||
return IS_SVR_REV(svr, 1, 0) || IS_SVR_REV(svr, 2, 0);
|
||||
case SVR_P2041:
|
||||
case SVR_P2040:
|
||||
return IS_SVR_REV(svr, 1, 0) ||
|
||||
IS_SVR_REV(svr, 1, 1) || IS_SVR_REV(svr, 2, 1);
|
||||
case SVR_P3041:
|
||||
return IS_SVR_REV(svr, 1, 0) ||
|
||||
IS_SVR_REV(svr, 1, 1) ||
|
||||
IS_SVR_REV(svr, 2, 0) || IS_SVR_REV(svr, 2, 1);
|
||||
case SVR_P5010:
|
||||
case SVR_P5020:
|
||||
case SVR_P5021:
|
||||
return IS_SVR_REV(svr, 1, 0) || IS_SVR_REV(svr, 2, 0);
|
||||
case SVR_T4240:
|
||||
case SVR_T4160:
|
||||
case SVR_T4080:
|
||||
return IS_SVR_REV(svr, 1, 0) || 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);
|
||||
case SVR_P5040:
|
||||
return IS_SVR_REV(svr, 1, 0);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
static inline bool has_erratum_a007075(void)
|
||||
{
|
||||
u32 svr = get_svr();
|
||||
u32 soc = SVR_SOC_VER(svr);
|
||||
|
||||
switch (soc) {
|
||||
case SVR_B4860:
|
||||
case SVR_B4420:
|
||||
return IS_SVR_REV(svr, 1, 0) || IS_SVR_REV(svr, 2, 0);
|
||||
case SVR_P1010:
|
||||
return IS_SVR_REV(svr, 1, 0);
|
||||
case SVR_P4080:
|
||||
return IS_SVR_REV(svr, 2, 0) || IS_SVR_REV(svr, 3, 0);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
#else
|
||||
static inline bool has_erratum_a006261(void)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
static inline bool has_erratum_a007075(void)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
#endif
|
||||
#endif /*_ASM_FSL_USB_H_ */
|
||||
|
|
Loading…
Reference in a new issue