diff mbox series

[v5,03/11] staging: iio: ad7780: add gain reading to ad778x

Message ID aed4d900061c5733decc429d0d0816122dba0991.1552700652.git.renatogeh@gmail.com (mailing list archive)
State New, archived
Headers show
Series staging: iio: ad7780: move out of staging | expand

Commit Message

Renato Lui Geh March 16, 2019, 2:13 a.m. UTC
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>
---
 drivers/staging/iio/adc/ad7780.c | 5 +++++
 1 file changed, 5 insertions(+)

Comments

Jonathan Cameron March 16, 2019, 5:54 p.m. UTC | #1
On Fri, 15 Mar 2019 23:13:13 -0300
Renato Lui Geh <renatogeh@gmail.com> wrote:

> 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>

Applied, thanks

> ---
>  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;
>  }
>
diff mbox series

Patch

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;
 }