diff options
author | Jacob Pan <jacob.jun.pan@linux.intel.com> | 2015-04-06 14:38:20 -0400 |
---|---|---|
committer | Jonathan Cameron <jic23@kernel.org> | 2015-04-09 13:49:13 -0400 |
commit | d0716b0ea4ce11a13477163c14b26e180922ba51 (patch) | |
tree | cdd9f9b03e326974d53b6a27615ec056f1846f9c | |
parent | abad398337f038f5822e53c55eff5b0820ef7efe (diff) |
iio/axp288_adc: add missing channel info mask
Commit 65de7654d39c70c2b ("iio: iio: Fix iio_channel_read return if
channel havn't info") added a check for valid info masks.
This patch adds missing channel info masks for all ADC channels.
Otherwise, iio_read_channel_raw() would return -EINVAL when called
by consumer drivers.
Note that the change of _processed to _raw actually fixes an ABI abuse
in the original driver where it was used to avoid some special handling
rather than because it was correct.
Signed-off-by: Jacob Pan <jacob.jun.pan@linux.intel.com>
Cc: <Stable@vger.kernel.org>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
-rw-r--r-- | drivers/iio/adc/axp288_adc.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/drivers/iio/adc/axp288_adc.c b/drivers/iio/adc/axp288_adc.c index 08bcfb061ca5..56008a86b78f 100644 --- a/drivers/iio/adc/axp288_adc.c +++ b/drivers/iio/adc/axp288_adc.c | |||
@@ -53,39 +53,42 @@ static const struct iio_chan_spec const axp288_adc_channels[] = { | |||
53 | .channel = 0, | 53 | .channel = 0, |
54 | .address = AXP288_TS_ADC_H, | 54 | .address = AXP288_TS_ADC_H, |
55 | .datasheet_name = "TS_PIN", | 55 | .datasheet_name = "TS_PIN", |
56 | .info_mask_separate = BIT(IIO_CHAN_INFO_RAW), | ||
56 | }, { | 57 | }, { |
57 | .indexed = 1, | 58 | .indexed = 1, |
58 | .type = IIO_TEMP, | 59 | .type = IIO_TEMP, |
59 | .channel = 1, | 60 | .channel = 1, |
60 | .address = AXP288_PMIC_ADC_H, | 61 | .address = AXP288_PMIC_ADC_H, |
61 | .datasheet_name = "PMIC_TEMP", | 62 | .datasheet_name = "PMIC_TEMP", |
63 | .info_mask_separate = BIT(IIO_CHAN_INFO_RAW), | ||
62 | }, { | 64 | }, { |
63 | .indexed = 1, | 65 | .indexed = 1, |
64 | .type = IIO_TEMP, | 66 | .type = IIO_TEMP, |
65 | .channel = 2, | 67 | .channel = 2, |
66 | .address = AXP288_GP_ADC_H, | 68 | .address = AXP288_GP_ADC_H, |
67 | .datasheet_name = "GPADC", | 69 | .datasheet_name = "GPADC", |
70 | .info_mask_separate = BIT(IIO_CHAN_INFO_RAW), | ||
68 | }, { | 71 | }, { |
69 | .indexed = 1, | 72 | .indexed = 1, |
70 | .type = IIO_CURRENT, | 73 | .type = IIO_CURRENT, |
71 | .channel = 3, | 74 | .channel = 3, |
72 | .address = AXP20X_BATT_CHRG_I_H, | 75 | .address = AXP20X_BATT_CHRG_I_H, |
73 | .datasheet_name = "BATT_CHG_I", | 76 | .datasheet_name = "BATT_CHG_I", |
74 | .info_mask_separate = BIT(IIO_CHAN_INFO_PROCESSED), | 77 | .info_mask_separate = BIT(IIO_CHAN_INFO_RAW), |
75 | }, { | 78 | }, { |
76 | .indexed = 1, | 79 | .indexed = 1, |
77 | .type = IIO_CURRENT, | 80 | .type = IIO_CURRENT, |
78 | .channel = 4, | 81 | .channel = 4, |
79 | .address = AXP20X_BATT_DISCHRG_I_H, | 82 | .address = AXP20X_BATT_DISCHRG_I_H, |
80 | .datasheet_name = "BATT_DISCHRG_I", | 83 | .datasheet_name = "BATT_DISCHRG_I", |
81 | .info_mask_separate = BIT(IIO_CHAN_INFO_PROCESSED), | 84 | .info_mask_separate = BIT(IIO_CHAN_INFO_RAW), |
82 | }, { | 85 | }, { |
83 | .indexed = 1, | 86 | .indexed = 1, |
84 | .type = IIO_VOLTAGE, | 87 | .type = IIO_VOLTAGE, |
85 | .channel = 5, | 88 | .channel = 5, |
86 | .address = AXP20X_BATT_V_H, | 89 | .address = AXP20X_BATT_V_H, |
87 | .datasheet_name = "BATT_V", | 90 | .datasheet_name = "BATT_V", |
88 | .info_mask_separate = BIT(IIO_CHAN_INFO_PROCESSED), | 91 | .info_mask_separate = BIT(IIO_CHAN_INFO_RAW), |
89 | }, | 92 | }, |
90 | }; | 93 | }; |
91 | 94 | ||
@@ -151,9 +154,6 @@ static int axp288_adc_read_raw(struct iio_dev *indio_dev, | |||
151 | chan->address)) | 154 | chan->address)) |
152 | dev_err(&indio_dev->dev, "TS pin restore\n"); | 155 | dev_err(&indio_dev->dev, "TS pin restore\n"); |
153 | break; | 156 | break; |
154 | case IIO_CHAN_INFO_PROCESSED: | ||
155 | ret = axp288_adc_read_channel(val, chan->address, info->regmap); | ||
156 | break; | ||
157 | default: | 157 | default: |
158 | ret = -EINVAL; | 158 | ret = -EINVAL; |
159 | } | 159 | } |