]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
staging: iio: ad7780: add gain reading to ad778x
authorRenato Lui Geh <renatogeh@gmail.com>
Sat, 16 Mar 2019 02:13:13 +0000 (23:13 -0300)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Thu, 4 Apr 2019 19:20:03 +0000 (20:20 +0100)
This patch adds a new functionality of reading gain values from the
ad778x chips. This value is stored in the chip's state struct and is
updated whenever a read or write call is performed on the driver.

Signed-off-by: Renato Lui Geh <renatogeh@gmail.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/staging/iio/adc/ad7780.c

index 0968a69e537e317751a17d44c7db83d164e6e3f6..abb30c161b0043845da6b2fdea4a4bd29b1d12a1 100644 (file)
@@ -42,6 +42,8 @@
 #define AD7780_GAIN_MIDPOINT   64
 #define AD7780_FILTER_MIDPOINT 13350
 
+static const unsigned int ad778x_gain[2] = { 1, 128 };
+
 struct ad7780_chip_info {
        struct iio_chan_spec    channel;
        unsigned int            pattern_mask;
@@ -179,6 +181,9 @@ static int ad7780_postprocess_sample(struct ad_sigma_delta *sigma_delta,
            ((raw_sample & chip_info->pattern_mask) != chip_info->pattern))
                return -EIO;
 
+       if (chip_info->is_ad778x)
+               st->gain = ad778x_gain[raw_sample & AD7780_GAIN];
+
        return 0;
 }