> -----Original Message----- > From: Alexandru Ardelean <ardeleanalex@xxxxxxxxx> > Sent: Friday, August 20, 2021 10:21 AM > To: Sa, Nuno <Nuno.Sa@xxxxxxxxxx> > Cc: linux-iio <linux-iio@xxxxxxxxxxxxxxx>; Jonathan Cameron > <jic23@xxxxxxxxxx>; Lars-Peter Clausen <lars@xxxxxxxxxx>; Drew > Fustini <drew@xxxxxxxx> > Subject: Re: [PATCH 1/2] iio: ltc2983: add support for optional reset > gpio > > [External] > > On Fri, Aug 20, 2021 at 9:53 AM Nuno Sá <nuno.sa@xxxxxxxxxx> > wrote: > > > > Check if an optional reset gpio is present and if so, make sure to > reset > > the device. > > > > Just one note/question inline. > > > Signed-off-by: Nuno Sá <nuno.sa@xxxxxxxxxx> > > --- > > drivers/iio/temperature/ltc2983.c | 11 +++++++++++ > > 1 file changed, 11 insertions(+) > > > > diff --git a/drivers/iio/temperature/ltc2983.c > b/drivers/iio/temperature/ltc2983.c > > index 3b4a0e60e605..37903e9fb90f 100644 > > --- a/drivers/iio/temperature/ltc2983.c > > +++ b/drivers/iio/temperature/ltc2983.c > > @@ -1470,6 +1470,7 @@ static int ltc2983_probe(struct spi_device > *spi) > > { > > struct ltc2983_data *st; > > struct iio_dev *indio_dev; > > + struct gpio_desc *gpio; > > const char *name = spi_get_device_id(spi)->name; > > int ret; > > > > @@ -1494,6 +1495,16 @@ static int ltc2983_probe(struct spi_device > *spi) > > if (ret) > > return ret; > > > > + gpio = devm_gpiod_get_optional(&st->spi->dev, "reset", > GPIOD_OUT_HIGH); > > + if (IS_ERR(gpio)) > > + return PTR_ERR(gpio); > > + > > + if (gpio) { > > + /* bring device out of reset */ > > + usleep_range(1000, 1005); > > + gpiod_set_value_cansleep(gpio, 0); > > Datasheet mentions that it takes up to 100 ms for the device to fully > start-up. > It also mentions that the (command) status register will be > unavailable to the user before this point. > Page 16, Conversion State Details section, second paragraph. > > I think there should probably be a sleep here of 100 ms. > > Other than that change looks good. > In the setup function we do a polled read on the status register until we get the indication we are up. This was actually a fix sent recently [1]. [1]: https://patchwork.kernel.org/project/linux-iio/patch/20210811133220.190264-2-nuno.sa@xxxxxxxxxx/ - Nuno Sá > > + } > > + > > ret = ltc2983_setup(st, true); > > if (ret) > > return ret; > > -- > > 2.33.0 > >