arm: mvebu: a38x: Configurable USB2 high-speed impedance threshold
authorJoshua Scott <joshua.scott@alliedtelesis.co.nz>
Sun, 8 Nov 2020 21:14:08 +0000 (10:14 +1300)
committerStefan Roese <sr@denx.de>
Mon, 7 Dec 2020 06:11:37 +0000 (07:11 +0100)
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>
arch/arm/mach-mvebu/Kconfig
arch/arm/mach-mvebu/serdes/a38x/high_speed_env_spec.c

index 0d8e092..72aee8b 100644 (file)
@@ -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
index 2454730..ae2a361 100644 (file)
@@ -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},