armv8: Add workaround for USB erratum A-050106
USB3.0 Receiver needs to enable fixed equalization for each of PHY instances in an SOC. This is similar to erratum A-009007, but this one is for LX2160A, and the register value is different. Signed-off-by: Ran Wang <ran.wang_1@nxp.com> Reviewed-by: Priyanka Jain <priyanka.jain@nxp.com>
This commit is contained in:
		
							parent
							
								
									055aa33ff9
								
							
						
					
					
						commit
						0cfa00cdb9
					
				| 
						 | 
				
			
			@ -219,6 +219,7 @@ config ARCH_LX2160A
 | 
			
		|||
	select SYS_FSL_DDR_VER_50
 | 
			
		||||
	select SYS_FSL_EC1
 | 
			
		||||
	select SYS_FSL_EC2
 | 
			
		||||
	select SYS_FSL_ERRATUM_A050106
 | 
			
		||||
	select SYS_FSL_HAS_RGMII
 | 
			
		||||
	select SYS_FSL_HAS_SEC
 | 
			
		||||
	select SYS_FSL_HAS_CCN508
 | 
			
		||||
| 
						 | 
				
			
			@ -348,6 +349,14 @@ config SYS_FSL_ERRATUM_A009008
 | 
			
		|||
config SYS_FSL_ERRATUM_A009798
 | 
			
		||||
	bool "Workaround for USB PHY erratum A009798"
 | 
			
		||||
 | 
			
		||||
config SYS_FSL_ERRATUM_A050106
 | 
			
		||||
	bool "Workaround for USB PHY erratum A050106"
 | 
			
		||||
	help
 | 
			
		||||
	  USB3.0 Receiver needs to enable fixed equalization
 | 
			
		||||
	  for each of PHY instances in an SOC. This is similar
 | 
			
		||||
	  to erratum A-009007, but this one is for LX2160A,
 | 
			
		||||
	  and the register value is different.
 | 
			
		||||
 | 
			
		||||
config SYS_FSL_ERRATUM_A010315
 | 
			
		||||
	bool "Workaround for PCIe erratum A010315"
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -147,7 +147,7 @@ static void erratum_a008997(void)
 | 
			
		|||
	out_be16((phy) + SCFG_USB_PHY_RX_OVRD_IN_HI, USB_PHY_RX_EQ_VAL_4)
 | 
			
		||||
 | 
			
		||||
#elif defined(CONFIG_ARCH_LS2080A) || defined(CONFIG_ARCH_LS1088A) || \
 | 
			
		||||
	defined(CONFIG_ARCH_LS1028A)
 | 
			
		||||
	defined(CONFIG_ARCH_LS1028A) || defined(CONFIG_ARCH_LX2160A)
 | 
			
		||||
 | 
			
		||||
#define PROGRAM_USB_PHY_RX_OVRD_IN_HI(phy)	\
 | 
			
		||||
	out_le16((phy) + DCSR_USB_PHY_RX_OVRD_IN_HI, USB_PHY_RX_EQ_VAL_1); \
 | 
			
		||||
| 
						 | 
				
			
			@ -181,6 +181,15 @@ static void erratum_a009007(void)
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
#if defined(CONFIG_FSL_LSCH3)
 | 
			
		||||
static void erratum_a050106(void)
 | 
			
		||||
{
 | 
			
		||||
#if defined(CONFIG_ARCH_LX2160A)
 | 
			
		||||
	void __iomem *dcsr = (void __iomem *)DCSR_BASE;
 | 
			
		||||
 | 
			
		||||
	PROGRAM_USB_PHY_RX_OVRD_IN_HI(dcsr + DCSR_USB_PHY1);
 | 
			
		||||
	PROGRAM_USB_PHY_RX_OVRD_IN_HI(dcsr + DCSR_USB_PHY2);
 | 
			
		||||
#endif
 | 
			
		||||
}
 | 
			
		||||
/*
 | 
			
		||||
 * This erratum requires setting a value to eddrtqcr1 to
 | 
			
		||||
 * optimal the DDR performance.
 | 
			
		||||
| 
						 | 
				
			
			@ -332,6 +341,7 @@ void fsl_lsch3_early_init_f(void)
 | 
			
		|||
	erratum_a009798();
 | 
			
		||||
	erratum_a008997();
 | 
			
		||||
	erratum_a009007();
 | 
			
		||||
	erratum_a050106();
 | 
			
		||||
#ifdef CONFIG_CHAIN_OF_TRUST
 | 
			
		||||
	/* In case of Secure Boot, the IBR configures the SMMU
 | 
			
		||||
	* to allow only Secure transactions.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -252,8 +252,14 @@
 | 
			
		|||
#define DCSR_USB_PHY_RX_OVRD_IN_HI	0x200C
 | 
			
		||||
#define USB_PHY_RX_EQ_VAL_1		0x0000
 | 
			
		||||
#define USB_PHY_RX_EQ_VAL_2		0x0080
 | 
			
		||||
#if defined(CONFIG_ARCH_LS2080A) || defined(CONFIG_ARCH_LS1088A) || \
 | 
			
		||||
	defined(CONFIG_ARCH_LS1028A)
 | 
			
		||||
#define USB_PHY_RX_EQ_VAL_3		0x0380
 | 
			
		||||
#define USB_PHY_RX_EQ_VAL_4		0x0b80
 | 
			
		||||
#elif defined(CONFIG_ARCH_LX2160A)
 | 
			
		||||
#define USB_PHY_RX_EQ_VAL_3		0x0080
 | 
			
		||||
#define USB_PHY_RX_EQ_VAL_4		0x0880
 | 
			
		||||
#endif
 | 
			
		||||
#define DCSR_USB_IOCR1			0x108004
 | 
			
		||||
#define DCSR_USB_PCSTXSWINGFULL	0x71
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue