Re: [RESEND PATCH 2/2] iio: temperature: tmp117: add support for vcc-supply

From: Marco Felsch
Date: Fri Feb 16 2024 - 06:51:39 EST


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;
>
>