aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAxel Lin <axel.lin@ingics.com>2016-05-29 07:20:03 -0400
committerMark Brown <broonie@kernel.org>2016-05-30 12:00:56 -0400
commitd0abd6f5f5eac758f4bcf4001f6cc377320ebc84 (patch)
tree9afcc4230513211415ad3c985cd43c1881fd10a1
parent1a695a905c18548062509178b98bc91e67510864 (diff)
regulator: max8973: Fix setting ramp delay
Current code can set ramp delay to a wrong setting that the return value from .set_voltage_time_sel is not enough for proper delay. Fix the logic in .set_ramp_delay and also remove unused ret_val variable. Signed-off-by: Axel Lin <axel.lin@ingics.com> Signed-off-by: Mark Brown <broonie@kernel.org>
-rw-r--r--drivers/regulator/max8973-regulator.c16
1 files changed, 6 insertions, 10 deletions
diff --git a/drivers/regulator/max8973-regulator.c b/drivers/regulator/max8973-regulator.c
index 08d2f13eca00..3958f50c5975 100644
--- a/drivers/regulator/max8973-regulator.c
+++ b/drivers/regulator/max8973-regulator.c
@@ -271,22 +271,18 @@ static int max8973_set_ramp_delay(struct regulator_dev *rdev,
271 struct max8973_chip *max = rdev_get_drvdata(rdev); 271 struct max8973_chip *max = rdev_get_drvdata(rdev);
272 unsigned int control; 272 unsigned int control;
273 int ret; 273 int ret;
274 int ret_val;
275 274
276 /* Set ramp delay */ 275 /* Set ramp delay */
277 if (ramp_delay < 25000) { 276 if (ramp_delay <= 12000)
278 control = MAX8973_RAMP_12mV_PER_US; 277 control = MAX8973_RAMP_12mV_PER_US;
279 ret_val = 12000; 278 else if (ramp_delay <= 25000)
280 } else if (ramp_delay < 50000) {
281 control = MAX8973_RAMP_25mV_PER_US; 279 control = MAX8973_RAMP_25mV_PER_US;
282 ret_val = 25000; 280 else if (ramp_delay <= 50000)
283 } else if (ramp_delay < 200000) {
284 control = MAX8973_RAMP_50mV_PER_US; 281 control = MAX8973_RAMP_50mV_PER_US;
285 ret_val = 50000; 282 else if (ramp_delay <= 200000)
286 } else {
287 control = MAX8973_RAMP_200mV_PER_US; 283 control = MAX8973_RAMP_200mV_PER_US;
288 ret_val = 200000; 284 else
289 } 285 return -EINVAL;
290 286
291 ret = regmap_update_bits(max->regmap, MAX8973_CONTROL1, 287 ret = regmap_update_bits(max->regmap, MAX8973_CONTROL1,
292 MAX8973_RAMP_MASK, control); 288 MAX8973_RAMP_MASK, control);