Commit 336650c7 authored by Renato Lui Geh's avatar Renato Lui Geh Committed by Jonathan Cameron

staging: iio: ad7780: update voltage on read

The ad7780 driver previously did not read the correct device output, as
it read an outdated value set at initialization. It now updates its
voltage on read.
Signed-off-by: default avatarRenato Lui Geh <renatogeh@gmail.com>
Acked-by: default avatarAlexandru Ardelean <alexandru.ardelean@analog.com>
Signed-off-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
parent 121354b2
...@@ -96,12 +96,16 @@ static int ad7780_read_raw(struct iio_dev *indio_dev, ...@@ -96,12 +96,16 @@ static int ad7780_read_raw(struct iio_dev *indio_dev,
long m) long m)
{ {
struct ad7780_state *st = iio_priv(indio_dev); struct ad7780_state *st = iio_priv(indio_dev);
int voltage_uv;
switch (m) { switch (m) {
case IIO_CHAN_INFO_RAW: case IIO_CHAN_INFO_RAW:
return ad_sigma_delta_single_conversion(indio_dev, chan, val); return ad_sigma_delta_single_conversion(indio_dev, chan, val);
case IIO_CHAN_INFO_SCALE: case IIO_CHAN_INFO_SCALE:
*val = st->int_vref_mv * st->gain; voltage_uv = regulator_get_voltage(st->reg);
if (voltage_uv < 0)
return voltage_uv;
*val = (voltage_uv / 1000) * st->gain;
*val2 = chan->scan_type.realbits - 1; *val2 = chan->scan_type.realbits - 1;
return IIO_VAL_FRACTIONAL_LOG2; return IIO_VAL_FRACTIONAL_LOG2;
case IIO_CHAN_INFO_OFFSET: case IIO_CHAN_INFO_OFFSET:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment