All of lore.kernel.org
 help / color / mirror / Atom feed
From: Suresh Gupta <suresh.gupta@nxp.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v3 8/8] armv7: Add workaround for USB erratum A-009007
Date: Fri, 3 Feb 2017 19:39:38 +0530	[thread overview]
Message-ID: <1486130978-24925-9-git-send-email-suresh.gupta@nxp.com> (raw)
In-Reply-To: <1486130978-24925-1-git-send-email-suresh.gupta@nxp.com>

From: Suresh Gupta <suresh.gupta@freescale.com>

Rx Compliance tests  may fail intermittently at high
jitter frequencies using default register values

Changes identified in test setup makes the Rx compliance test pass

Signed-off-by: Sriram Dash <sriram.dash@nxp.com>
Signed-off-by: Rajesh Bhagat <rajesh.bhagat@nxp.com>
Signed-off-by: Suresh Gupta <suresh.gupta@nxp.com>
---
Changes in v2:
	Clean up the code after Scott comments, 
	Previously in v1, we was defining the pointer as u32,
	then casting it to u8, and then passing it to
	a 16-bit accessor.
Changes in v3: None	

 arch/arm/cpu/armv7/ls102xa/Kconfig                |  4 ++++
 arch/arm/cpu/armv7/ls102xa/soc.c                  | 12 ++++++++++++
 arch/arm/include/asm/arch-ls102xa/immap_ls102xa.h |  5 +++++
 3 files changed, 21 insertions(+)

diff --git a/arch/arm/cpu/armv7/ls102xa/Kconfig b/arch/arm/cpu/armv7/ls102xa/Kconfig
index cbd4ab6..554b57b 100644
--- a/arch/arm/cpu/armv7/ls102xa/Kconfig
+++ b/arch/arm/cpu/armv7/ls102xa/Kconfig
@@ -8,6 +8,7 @@ config ARCH_LS1021A
 	select SYS_FSL_ERRATUM_A009008
 	select SYS_FSL_ERRATUM_A009798
 	select SYS_FSL_ERRATUM_A008997
+	select SYS_FSL_ERRATUM_A009007
 	select SYS_FSL_SRDS_1
 	select SYS_HAS_SERDES
 	select SYS_FSL_DDR_BE if SYS_FSL_DDR
@@ -62,6 +63,9 @@ config SYS_FSL_ERRATUM_A009798
 config SYS_FSL_ERRATUM_A008997
 	bool "Workaround for USB PHY erratum A008997"
 
+config SYS_FSL_ERRATUM_A009007
+	bool "Workaround for USB PHY erratum A009007"
+
 config SYS_FSL_SRDS_1
 	bool
 
diff --git a/arch/arm/cpu/armv7/ls102xa/soc.c b/arch/arm/cpu/armv7/ls102xa/soc.c
index 3d6cc5f..edb64d5 100644
--- a/arch/arm/cpu/armv7/ls102xa/soc.c
+++ b/arch/arm/cpu/armv7/ls102xa/soc.c
@@ -94,6 +94,17 @@ static void erratum_a008997(void)
 #endif /* CONFIG_SYS_FSL_ERRATUM_A008997 */
 }
 
+static void erratum_a009007(void)
+{
+#ifdef CONFIG_SYS_FSL_ERRATUM_A009007
+	void __iomem *usb_phy = (void __iomem *)USB_PHY_BASE;
+	writew(USB_PHY_RX_EQ_VAL_1, usb_phy + USB_PHY_RX_OVRD_IN_HI);
+	writew(USB_PHY_RX_EQ_VAL_2, usb_phy + USB_PHY_RX_OVRD_IN_HI);
+	writew(USB_PHY_RX_EQ_VAL_3, usb_phy + USB_PHY_RX_OVRD_IN_HI);
+	writew(USB_PHY_RX_EQ_VAL_4, usb_phy + USB_PHY_RX_OVRD_IN_HI);
+#endif /* CONFIG_SYS_FSL_ERRATUM_A009007 */
+}
+
 void s_init(void)
 {
 }
