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 <renato...@gmail.com>
---
drivers/staging/iio/adc/ad7780.c | 5 +++++
1 file changed, 5 insertions(+)

diff --git a/drivers/staging/iio/adc/ad7780.c b/drivers/staging/iio/adc/ad7780.c
index f4cd7bc3e02f..fbcc0d3345ca 100644
--- a/drivers/staging/iio/adc/ad7780.c
+++ b/drivers/staging/iio/adc/ad7780.c
@@ -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;
}

--
2.21.0

_______________________________________________
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Reply via email to