[PATCH AUTOSEL 6.17-6.6] arm64: zynqmp: Revert usb node drive strength and slew rate for zcu106

Sasha Levin sashal at kernel.org
Thu Oct 9 08:55:29 PDT 2025


From: Radhey Shyam Pandey <radhey.shyam.pandey at amd.com>

[ Upstream commit 767ecf9da7b31e5c0c22c273001cb2784705fe8c ]

On a few zcu106 boards USB devices (Dell MS116 USB Optical Mouse, Dell USB
Entry Keyboard) are not enumerated on linux boot due to commit
'b8745e7eb488 ("arm64: zynqmp: Fix usb node drive strength and slew
rate")'.

To fix it as a workaround revert to working version and then investigate
at board level why drive strength from 12mA to 4mA and slew from fast to
slow is not working.

Signed-off-by: Radhey Shyam Pandey <radhey.shyam.pandey at amd.com>
Signed-off-by: Michal Simek <michal.simek at amd.com>
Link: https://lore.kernel.org/r/85a70cb014ec1f07972fccb60b875596eeaa6b5c.1756799774.git.michal.simek@amd.com
Signed-off-by: Sasha Levin <sashal at kernel.org>
---

LLM Generated explanations, may be completely bogus:

YES – this revert should go to stable because it undoes a regression
that breaks USB enumeration on real hardware.

- Regression context: the offending change (`arm64: zynqmp: Fix usb node
  drive strength and slew rate`, commit f8673fd570025) landed in v6.6
  and later; it forces the USB0 TX pins on zcu106 to `drive-strength =
  <4>`/`slew-rate = <SLEW_RATE_SLOW>`, and several boards stop
  enumerating basic USB HID devices as a result (confirmed in the linked
  report).
- Fix details: the new commit restores the TX pin mux entry to the
  previous working values (`drive-strength = <12>`, `slew-rate =
  <SLEW_RATE_FAST>` in `arch/arm64/boot/dts/xilinx/zynqmp-
  zcu106-revA.dts:811`), while leaving the RX pins unchanged, which
  matches the configuration that shipped (and worked) before
  f8673fd570025.
- Scope and risk: the patch is a board-specific device-tree tweak; no
  drivers or shared subsystems are touched, so the blast radius is
  contained to zcu106 USB0, making the change low risk and
  straightforward to backport.
- Stable criteria: it fixes a user-visible regression (USB devices fail
  to enumerate) without introducing new features or architectural
  changes, so it fits the stable rules and should be applied to all
  branches that picked up the offending commit (v6.6+).

 arch/arm64/boot/dts/xilinx/zynqmp-zcu106-revA.dts | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/arm64/boot/dts/xilinx/zynqmp-zcu106-revA.dts b/arch/arm64/boot/dts/xilinx/zynqmp-zcu106-revA.dts
index 7beedd730f940..9dd63cc384e6e 100644
--- a/arch/arm64/boot/dts/xilinx/zynqmp-zcu106-revA.dts
+++ b/arch/arm64/boot/dts/xilinx/zynqmp-zcu106-revA.dts
@@ -808,8 +808,8 @@ conf-tx {
 			pins = "MIO54", "MIO56", "MIO57", "MIO58", "MIO59",
 			       "MIO60", "MIO61", "MIO62", "MIO63";
 			bias-disable;
-			drive-strength = <4>;
-			slew-rate = <SLEW_RATE_SLOW>;
+			drive-strength = <12>;
+			slew-rate = <SLEW_RATE_FAST>;
 		};
 	};
 
-- 
2.51.0




More information about the linux-arm-kernel mailing list