@@ -184,6 +195,7 @@ int arch_soc_init(void)
 	erratum_a009008();
 	erratum_a009798();
 	erratum_a008997();
+	erratum_a009007();
 
 	return 0;
 }
diff --git a/arch/arm/include/asm/arch-ls102xa/immap_ls102xa.h b/arch/arm/include/asm/arch-ls102xa/immap_ls102xa.h
index c0e4372..9c4c926 100644
--- a/arch/arm/include/asm/arch-ls102xa/immap_ls102xa.h
+++ b/arch/arm/include/asm/arch-ls102xa/immap_ls102xa.h
@@ -182,10 +182,15 @@ struct ccsr_gur {
 #define USB_PHY_MPLL_OVRD_IN_HI		0x0024
 #define USB_PHY_LEVEL_OVRD_IN		0x002a
 #define USB_PHY_TX_OVRD_IN_HI		0x2002
+#define USB_PHY_RX_OVRD_IN_HI		0x200c
 #define USB_PHY_TX_OVRD_DRV_LO_VAL	0x784C
 #define USB_PHY_MPLL_OVRD_IN_HI_VAL	0x0080
 #define USB_PHY_LEVEL_OVRD_IN_VAL	0xA9A5
 #define USB_PHY_TX_OVRD_IN_HI_VAL	0x0003
+#define USB_PHY_RX_EQ_VAL_1		0x0000
+#define USB_PHY_RX_EQ_VAL_2		0x8000
+#define USB_PHY_RX_EQ_VAL_3		0x8004
+#define USB_PHY_RX_EQ_VAL_4		0x800C
 
 /* Supplemental Configuration Unit */
 struct ccsr_scfg {
-- 
1.9.3

  parent reply	other threads:[~2017-02-03 14:09 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-02-03 14:09 [U-Boot] [PATCH v3 0/8] Add workaround for USB PHY errata Suresh Gupta
2017-02-03 14:09 ` [U-Boot] [PATCH v3 1/8] armv8: Add workaround for USB erratum A-009008 Suresh Gupta
2017-02-03 14:09 ` [U-Boot] [PATCH v3 2/8] armv8: Add workaround for USB erratum A-009798 Suresh Gupta
2017-02-03 14:09 ` [U-Boot] [PATCH v3 3/8] armv8: Add workaround for USB erratum A-008997 Suresh Gupta
2017-02-03 14:09 ` [U-Boot] [PATCH v3 4/8] armv8: Add workaround for USB erratum A-009007 Suresh Gupta
2017-02-16 21:12   ` york sun
     [not found]   ` <e8695096-7813-4908-f3c5-221f4d70de0f@nxp.com>
2017-02-23 17:48     ` york sun
2017-02-24  7:19       ` Suresh Gupta
2017-02-24 17:00         ` york sun
2017-02-28 10:52           ` Suresh Gupta
2017-02-28 16:25             ` york sun
2017-03-01  4:06               ` Suresh Gupta
2017-03-22 16:42                 ` york sun
2017-04-18 15:57                 ` York Sun
2017-02-03 14:09 ` [U-Boot] [PATCH v3 5/8] armv7: Add workaround for USB erratum A-009008 Suresh Gupta
2017-02-03 14:09 ` [U-Boot] [PATCH v3 6/8] armv7: Add workaround for USB erratum A-009798 Suresh Gupta
2017-02-03 14:09 ` [U-Boot] [PATCH v3 7/8] armv7: Add workaround for USB erratum A-008997 Suresh Gupta
2017-02-03 14:09 ` Suresh Gupta [this message]
2017-08-17  7:31 [U-Boot] [PATCH v3 1/8] armv8: Add workaround for USB erratum A-009008 Ran Wang
2017-08-17  7:31 ` [U-Boot] [PATCH v3 8/8] armv7: Add workaround for USB erratum A-009007 Ran Wang

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1486130978-24925-9-git-send-email-suresh.gupta@nxp.com \
    --to=suresh.gupta@nxp.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.