mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-09-12 01:25:43 -04:00
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:
committed by
Jonathan Cameron
parent
fc737af158
commit
8a4eb07a93
@@ -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++;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user