diff options
Diffstat (limited to 'drivers/iio/humidity/si7020.c')
-rw-r--r-- | drivers/iio/humidity/si7020.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/iio/humidity/si7020.c b/drivers/iio/humidity/si7020.c index fa3b809aff5e..12128d1ca570 100644 --- a/drivers/iio/humidity/si7020.c +++ b/drivers/iio/humidity/si7020.c @@ -57,8 +57,12 @@ static int si7020_read_raw(struct iio_dev *indio_dev, if (ret < 0) return ret; *val = ret >> 2; + /* + * Humidity values can slightly exceed the 0-100%RH + * range and should be corrected by software + */ if (chan->type == IIO_HUMIDITYRELATIVE) - *val &= GENMASK(11, 0); + *val = clamp_val(*val, 786, 13893); return IIO_VAL_INT; case IIO_CHAN_INFO_SCALE: if (chan->type == IIO_TEMP) |