aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAxel Lin <axel.lin@ingics.com>2012-12-10 06:46:52 -0500
committerMark Brown <broonie@opensource.wolfsonmicro.com>2012-12-24 11:26:50 -0500
commitf38482fa700f18b72afbbaef8c4c4769c68c88ce (patch)
tree8b77d00a3bd16ef6ae238ecd0d07bcdceed46b16
parenta49f0d1ea3ec94fc7cf33a7c36a16343b74bd565 (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.c22
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
143static int lp3971_ldo_get_voltage(struct regulator_dev *dev) 141static 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
155static int lp3971_ldo_set_voltage_sel(struct regulator_dev *dev, 153static 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
204static int lp3971_dcdc_get_voltage(struct regulator_dev *dev) 202static 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
224static int lp3971_dcdc_set_voltage_sel(struct regulator_dev *dev, 214static 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