2024-04-30 13:14:01

by Marc Ferland

[permalink] [raw]
Subject: [PATCH] iio: dac: ad5592r: fix temperature scale

From: Marc Ferland <[email protected]>

For temperature readings, the remainder is returned as nano Celsius
_but_ we mark it as IIO_VAL_INT_PLUS_MICRO. This results in incorrect
temperature reporting through hwmon for example. I have a board here
which reports the following when running 'sensors':

iio_hwmon-isa-0000
Adapter: ISA adapter
temp1: +93.3°C

With the patch applied, it returns the correct temperature:

iio_hwmon-isa-0000
Adapter: ISA adapter
temp1: +30.5°C

Signed-off-by: Marc Ferland <[email protected]>
---
drivers/iio/dac/ad5592r-base.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/iio/dac/ad5592r-base.c b/drivers/iio/dac/ad5592r-base.c
index 076bc9ecfb49..4763402dbcd6 100644
--- a/drivers/iio/dac/ad5592r-base.c
+++ b/drivers/iio/dac/ad5592r-base.c
@@ -415,7 +415,7 @@ static int ad5592r_read_raw(struct iio_dev *iio_dev,
s64 tmp = *val * (3767897513LL / 25LL);
*val = div_s64_rem(tmp, 1000000000LL, val2);

- return IIO_VAL_INT_PLUS_MICRO;
+ return IIO_VAL_INT_PLUS_NANO;
}

mutex_lock(&st->lock);

base-commit: 98369dccd2f8e16bf4c6621053af7aa4821dcf8e
--
2.34.1