aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoshua Scott <joshua.scott@alliedtelesis.co.nz>2020-11-09 10:14:08 +1300
committerStefan Roese <sr@denx.de>2020-12-07 07:11:37 +0100
commit28f0cbcdd28c03c44d867a6641d642e97d4704a8 (patch)
treeaf3d3cbabdee6cb54506850aea0116b3b2c94dfe
parent5115de8d64c9bde382946dfd06eae3496a827239 (diff)
downloadu-boot-28f0cbcdd28c03c44d867a6641d642e97d4704a8.zip
u-boot-28f0cbcdd28c03c44d867a6641d642e97d4704a8.tar.gz
u-boot-28f0cbcdd28c03c44d867a6641d642e97d4704a8.tar.bz2
arm: mvebu: a38x: Configurable USB2 high-speed impedance threshold
Hardware testing of a board using the Armada 385 has shown that an impedance threshold setting of 0x7 performs better in an eye-diagram test than with Marvell's recommended value 0x6. As other boards may still perform better with Marvell's reccomended value, a configuration option is added with a default value of 0x6. Signed-off-by: Joshua Scott <joshua.scott@alliedtelesis.co.nz> Reviewed-by: Stefan Roese <sr@denx.de>
-rw-r--r--arch/arm/mach-mvebu/Kconfig6
-rw-r--r--arch/arm/mach-mvebu/serdes/a38x/high_speed_env_spec.c6
2 files changed, 9 insertions, 3 deletions
diff --git a/arch/arm/mach-mvebu/Kconfig b/arch/arm/mach-mvebu/Kconfig
index 0d8e092..72aee8b 100644
--- a/arch/arm/mach-mvebu/Kconfig
+++ b/arch/arm/mach-mvebu/Kconfig
@@ -30,6 +30,12 @@ config ARMADA_38X
select ARMADA_32BIT
select HAVE_MVEBU_EFUSE
+config ARMADA_38X_HS_IMPEDANCE_THRESH
+ hex "Armada 38x USB 2.0 High-Speed Impedance Threshold (0x0 - 0x7)"
+ depends on ARMADA_38X
+ default 0x6
+ range 0x0 0x7
+
config ARMADA_XP
bool
select ARMADA_32BIT
diff --git a/arch/arm/mach-mvebu/serdes/a38x/high_speed_env_spec.c b/arch/arm/mach-mvebu/serdes/a38x/high_speed_env_spec.c
index 2454730..ae2a361 100644
--- a/arch/arm/mach-mvebu/serdes/a38x/high_speed_env_spec.c
+++ b/arch/arm/mach-mvebu/serdes/a38x/high_speed_env_spec.c
@@ -677,9 +677,9 @@ struct op_params usb2_power_up_params[] = {
{0xc200c, 0x0 /*NA*/, 0xf000, {0x1000}, 0, 0},
{0xc400c, 0x0 /*NA*/, 0xf000, {0x1000}, 0, 0},
/* Change the High speed impedance threshold */
- {0xc0008, 0x0 /*NA*/, 0x700, {0x600}, 0, 0},
- {0xc2008, 0x0 /*NA*/, 0x700, {0x600}, 0, 0},
- {0xc4008, 0x0 /*NA*/, 0x700, {0x600}, 0, 0},
+ {0xc0008, 0x0 /*NA*/, 0x700, {CONFIG_ARMADA_38X_HS_IMPEDANCE_THRESH << 8}, 0, 0},
+ {0xc2008, 0x0 /*NA*/, 0x700, {CONFIG_ARMADA_38X_HS_IMPEDANCE_THRESH << 8}, 0, 0},
+ {0xc4008, 0x0 /*NA*/, 0x700, {CONFIG_ARMADA_38X_HS_IMPEDANCE_THRESH << 8}, 0, 0},
/* Change the squelch level of the receiver to meet the receiver electrical measurements (squelch and receiver sensitivity tests) */
{0xc0014, 0x0 /*NA*/, 0xf, {0x8}, 0, 0},
{0xc2014, 0x0 /*NA*/, 0xf, {0x8}, 0, 0},