regulator: slg51000: Wait after asserting CS pin
authorKonrad Dybcio <konrad.dybcio@linaro.org>
Fri, 18 Nov 2022 13:10:35 +0000 (14:10 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 14 Dec 2022 10:37:16 +0000 (11:37 +0100)
[ Upstream commit 0b24dfa587c6cc7484cfb170da5c7dd73451f670 ]

Sony's downstream driver [1], among some other changes, adds a
seemingly random 10ms usleep_range, which turned out to be necessary
for the hardware to function properly on at least Sony Xperia 1 IV.
Without this, I2C transactions with the SLG51000 straight up fail.

Relax (10-10ms -> 10-11ms) and add the aforementioned sleep to make
sure the hardware has some time to wake up.

(nagara-2.0.0-mlc/vendor/semc/hardware/camera-kernel-module/)
[1] https://developer.sony.com/file/download/open-source-archive-for-64-0-m-4-29/

Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Link: https://lore.kernel.org/r/20221118131035.54874-1-konrad.dybcio@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/regulator/slg51000-regulator.c

index 75a941f..1b2eee9 100644 (file)
@@ -457,6 +457,8 @@ static int slg51000_i2c_probe(struct i2c_client *client)
                chip->cs_gpiod = cs_gpiod;
        }
 
+       usleep_range(10000, 11000);
+
        i2c_set_clientdata(client, chip);
        chip->chip_irq = client->irq;
        chip->dev = dev;