[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20191118111948.7414-1-mircea.caprioru@analog.com>
Date: Mon, 18 Nov 2019 13:19:48 +0200
From: Mircea Caprioru <mircea.caprioru@...log.com>
To: <jic23@...nel.org>
CC: <Michael.Hennerich@...log.com>, <stefan.popa@...log.com>,
<lars@...afoo.de>, <gregkh@...uxfoundation.org>,
<linux-kernel@...r.kernel.org>, <linux-iio@...r.kernel.org>,
Mircea Caprioru <mircea.caprioru@...log.com>
Subject: [PATCH V3] iio: adc: ad7124: Fix enabling of internal reference
When the internal reference was selected by a channel it was not enabled.
This patch fixes that and enables it.
Fixes: b3af341bbd96 ("iio: adc: Add ad7124 support")
Signed-off-by: Mircea Caprioru <mircea.caprioru@...log.com>
---
Changelog v3:
- mark this as a fix in the patch title
drivers/iio/adc/ad7124.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/drivers/iio/adc/ad7124.c b/drivers/iio/adc/ad7124.c
index edc6f1cc90b2..3f03abf100b5 100644
--- a/drivers/iio/adc/ad7124.c
+++ b/drivers/iio/adc/ad7124.c
@@ -39,6 +39,8 @@
#define AD7124_STATUS_POR_FLAG_MSK BIT(4)
/* AD7124_ADC_CONTROL */
+#define AD7124_ADC_CTRL_REF_EN_MSK BIT(8)
+#define AD7124_ADC_CTRL_REF_EN(x) FIELD_PREP(AD7124_ADC_CTRL_REF_EN_MSK, x)
#define AD7124_ADC_CTRL_PWR_MSK GENMASK(7, 6)
#define AD7124_ADC_CTRL_PWR(x) FIELD_PREP(AD7124_ADC_CTRL_PWR_MSK, x)
#define AD7124_ADC_CTRL_MODE_MSK GENMASK(5, 2)
@@ -424,7 +426,10 @@ static int ad7124_init_channel_vref(struct ad7124_state *st,
break;
case AD7124_INT_REF:
st->channel_config[channel_number].vref_mv = 2500;
- break;
+ st->adc_control &= ~AD7124_ADC_CTRL_REF_EN_MSK;
+ st->adc_control |= AD7124_ADC_CTRL_REF_EN(1);
+ return ad_sd_write_reg(&st->sd, AD7124_ADC_CONTROL,
+ 2, st->adc_control);
default:
dev_err(&st->sd.spi->dev, "Invalid reference %d\n", refsel);
return -EINVAL;
--
2.17.1
Powered by blists - more mailing lists