From: Radhey Shyam Pandey radhey.shyam.pandey@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@amd.com Signed-off-by: Michal Simek michal.simek@amd.com Link: https://lore.kernel.org/r/85a70cb014ec1f07972fccb60b875596eeaa6b5c.175679977... Signed-off-by: Sasha Levin sashal@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>; }; };