iio: adc: ad7124: Enable internal reference
When the internal reference was selected by a channel it was not enabled.
This patch fixes that and enables it.
Fixes: b3af341bbd
("iio: adc: Add ad7124 support")
Signed-off-by: Mircea Caprioru <mircea.caprioru@analog.com>
Cc: <Stable@vger.kernel.org>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
This commit is contained in:
parent
ada971cbdc
commit
11d7c8d3b1
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue