[PATCH v2 2/3] usb: typec: mux: ps883x: add a delay after writing config regs

From: Jens Glathe via B4 Relay

Date: Mon Sep 14 2026 - 02:06:46 EST


From: Jens Glathe <jens.glathe@xxxxxxxxxxxxxxxxxxxxxx>

The connection-status registers need time to propagate through the
analog front-end (PLLs, lane training) after they are written. A 30 ms
delay after ps883x_configure() brings DisplayPort Alt Mode hotplug on
the Lenovo 40B0 to a reliable success rate.

Tested with T14s G6 and IdeaCentre Mini with the 40B0 dock on the HDMI
port with a Type-C host cable. Qualcomm firmware that programs this
retimer from an MCU uses a similar post-config delay.

Assisted-by: Grok(xAI):4.6
Signed-off-by: Jens Glathe <jens.glathe@xxxxxxxxxxxxxxxxxxxxxx>
---
drivers/usb/typec/mux/ps883x.c | 10 ++++++++++
1 file changed, 10 insertions(+)

diff --git a/drivers/usb/typec/mux/ps883x.c b/drivers/usb/typec/mux/ps883x.c
index c185d8897e3a4..e93e958065f6f 100644
--- a/drivers/usb/typec/mux/ps883x.c
+++ b/drivers/usb/typec/mux/ps883x.c
@@ -7,6 +7,7 @@

#include <drm/bridge/aux-bridge.h>
#include <linux/clk.h>
+#include <linux/delay.h>
#include <linux/gpio/consumer.h>
#include <linux/i2c.h>
#include <linux/kernel.h>
@@ -184,6 +185,15 @@ static int ps883x_configure(struct ps883x_retimer *retimer, int cfg0,
return ret;
}

+ /*
+ * The retimer needs time after the connection-status registers are
+ * written for the analog front-end (PLLs, lane training) to settle.
+ * Without this, DisplayPort Alt Mode hotplug is unreliable on some
+ * docks (e.g. Lenovo 40B0). Qualcomm firmware on platforms that
+ * program this chip from an MCU uses a similar post-config delay.
+ */
+ fsleep(30000);
+
return 0;
}


--
2.53.0