diff options
author | Axel Lin <axel.lin@ingics.com> | 2012-12-10 06:46:52 -0500 |
---|---|---|
committer | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2012-12-24 11:26:50 -0500 |
commit | f38482fa700f18b72afbbaef8c4c4769c68c88ce (patch) | |
tree | 8b77d00a3bd16ef6ae238ecd0d07bcdceed46b16 | |
parent | a49f0d1ea3ec94fc7cf33a7c36a16343b74bd565 (diff) |
regulator: lp3971: Convert to get_voltage_sel
regulator_list_voltage_table() returns -EINVAL if selector >= n_voltages.
Thus we don't need to check if reg is greater than BUCK_TARGET_VOL_MAX_IDX in
lp3971_dcdc_get_voltage_sel.
BUCK_TARGET_VOL_MIN_IDX and BUCK_TARGET_VOL_MAX_IDX are not used, remove them.
Signed-off-by: Axel Lin <axel.lin@ingics.com>
Acked-by: Marek Szyprowski <m.szyprowski@samsung.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
-rw-r--r-- | drivers/regulator/lp3971.c | 22 |
1 files changed, 6 insertions, 16 deletions
diff --git a/drivers/regulator/lp3971.c b/drivers/regulator/lp3971.c index 5f68ff11a298..9cb2c0f34515 100644 --- a/drivers/regulator/lp3971.c +++ b/drivers/regulator/lp3971.c | |||
@@ -73,8 +73,6 @@ static const unsigned int buck_voltage_map[] = { | |||
73 | }; | 73 | }; |
74 | 74 | ||
75 | #define BUCK_TARGET_VOL_MASK 0x3f | 75 | #define BUCK_TARGET_VOL_MASK 0x3f |
76 | #define BUCK_TARGET_VOL_MIN_IDX 0x01 | ||
77 | #define BUCK_TARGET_VOL_MAX_IDX 0x19 | ||
78 | 76 | ||
79 | #define LP3971_BUCK_RAMP_REG(x) (buck_base_addr[x]+2) | 77 | #define LP3971_BUCK_RAMP_REG(x) (buck_base_addr[x]+2) |
80 | 78 | ||
@@ -140,7 +138,7 @@ static int lp3971_ldo_disable(struct regulator_dev *dev) | |||
140 | return lp3971_set_bits(lp3971, LP3971_LDO_ENABLE_REG, mask, 0); | 138 | return lp3971_set_bits(lp3971, LP3971_LDO_ENABLE_REG, mask, 0); |
141 | } | 139 | } |
142 | 140 | ||
143 | static int lp3971_ldo_get_voltage(struct regulator_dev *dev) | 141 | static int lp3971_ldo_get_voltage_sel(struct regulator_dev *dev) |
144 | { | 142 | { |
145 | struct lp3971 *lp3971 = rdev_get_drvdata(dev); | 143 | struct lp3971 *lp3971 = rdev_get_drvdata(dev); |
146 | int ldo = rdev_get_id(dev) - LP3971_LDO1; | 144 | int ldo = rdev_get_id(dev) - LP3971_LDO1; |
@@ -149,7 +147,7 @@ static int lp3971_ldo_get_voltage(struct regulator_dev *dev) | |||
149 | reg = lp3971_reg_read(lp3971, LP3971_LDO_VOL_CONTR_REG(ldo)); | 147 | reg = lp3971_reg_read(lp3971, LP3971_LDO_VOL_CONTR_REG(ldo)); |
150 | val = (reg >> LDO_VOL_CONTR_SHIFT(ldo)) & LDO_VOL_CONTR_MASK; | 148 | val = (reg >> LDO_VOL_CONTR_SHIFT(ldo)) & LDO_VOL_CONTR_MASK; |
151 | 149 | ||
152 | return dev->desc->volt_table[val]; | 150 | return val; |
153 | } | 151 | } |
154 | 152 | ||
155 | static int lp3971_ldo_set_voltage_sel(struct regulator_dev *dev, | 153 | static int lp3971_ldo_set_voltage_sel(struct regulator_dev *dev, |
@@ -168,7 +166,7 @@ static struct regulator_ops lp3971_ldo_ops = { | |||
168 | .is_enabled = lp3971_ldo_is_enabled, | 166 | .is_enabled = lp3971_ldo_is_enabled, |
169 | .enable = lp3971_ldo_enable, | 167 | .enable = lp3971_ldo_enable, |
170 | .disable = lp3971_ldo_disable, | 168 | .disable = lp3971_ldo_disable, |
171 | .get_voltage = lp3971_ldo_get_voltage, | 169 | .get_voltage_sel = lp3971_ldo_get_voltage_sel, |
172 | .set_voltage_sel = lp3971_ldo_set_voltage_sel, | 170 | .set_voltage_sel = lp3971_ldo_set_voltage_sel, |
173 | }; | 171 | }; |
174 | 172 | ||
@@ -201,24 +199,16 @@ static int lp3971_dcdc_disable(struct regulator_dev *dev) | |||
201 | return lp3971_set_bits(lp3971, LP3971_BUCK_VOL_ENABLE_REG, mask, 0); | 199 | return lp3971_set_bits(lp3971, LP3971_BUCK_VOL_ENABLE_REG, mask, 0); |
202 | } | 200 | } |
203 | 201 | ||
204 | static int lp3971_dcdc_get_voltage(struct regulator_dev *dev) | 202 | static int lp3971_dcdc_get_voltage_sel(struct regulator_dev *dev) |
205 | { | 203 | { |
206 | struct lp3971 *lp3971 = rdev_get_drvdata(dev); | 204 | struct lp3971 *lp3971 = rdev_get_drvdata(dev); |
207 | int buck = rdev_get_id(dev) - LP3971_DCDC1; | 205 | int buck = rdev_get_id(dev) - LP3971_DCDC1; |
208 | u16 reg; | 206 | u16 reg; |
209 | int val; | ||
210 | 207 | ||
211 | reg = lp3971_reg_read(lp3971, LP3971_BUCK_TARGET_VOL1_REG(buck)); | 208 | reg = lp3971_reg_read(lp3971, LP3971_BUCK_TARGET_VOL1_REG(buck)); |
212 | reg &= BUCK_TARGET_VOL_MASK; | 209 | reg &= BUCK_TARGET_VOL_MASK; |
213 | 210 | ||
214 | if (reg <= BUCK_TARGET_VOL_MAX_IDX) | 211 | return reg; |
215 | val = buck_voltage_map[reg]; | ||
216 | else { | ||
217 | val = 0; | ||
218 | dev_warn(&dev->dev, "chip reported incorrect voltage value.\n"); | ||
219 | } | ||
220 | |||
221 | return val; | ||
222 | } | 212 | } |
223 | 213 | ||
224 | static int lp3971_dcdc_set_voltage_sel(struct regulator_dev *dev, | 214 | static int lp3971_dcdc_set_voltage_sel(struct regulator_dev *dev, |
@@ -249,7 +239,7 @@ static struct regulator_ops lp3971_dcdc_ops = { | |||
249 | .is_enabled = lp3971_dcdc_is_enabled, | 239 | .is_enabled = lp3971_dcdc_is_enabled, |
250 | .enable = lp3971_dcdc_enable, | 240 | .enable = lp3971_dcdc_enable, |
251 | .disable = lp3971_dcdc_disable, | 241 | .disable = lp3971_dcdc_disable, |
252 | .get_voltage = lp3971_dcdc_get_voltage, | 242 | .get_voltage_sel = lp3971_dcdc_get_voltage_sel, |
253 | .set_voltage_sel = lp3971_dcdc_set_voltage_sel, | 243 | .set_voltage_sel = lp3971_dcdc_set_voltage_sel, |
254 | }; | 244 | }; |
255 | 245 | ||