summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2026-08-27 12:21:56 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2026-08-27 12:21:56 -0700
commit6253a29206959128f5d99a119fcf29bd7fb3c106 (patch)
treef934fd74b724c39efa0e29b0eb3fa6c6fe9bcd78 /drivers
parent7cec13314dd8935afbfc0430d9d43fad75285b37 (diff)
parent44f7b876b7c6c7b3a219b7a810d3d9548df21540 (diff)
Merge tag 'regulator-fix-v7.3-merge-window' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator
Pull regulator fix from Mark Brown: "One fix here, for a race condition on startup in the tps65185 driver which is seen on actual boards - we need a delay after waking the chip before it is ready to talk to the host" * tag 'regulator-fix-v7.3-merge-window' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator: regulator: tps65185: wait for the IC to wake before the first I2C access
Diffstat (limited to 'drivers')
-rw-r--r--drivers/regulator/tps65185.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/regulator/tps65185.c b/drivers/regulator/tps65185.c
index 1f13e4156cab..6a3130177e7a 100644
--- a/drivers/regulator/tps65185.c
+++ b/drivers/regulator/tps65185.c
@@ -5,6 +5,7 @@
#include <linux/cleanup.h>
#include <linux/completion.h>
+#include <linux/delay.h>
#include <linux/gpio/consumer.h>
#include <linux/i2c.h>
#include <linux/module.h>
@@ -375,6 +376,11 @@ static int tps65185_probe(struct i2c_client *client)
return dev_err_probe(&client->dev, ret,
"failed to get vin regulator\n");
+ // TPS65185x PMIC for E Ink Vizplex Enabled Electronic Paper Display Chapter 7.6 Figure 2:
+ // "Minimum delay time between WAKEUP rising edge and IC ready to accept I2C transaction."
+ // https://www.ti.com/lit/ds/symlink/tps65185.pdf
+ usleep_range(1800, 3000);
+
data->dev = &client->dev;
i2c_set_clientdata(client, data);