mirror of
https://github.com/torvalds/linux.git
synced 2026-05-28 17:13:52 +02:00
iio: imu: inv_icm45600: fix temperature offset reporting
Correct temperature computation is (raw + offset) * scale and not
apply scale and offset afterward.
Fix temperature offset reporting to the correct value and update
commentaries for the new computation.
Fixes: 27e072bc34 ("iio: imu: inv_icm45600: add IMU IIO gyroscope device")
Signed-off-by: Jean-Baptiste Maneyrol <jean-baptiste.maneyrol@tdk.com>
Cc: stable@vger.kernel.org
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
This commit is contained in:
parent
ea6b4feba8
commit
943cbf9069
|
|
@ -960,16 +960,17 @@ int inv_icm45600_temp_read_raw(struct iio_dev *indio_dev,
|
|||
return IIO_VAL_INT;
|
||||
/*
|
||||
* T°C = (temp / 128) + 25
|
||||
* Tm°C = 1000 * ((temp * 100 / 12800) + 25)
|
||||
* scale: 100000 / 13248 = 7.8125
|
||||
* offset: 25000
|
||||
* Tm°C = ((temp + 25 * 128) / 128)) * 1000
|
||||
* Tm°C = (temp + 3200) * (1000 / 128)
|
||||
* scale: 1000 / 128 = 7.8125
|
||||
* offset: 3200
|
||||
*/
|
||||
case IIO_CHAN_INFO_SCALE:
|
||||
*val = 7;
|
||||
*val2 = 812500;
|
||||
return IIO_VAL_INT_PLUS_MICRO;
|
||||
case IIO_CHAN_INFO_OFFSET:
|
||||
*val = 25000;
|
||||
*val = 3200;
|
||||
return IIO_VAL_INT;
|
||||
default:
|
||||
return -EINVAL;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user