Commit 23da6a15 authored by Giuliano Belinassi's avatar Giuliano Belinassi Committed by Jonathan Cameron

staging: iio: ad7780: check if ad778x before gain update

Only the ad778x have the 'gain' status bit. Check it before updating
through a new variable is_ad778x in chip_info.
Signed-off-by: default avatarGiuliano Belinassi <giuliano.belinassi@usp.br>
Acked-by: default avatarAlexandru Ardelean <alexandru.ardelean@analog.com>
Signed-off-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
parent 72e3a524
...@@ -35,6 +35,7 @@ struct ad7780_chip_info { ...@@ -35,6 +35,7 @@ struct ad7780_chip_info {
struct iio_chan_spec channel; struct iio_chan_spec channel;
unsigned int pattern_mask; unsigned int pattern_mask;
unsigned int pattern; unsigned int pattern;
bool is_ad778x;
}; };
struct ad7780_state { struct ad7780_state {
...@@ -113,10 +114,12 @@ static int ad7780_postprocess_sample(struct ad_sigma_delta *sigma_delta, ...@@ -113,10 +114,12 @@ static int ad7780_postprocess_sample(struct ad_sigma_delta *sigma_delta,
((raw_sample & chip_info->pattern_mask) != chip_info->pattern)) ((raw_sample & chip_info->pattern_mask) != chip_info->pattern))
return -EIO; return -EIO;
if (chip_info->is_ad778x) {
if (raw_sample & AD7780_GAIN) if (raw_sample & AD7780_GAIN)
st->gain = 1; st->gain = 1;
else else
st->gain = 128; st->gain = 128;
}
return 0; return 0;
} }
...@@ -135,21 +138,25 @@ static const struct ad7780_chip_info ad7780_chip_info_tbl[] = { ...@@ -135,21 +138,25 @@ static const struct ad7780_chip_info ad7780_chip_info_tbl[] = {
.channel = AD7780_CHANNEL(12, 24), .channel = AD7780_CHANNEL(12, 24),
.pattern = 0x5, .pattern = 0x5,
.pattern_mask = 0x7, .pattern_mask = 0x7,
.is_ad778x = false,
}, },
[ID_AD7171] = { [ID_AD7171] = {
.channel = AD7780_CHANNEL(16, 24), .channel = AD7780_CHANNEL(16, 24),
.pattern = 0x5, .pattern = 0x5,
.pattern_mask = 0x7, .pattern_mask = 0x7,
.is_ad778x = false,
}, },
[ID_AD7780] = { [ID_AD7780] = {
.channel = AD7780_CHANNEL(24, 32), .channel = AD7780_CHANNEL(24, 32),
.pattern = 0x1, .pattern = 0x1,
.pattern_mask = 0x3, .pattern_mask = 0x3,
.is_ad778x = true,
}, },
[ID_AD7781] = { [ID_AD7781] = {
.channel = AD7780_CHANNEL(20, 32), .channel = AD7780_CHANNEL(20, 32),
.pattern = 0x1, .pattern = 0x1,
.pattern_mask = 0x3, .pattern_mask = 0x3,
.is_ad778x = true,
}, },
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment