armv8: ls1028a: enable workaround for USB erratum A-008997
authorRan Wang <ran.wang_1@nxp.com>
Tue, 14 May 2019 09:34:56 +0000 (17:34 +0800)
committerPrabhakar Kushwaha <prabhakar.kushwaha@nxp.com>
Wed, 19 Jun 2019 07:24:56 +0000 (12:54 +0530)
Enable workaround for USB erratum A-008997. Here PCSTXSWINGFULL
registers has been moved to DSCR as compared to other Layerscape SoCs
where it was in SCFG.

Signed-off-by: Ran Wang <ran.wang_1@nxp.com>
Reviewed-by: Prabhakar Kushwaha <prabhakar.kushwaha@nxp.com>
arch/arm/cpu/armv8/fsl-layerscape/Kconfig
arch/arm/cpu/armv8/fsl-layerscape/soc.c
arch/arm/include/asm/arch-fsl-layerscape/immap_lsch3.h

index a843c1eb6515809cf7182f725376337867c58937..3f6c983aaf41697dbe9ccb5ad5317ff037575288 100644 (file)
@@ -48,6 +48,7 @@ config ARCH_LS1028A
        select SYS_I2C_MXC_I2C6
        select SYS_I2C_MXC_I2C7
        select SYS_I2C_MXC_I2C8
+       select SYS_FSL_ERRATUM_A008997
        select SYS_FSL_ERRATUM_A009007
        select SYS_FSL_ERRATUM_A008514 if !TFABOOT
        select SYS_FSL_ERRATUM_A009663 if !TFABOOT
index 06f3edb302816345bed5a3f4db54a049dedb0e4a..f2392f0ebf545511adad4ef0850ac3199ffcdf1f 100644 (file)
@@ -126,6 +126,10 @@ static void erratum_a008997(void)
        set_usb_pcstxswingfull(scfg, SCFG_USB3PRM2CR_USB2);
        set_usb_pcstxswingfull(scfg, SCFG_USB3PRM2CR_USB3);
 #endif
+#elif defined(CONFIG_ARCH_LS1028A)
+       clrsetbits_le32(DCSR_BASE +  DCSR_USB_IOCR1,
+                       0x7F << 11,
+                       DCSR_USB_PCSTXSWINGFULL << 11);
 #endif
 #endif /* CONFIG_SYS_FSL_ERRATUM_A008997 */
 }
index 24c1b0e482eb48c71dcdf351d4912d8e2fdbb2d8..2b12e9f81af61bfccebc0fdf76a5fd24588ef87c 100644 (file)
 #define USB_PHY_RX_EQ_VAL_2            0x0080
 #define USB_PHY_RX_EQ_VAL_3            0x0380
 #define USB_PHY_RX_EQ_VAL_4            0x0b80
+#define DCSR_USB_IOCR1                 0x108004
+#define DCSR_USB_PCSTXSWINGFULL        0x71
 
 #define TP_ITYP_AV             0x00000001      /* Initiator available */
 #define TP_ITYP_TYPE(x)        (((x) & 0x6) >> 1)      /* Initiator Type */