aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/regulator/ab3100.c
diff options
context:
space:
mode:
authorAxel Lin <axel.lin@gmail.com>2012-03-19 22:14:40 -0400
committerMark Brown <broonie@opensource.wolfsonmicro.com>2012-04-01 06:59:23 -0400
commit1f793ff258c7a48e8cc3729ac13bfd1b3850b9c9 (patch)
tree344ee3c01c68cd0ba31f2bb27870f5f4596a25e4 /drivers/regulator/ab3100.c
parentae713d394d9e2aacaab620acd3212855f1f06b00 (diff)
regulator: Convert ab3100 to set_voltage_sel
Signed-off-by: Axel Lin <axel.lin@gmail.com> Tested-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Diffstat (limited to 'drivers/regulator/ab3100.c')
-rw-r--r--drivers/regulator/ab3100.c18
1 files changed, 5 insertions, 13 deletions
diff --git a/drivers/regulator/ab3100.c b/drivers/regulator/ab3100.c
index 042271aace6a..ed56c9352e6f 100644
--- a/drivers/regulator/ab3100.c
+++ b/drivers/regulator/ab3100.c
@@ -338,20 +338,12 @@ static int ab3100_get_best_voltage_index(struct regulator_dev *reg,
338 return bestindex; 338 return bestindex;
339} 339}
340 340
341static int ab3100_set_voltage_regulator(struct regulator_dev *reg, 341static int ab3100_set_voltage_regulator_sel(struct regulator_dev *reg,
342 int min_uV, int max_uV, 342 unsigned selector)
343 unsigned *selector)
344{ 343{
345 struct ab3100_regulator *abreg = reg->reg_data; 344 struct ab3100_regulator *abreg = reg->reg_data;
346 u8 regval; 345 u8 regval;
347 int err; 346 int err;
348 int bestindex;
349
350 bestindex = ab3100_get_best_voltage_index(reg, min_uV, max_uV);
351 if (bestindex < 0)
352 return bestindex;
353
354 *selector = bestindex;
355 347
356 err = abx500_get_register_interruptible(abreg->dev, 0, 348 err = abx500_get_register_interruptible(abreg->dev, 0,
357 abreg->regreg, &regval); 349 abreg->regreg, &regval);
@@ -364,7 +356,7 @@ static int ab3100_set_voltage_regulator(struct regulator_dev *reg,
364 356
365 /* The highest three bits control the variable regulators */ 357 /* The highest three bits control the variable regulators */
366 regval &= ~0xE0; 358 regval &= ~0xE0;
367 regval |= (bestindex << 5); 359 regval |= (selector << 5);
368 360
369 err = abx500_set_register_interruptible(abreg->dev, 0, 361 err = abx500_set_register_interruptible(abreg->dev, 0,
370 abreg->regreg, regval); 362 abreg->regreg, regval);
@@ -464,7 +456,7 @@ static struct regulator_ops regulator_ops_variable = {
464 .disable = ab3100_disable_regulator, 456 .disable = ab3100_disable_regulator,
465 .is_enabled = ab3100_is_enabled_regulator, 457 .is_enabled = ab3100_is_enabled_regulator,
466 .get_voltage = ab3100_get_voltage_regulator, 458 .get_voltage = ab3100_get_voltage_regulator,
467 .set_voltage = ab3100_set_voltage_regulator, 459 .set_voltage_sel = ab3100_set_voltage_regulator_sel,
468 .list_voltage = ab3100_list_voltage_regulator, 460 .list_voltage = ab3100_list_voltage_regulator,
469 .enable_time = ab3100_enable_time_regulator, 461 .enable_time = ab3100_enable_time_regulator,
470}; 462};
@@ -474,7 +466,7 @@ static struct regulator_ops regulator_ops_variable_sleepable = {
474 .disable = ab3100_disable_regulator, 466 .disable = ab3100_disable_regulator,
475 .is_enabled = ab3100_is_enabled_regulator, 467 .is_enabled = ab3100_is_enabled_regulator,
476 .get_voltage = ab3100_get_voltage_regulator, 468 .get_voltage = ab3100_get_voltage_regulator,
477 .set_voltage = ab3100_set_voltage_regulator, 469 .set_voltage_sel = ab3100_set_voltage_regulator_sel,
478 .set_suspend_voltage = ab3100_set_suspend_voltage_regulator, 470 .set_suspend_voltage = ab3100_set_suspend_voltage_regulator,
479 .list_voltage = ab3100_list_voltage_regulator, 471 .list_voltage = ab3100_list_voltage_regulator,
480 .enable_time = ab3100_enable_time_regulator, 472 .enable_time = ab3100_enable_time_regulator,