提交 dceb5f7b 编写于 作者: R Renato Lui Geh 提交者: Xie XiuQi

staging: iio: ad7780: update voltage on read

[ Upstream commit 336650c7 ]

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: NRenato Lui Geh <renatogeh@gmail.com>
Acked-by: NAlexandru Ardelean <alexandru.ardelean@analog.com>
Signed-off-by: NJonathan Cameron <Jonathan.Cameron@huawei.com>
Signed-off-by: NSasha Levin <sashal@kernel.org>
Signed-off-by: NYang Yingliang <yangyingliang@huawei.com>
上级 c3ce2243
...@@ -87,12 +87,16 @@ static int ad7780_read_raw(struct iio_dev *indio_dev, ...@@ -87,12 +87,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% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册