From: Renato Lui Geh Date: Sat, 16 Mar 2019 02:13:13 +0000 (-0300) Subject: staging: iio: ad7780: add gain reading to ad778x X-Git-Tag: v5.15~6451^2~149^2~55 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=0149ba2d5b6d6799e6aeb1ae25773008745c1c5a;p=platform%2Fkernel%2Flinux-starfive.git staging: iio: ad7780: add gain reading to ad778x 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 Signed-off-by: Jonathan Cameron --- diff --git a/drivers/staging/iio/adc/ad7780.c b/drivers/staging/iio/adc/ad7780.c index 0968a69..abb30c1 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; }