staging:iio:cdc:ad7150: Shift the _raw readings by 4 bits.
authorJonathan Cameron <Jonathan.Cameron@huawei.com>
Sun, 14 Mar 2021 18:15:04 +0000 (18:15 +0000)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Wed, 7 Apr 2021 07:36:36 +0000 (08:36 +0100)
Every other register related to raw value on the datasheet is
described as correpsonding to the 12MSB of the actual
data registers + the bottom 4 bits are 0.  So lets treat this
as what it actually is, which is a 12 bit value.
Note that we will have to be a little careful to compensate for
the offset and scale values.

Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Reviewed-by: Alexandru Ardelean <alexandru.ardelean@analog.com>
Link: https://lore.kernel.org/r/20210314181511.531414-18-jic23@kernel.org
drivers/staging/iio/cdc/ad7150.c

index 8bdb97a..5abc4e9 100644 (file)
@@ -111,7 +111,7 @@ static int ad7150_read_raw(struct iio_dev *indio_dev,
                                                  ad7150_addresses[channel][0]);
                if (ret < 0)
                        return ret;
-               *val = ret;
+               *val = ret >> 4;
 
                return IIO_VAL_INT;
        case IIO_CHAN_INFO_AVERAGE_RAW: