On Thu, 30 Apr 2020 15:05:47 +0200 Gregory CLEMENT <gregory.clement@xxxxxxxxxxx> wrote: > During initial submission the selection of the channel was done using > the scan_index member of the iio_chan_spec structure. It was an abuse > because this member is supposed to be used with a buffer so it was > removed. > > However there was still the need to be able to known how to select a > channel, the correct member to store this information is address. > > Thanks to this it is possible to select any other channel than the > channel 0. > > Fixes: 8dd2d7c0fed7 ("iio: adc: Add driver for the TI ADS8344 A/DC chips") > Signed-off-by: Gregory CLEMENT <gregory.clement@xxxxxxxxxxx> Applied to the fixes-togreg branch of iio.git and marked for stable. Oops on this one :( Thanks, Jonathan > --- > drivers/iio/adc/ti-ads8344.c | 8 +++++--- > 1 file changed, 5 insertions(+), 3 deletions(-) > > diff --git a/drivers/iio/adc/ti-ads8344.c b/drivers/iio/adc/ti-ads8344.c > index 9a460807d46d..d384ca3437da 100644 > --- a/drivers/iio/adc/ti-ads8344.c > +++ b/drivers/iio/adc/ti-ads8344.c > @@ -32,16 +32,17 @@ struct ads8344 { > u16 rx_buf; > }; > > -#define ADS8344_VOLTAGE_CHANNEL(chan, si) \ > +#define ADS8344_VOLTAGE_CHANNEL(chan, addr) \ > { \ > .type = IIO_VOLTAGE, \ > .indexed = 1, \ > .channel = chan, \ > .info_mask_separate = BIT(IIO_CHAN_INFO_RAW), \ > .info_mask_shared_by_type = BIT(IIO_CHAN_INFO_SCALE), \ > + .address = addr, \ > } > > -#define ADS8344_VOLTAGE_CHANNEL_DIFF(chan1, chan2, si) \ > +#define ADS8344_VOLTAGE_CHANNEL_DIFF(chan1, chan2, addr) \ > { \ > .type = IIO_VOLTAGE, \ > .indexed = 1, \ > @@ -50,6 +51,7 @@ struct ads8344 { > .differential = 1, \ > .info_mask_separate = BIT(IIO_CHAN_INFO_RAW), \ > .info_mask_shared_by_type = BIT(IIO_CHAN_INFO_SCALE), \ > + .address = addr, \ > } > > static const struct iio_chan_spec ads8344_channels[] = { > @@ -105,7 +107,7 @@ static int ads8344_read_raw(struct iio_dev *iio, > switch (mask) { > case IIO_CHAN_INFO_RAW: > mutex_lock(&adc->lock); > - *value = ads8344_adc_conversion(adc, channel->scan_index, > + *value = ads8344_adc_conversion(adc, channel->address, > channel->differential); > mutex_unlock(&adc->lock); > if (*value < 0)