Re: [PATCH v3 2/3] ltc2471: ltc2461/ltc2463 compatible strings

From: Jonathan Cameron
Date: Sat Aug 01 2020 - 12:05:38 EST


On Tue, 28 Jul 2020 06:24:03 +0000
"Berghe, Darius" <Darius.Berghe@xxxxxxxxxx> wrote:

> Hi Jonathan,
>
> Thanks for review, comments inline.
>
> > -----Original Message-----
> > From: Jonathan Cameron <Jonathan.Cameron@xxxxxxxxxx>
> > Sent: Monday, July 27, 2020 8:27 PM
> > To: Berghe, Darius <Darius.Berghe@xxxxxxxxxx>
> > Cc: linux-iio@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx;
> > devicetree@xxxxxxxxxxxxxxx; jic23@xxxxxxxxxx; robh@xxxxxxxxxx
> > Subject: Re: [PATCH v3 2/3] ltc2471: ltc2461/ltc2463 compatible strings
> >
> > [External]
> >
> > On Mon, 27 Jul 2020 16:58:33 +0300
> > Darius Berghe <darius.berghe@xxxxxxxxxx> wrote:
> >
> > > Add compatible strings for these devices in the existing ltc2471
> > > driver.
> > >
> > > Signed-off-by: Darius Berghe <darius.berghe@xxxxxxxxxx>
> >
> > Hi Darius,
> >
> > A few additional minor comments from me.
> >
> > > ---
> > > drivers/iio/adc/ltc2471.c | 16 ++++++++++++----
> > > 1 file changed, 12 insertions(+), 4 deletions(-)
> > >
> > > diff --git a/drivers/iio/adc/ltc2471.c b/drivers/iio/adc/ltc2471.c
> > > index e1c4e966524d..8c57203b1fe4 100644
> > > --- a/drivers/iio/adc/ltc2471.c
> > > +++ b/drivers/iio/adc/ltc2471.c
> > > @@ -1,5 +1,7 @@
> > > /*
> > > - * Driver for Linear Technology LTC2471 and LTC2473 voltage monitors
> > > + * Driver for Linear Technology LTC2461, LTC2463, LTC2471 and LTC2473
> > > + voltage
> > > + * monitors.
> > > + * The LTC2463 is identical to the 2461, but reports a differential signal.
> > > * The LTC2473 is identical to the 2471, but reports a differential signal.
> > > *
> > > * Copyright (C) 2017 Topic Embedded Products @@ -17,8 +19,10 @@
> > > #include <linux/mod_devicetable.h>
> > >
> > > enum ltc2471_chips {
> > > + ltc2461,
> > > + ltc2463,
> > > ltc2471,
> > > - ltc2473,
> > > + ltc2473
> >
> > Why drop the comma? We've just added two new devices. Seems possible
> > there may be more in the future!
> >
>
> Ok, will leave it there in v4.
>
> > > };
> > >
> > > struct ltc2471_data {
> > > @@ -122,7 +126,7 @@ static int ltc2471_i2c_probe(struct i2c_client
> > *client,
> > > indio_dev->name = id->name;
> > > indio_dev->info = &ltc2471_info;
> > > indio_dev->modes = INDIO_DIRECT_MODE;
> > > - if (id->driver_data == ltc2473)
> > > + if (id->driver_data == ltc2473 || id->driver_data == ltc2463)
> > If the only use of driver_data is going to be this check, then just set it to 2473
> > for the 2463 and 2473. It's not uncommon to do this when we have a bunch
> > of devices that look the same to software.
>
> Yes the chips are similar but there is at least one feature which requires this level
> of distinguishing them: the sampling rate (60sps for ltc2461/3 and selectable 208/833sps
> for ltc2471/3). It's not used anywhere for now but I can see it being implemented
> as standard IIO dev attribute sampling frequency.

Fair enough. Perhaps a note in the patch description so no one asks the question
on the next version?

>
> >
> > > indio_dev->channels = ltc2473_channel;
> > > else
> > > indio_dev->channels = ltc2471_channel; @@ -139,6 +143,8
> > @@ static
> > > int ltc2471_i2c_probe(struct i2c_client *client, }
> > >
> > > static const struct i2c_device_id ltc2471_i2c_id[] = {
> > > + { "ltc2461", ltc2461 },
> > > + { "ltc2463", ltc2463 },
> > > { "ltc2471", ltc2471 },
> > > { "ltc2473", ltc2473 },
> > > {}
> > > @@ -146,6 +152,8 @@ static const struct i2c_device_id ltc2471_i2c_id[]
> > > = { MODULE_DEVICE_TABLE(i2c, ltc2471_i2c_id);
> > >
> > > static const struct of_device_id ltc2471_of_match[] = {
> > > + { .compatible = "adi,ltc2461" },
> > > + { .compatible = "adi,ltc2463" },
> > > { .compatible = "adi,ltc2471" },
> > > { .compatible = "adi,ltc2473" },
> > > {}
> > > @@ -163,6 +171,6 @@ static struct i2c_driver ltc2471_i2c_driver = {
> > >
> > > module_i2c_driver(ltc2471_i2c_driver);
> > >
> > > -MODULE_DESCRIPTION("LTC2471/LTC2473 ADC driver");
> > > +MODULE_DESCRIPTION("LTC2461/LTC2463/LTC2471/LTC2473 ADC
> > driver");
> > > MODULE_AUTHOR("Topic Embedded Products"); MODULE_LICENSE("GPL
> > v2");
>