diff options
Diffstat (limited to 'drivers/staging/iio/adc/ad7298_core.c')
-rw-r--r-- | drivers/staging/iio/adc/ad7298_core.c | 41 |
1 files changed, 23 insertions, 18 deletions
diff --git a/drivers/staging/iio/adc/ad7298_core.c b/drivers/staging/iio/adc/ad7298_core.c index 2e3b0d979fc..0be71dfcf11 100644 --- a/drivers/staging/iio/adc/ad7298_core.c +++ b/drivers/staging/iio/adc/ad7298_core.c | |||
@@ -24,31 +24,31 @@ | |||
24 | 24 | ||
25 | static struct iio_chan_spec ad7298_channels[] = { | 25 | static struct iio_chan_spec ad7298_channels[] = { |
26 | IIO_CHAN(IIO_TEMP, 0, 1, 0, NULL, 0, 0, | 26 | IIO_CHAN(IIO_TEMP, 0, 1, 0, NULL, 0, 0, |
27 | (1 << IIO_CHAN_INFO_SCALE_SEPARATE), | 27 | IIO_CHAN_INFO_SCALE_SEPARATE_BIT, |
28 | 9, AD7298_CH_TEMP, IIO_ST('s', 32, 32, 0), 0), | 28 | 9, AD7298_CH_TEMP, IIO_ST('s', 32, 32, 0), 0), |
29 | IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, NULL, 0, 0, | 29 | IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, NULL, 0, 0, |
30 | (1 << IIO_CHAN_INFO_SCALE_SHARED), | 30 | IIO_CHAN_INFO_SCALE_SHARED_BIT, |
31 | 0, 0, IIO_ST('u', 12, 16, 0), 0), | 31 | 0, 0, IIO_ST('u', 12, 16, 0), 0), |
32 | IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, NULL, 1, 0, | 32 | IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, NULL, 1, 0, |
33 | (1 << IIO_CHAN_INFO_SCALE_SHARED), | 33 | IIO_CHAN_INFO_SCALE_SHARED_BIT, |
34 | 1, 1, IIO_ST('u', 12, 16, 0), 0), | 34 | 1, 1, IIO_ST('u', 12, 16, 0), 0), |
35 | IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, NULL, 2, 0, | 35 | IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, NULL, 2, 0, |
36 | (1 << IIO_CHAN_INFO_SCALE_SHARED), | 36 | IIO_CHAN_INFO_SCALE_SHARED_BIT, |
37 | 2, 2, IIO_ST('u', 12, 16, 0), 0), | 37 | 2, 2, IIO_ST('u', 12, 16, 0), 0), |
38 | IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, NULL, 3, 0, | 38 | IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, NULL, 3, 0, |
39 | (1 << IIO_CHAN_INFO_SCALE_SHARED), | 39 | IIO_CHAN_INFO_SCALE_SHARED_BIT, |
40 | 3, 3, IIO_ST('u', 12, 16, 0), 0), | 40 | 3, 3, IIO_ST('u', 12, 16, 0), 0), |
41 | IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, NULL, 4, 0, | 41 | IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, NULL, 4, 0, |
42 | (1 << IIO_CHAN_INFO_SCALE_SHARED), | 42 | IIO_CHAN_INFO_SCALE_SHARED_BIT, |
43 | 4, 4, IIO_ST('u', 12, 16, 0), 0), | 43 | 4, 4, IIO_ST('u', 12, 16, 0), 0), |
44 | IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, NULL, 5, 0, | 44 | IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, NULL, 5, 0, |
45 | (1 << IIO_CHAN_INFO_SCALE_SHARED), | 45 | IIO_CHAN_INFO_SCALE_SHARED_BIT, |
46 | 5, 5, IIO_ST('u', 12, 16, 0), 0), | 46 | 5, 5, IIO_ST('u', 12, 16, 0), 0), |
47 | IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, NULL, 6, 0, | 47 | IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, NULL, 6, 0, |
48 | (1 << IIO_CHAN_INFO_SCALE_SHARED), | 48 | IIO_CHAN_INFO_SCALE_SHARED_BIT, |
49 | 6, 6, IIO_ST('u', 12, 16, 0), 0), | 49 | 6, 6, IIO_ST('u', 12, 16, 0), 0), |
50 | IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, NULL, 7, 0, | 50 | IIO_CHAN(IIO_VOLTAGE, 0, 1, 0, NULL, 7, 0, |
51 | (1 << IIO_CHAN_INFO_SCALE_SHARED), | 51 | IIO_CHAN_INFO_SCALE_SHARED_BIT, |
52 | 7, 7, IIO_ST('u', 12, 16, 0), 0), | 52 | 7, 7, IIO_ST('u', 12, 16, 0), 0), |
53 | IIO_CHAN_SOFT_TIMESTAMP(8), | 53 | IIO_CHAN_SOFT_TIMESTAMP(8), |
54 | }; | 54 | }; |
@@ -143,15 +143,20 @@ static int ad7298_read_raw(struct iio_dev *indio_dev, | |||
143 | *val = ret & RES_MASK(AD7298_BITS); | 143 | *val = ret & RES_MASK(AD7298_BITS); |
144 | 144 | ||
145 | return IIO_VAL_INT; | 145 | return IIO_VAL_INT; |
146 | case IIO_CHAN_INFO_SCALE_SHARED: | 146 | case IIO_CHAN_INFO_SCALE: |
147 | scale_uv = (st->int_vref_mv * 1000) >> AD7298_BITS; | 147 | switch (chan->type) { |
148 | *val = scale_uv / 1000; | 148 | case IIO_VOLTAGE: |
149 | *val2 = (scale_uv % 1000) * 1000; | 149 | scale_uv = (st->int_vref_mv * 1000) >> AD7298_BITS; |
150 | return IIO_VAL_INT_PLUS_MICRO; | 150 | *val = scale_uv / 1000; |
151 | case IIO_CHAN_INFO_SCALE_SEPARATE: | 151 | *val2 = (scale_uv % 1000) * 1000; |
152 | *val = 1; | 152 | return IIO_VAL_INT_PLUS_MICRO; |
153 | *val2 = 0; | 153 | case IIO_TEMP: |
154 | return IIO_VAL_INT_PLUS_MICRO; | 154 | *val = 1; |
155 | *val2 = 0; | ||
156 | return IIO_VAL_INT_PLUS_MICRO; | ||
157 | default: | ||
158 | return -EINVAL; | ||
159 | } | ||
155 | } | 160 | } |
156 | return -EINVAL; | 161 | return -EINVAL; |
157 | } | 162 | } |