On 24-02-16, Jonathan Cameron wrote: > On Fri, 16 Feb 2024 11:28:20 +0100 > Marco Felsch <m.felsch@xxxxxxxxxxxxxx> wrote: > > > From: Thomas Haemmerle <thomas.haemmerle@xxxxxxxxxxxxxxxxxxxx> > > > > Add support to specify the VCC supply which is required to power the > > device. > > > > Signed-off-by: Thomas Haemmerle <thomas.haemmerle@xxxxxxxxxxxxxxxxxxxx> > > Signed-off-by: Marco Felsch <m.felsch@xxxxxxxxxxxxxx> > > Hi. > > With power supply enables, the question that normally comes up is whether > the device takes significant time to become available after the power is > turned on. > > I had a look at the datasheet but couldn't find clear language on > how long we need to wait before the device is usable following power up. > There is a number for reset of 1.5 msecs so I guess we could use that > safely? You're right, section 7.3.1 Power Up mention the 1.5ms as well. I will add this albeit we didn't had issues with this patch in place for like months. > Maybe no delay is fine for reading the device ID. I've no idea. > Sometimes we start with no delay and only end up adding one later when > people report issues. We could do that here. Yes, I will add it and send a v2. Thanks, Marco > > Jonathan > > > --- > > Resend since I forgot to add the DT maintainers > > > > drivers/iio/temperature/tmp117.c | 5 +++++ > > 1 file changed, 5 insertions(+) > > > > diff --git a/drivers/iio/temperature/tmp117.c b/drivers/iio/temperature/tmp117.c > > index 059953015ae7..69328066811a 100644 > > --- a/drivers/iio/temperature/tmp117.c > > +++ b/drivers/iio/temperature/tmp117.c > > @@ -17,6 +17,7 @@ > > #include <linux/kernel.h> > > #include <linux/limits.h> > > #include <linux/property.h> > > +#include <linux/regulator/consumer.h> > > > > #include <linux/iio/iio.h> > > > > @@ -152,6 +153,10 @@ static int tmp117_probe(struct i2c_client *client) > > if (!i2c_check_functionality(client->adapter, I2C_FUNC_SMBUS_WORD_DATA)) > > return -EOPNOTSUPP; > > > > + ret = devm_regulator_get_enable(&client->dev, "vcc"); > > + if (ret) > > + return ret; > > + > > dev_id = i2c_smbus_read_word_swapped(client, TMP117_REG_DEVICE_ID); > > if (dev_id < 0) > > return dev_id; > >