[PATCH] usb: typec: mux: fsa4480: wait after enabling supply

Vasiliy Doylov via B4 Relay <[email protected]>
Newsgroups org.kernel.vger.phone-devel,org.kernel.feeds.b4-sent,org.kernel.vger.linux-kernel,org.kernel.vger.linux-usb
Message-ID <[email protected]>
From: Vasiliy Doylov <[email protected]>

Add a 200 ms delay after enabling the optional vcc regulator in the
FSA4480 probe function. On some platforms (nothing-spacewar) the supply
needs time to stabilize before the chip is ready to respond to I2C reads.
Without this delay the initial DEVICE_ID read fails with -ENODEV.

Tested on: Nothing Phone (1) "sm7325-nothing-spacewar"

Signed-off-by: Vasiliy Doylov <[email protected]>
---
Add a 200 ms delay after enabling the optional vcc regulator in the
FSA4480 probe function. On some platforms (nothing-spacewar)
the supply needs time to stabilize before the chip is ready to respond
to I2C reads. Without this delay the initial DEVICE_ID read
intermittently fails with -ENODEV, preventing the driver from binding.
---
 drivers/usb/typec/mux/fsa4480.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/usb/typec/mux/fsa4480.c b/drivers/usb/typec/mux/fsa4480.c
index bea0c1deec94..4dab12c2b9d7 100644
--- a/drivers/usb/typec/mux/fsa4480.c
+++ b/drivers/usb/typec/mux/fsa4480.c
@@ -278,6 +278,8 @@ static int fsa4480_probe(struct i2c_client *client)
 	if (ret && ret != -ENODEV)
 		return dev_err_probe(dev, ret, "Failed to get regulator\n");
 
+	fsleep(200000);
+
 	ret = regmap_read(fsa->regmap, FSA4480_DEVICE_ID, &val);
 	if (ret)
 		return dev_err_probe(dev, -ENODEV, "FSA4480 not found\n");

---
base-commit: 6a746cd265aed59107ebdaa9ce039bb832922969
change-id: 20260820-fsa4480-wait-for-power-7ffdcd2bebbc

Best regards,
--  
Vasiliy Doylov <[email protected]>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.