[PATCH v4 6/7] iio: adc: hx711: pass iio_chan_spec to hx711_reset_read()

Piyush Patle
2026-04-27T10:11:05Z

Change hx711_reset_read() to accept a const struct iio_chan_spec *
instead of a plain integer channel index. This lets the HX710B support
patch pass the full channel descriptor (including chan->address for the
trailing pulse count) without adding a wrapper or a separate code path
for each call site.

Update the two callers: hx711_read_raw() already has the iio_chan_spec *
from its own parameter, and hx711_trigger() passes &indio_dev->channels[i].

No functional change.

Signed-off-by: Piyush Patle <piyushpatle228@gmail.com>
---
Changes in v4:
- New patch. Split out from the v3 refactor patch as requested by
Andy Shevchenko.
---
drivers/iio/adc/hx711.c | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/drivers/iio/adc/hx711.c b/drivers/iio/adc/hx711.c
index 8e77978f062b..dc6703ead8a0 100644
--- a/drivers/iio/adc/hx711.c
+++ b/drivers/iio/adc/hx711.c
@@ -264,7 +264,8 @@ static int hx711_set_gain_for_channel(struct hx711_data *hx711_data, int chan)
return 0;
}

-static int hx711_reset_read(struct hx711_data *hx711_data, int chan)
+static int hx711_reset_read(struct hx711_data *hx711_data,
+ const struct iio_chan_spec *chan)
{
unsigned int trailing_pulses;
int ret;
@@ -278,7 +279,7 @@ static int hx711_reset_read(struct hx711_data *hx711_data, int chan)
return -EIO;
}

- ret = hx711_set_gain_for_channel(hx711_data, chan);
+ ret = hx711_set_gain_for_channel(hx711_data, chan->channel);
if (ret < 0)
return ret;

@@ -296,7 +297,7 @@ static int hx711_read_raw(struct iio_dev *indio_dev,
case IIO_CHAN_INFO_RAW:
mutex_lock(&hx711_data->lock);

- *val = hx711_reset_read(hx711_data, chan->channel);
+ *val = hx711_reset_read(hx711_data, chan);

mutex_unlock(&hx711_data->lock);

@@ -387,7 +388,7 @@ static irqreturn_t hx711_trigger(int irq, void *p)

iio_for_each_active_channel(indio_dev, i) {
hx711_data->buffer.channel[j] = hx711_reset_read(hx711_data,
- indio_dev->channels[i].channel);
+ &indio_dev->channels[i]);
j++;
}

--
2.43.0