iio: adc: hx711: pass iio_chan_spec to hx711_reset_read

Change hx711_reset_read() to accept the channel descriptor directly and
update its callers accordingly.

Split the existing HX711 channel-selection work into a small helper so a
later variant-specific change can add a matching helper without growing
hx711_reset_read() further.

No functional change.

Signed-off-by: Piyush Patle <piyushpatle228@gmail.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@intel.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
This commit is contained in:
Piyush Patle
2026-06-04 00:18:58 +05:30
committed by Jonathan Cameron
parent fc737af158
commit 8a4eb07a93

View File

@@ -268,7 +268,23 @@ 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_set_hx711_channel(struct hx711_data *hx711_data,
const struct iio_chan_spec *chan,
int *trailing_pulses)
{
int ret;
ret = hx711_set_gain_for_channel(hx711_data, chan->channel);
if (ret < 0)
return ret;
*trailing_pulses = hx711_get_gain_to_pulse(hx711_data->gain_set);
return 0;
}
static int hx711_reset_read(struct hx711_data *hx711_data,
const struct iio_chan_spec *chan)
{
int trailing_pulses;
int ret;
@@ -282,11 +298,10 @@ 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_hx711_channel(hx711_data, chan, &trailing_pulses);
if (ret < 0)
return ret;
trailing_pulses = hx711_get_gain_to_pulse(hx711_data->gain_set);
return hx711_read(hx711_data, trailing_pulses);
}
@@ -300,7 +315,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);
@@ -390,8 +405,8 @@ static irqreturn_t hx711_trigger(int irq, void *p)
memset(&hx711_data->buffer, 0, sizeof(hx711_data->buffer));
iio_for_each_active_channel(indio_dev, i) {
hx711_data->buffer.channel[j] = hx711_reset_read(hx711_data,
indio_dev->channels[i].channel);
hx711_data->buffer.channel[j] =
hx711_reset_read(hx711_data, &indio_dev->channels[i]);
j++;
}