diff options
author | Axel Lin <axel.lin@gmail.com> | 2012-03-19 22:14:40 -0400 |
---|---|---|
committer | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2012-04-01 06:59:23 -0400 |
commit | 1f793ff258c7a48e8cc3729ac13bfd1b3850b9c9 (patch) | |
tree | 344ee3c01c68cd0ba31f2bb27870f5f4596a25e4 /drivers/regulator/ab3100.c | |
parent | ae713d394d9e2aacaab620acd3212855f1f06b00 (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.c | 18 |
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 | ||
341 | static int ab3100_set_voltage_regulator(struct regulator_dev *reg, | 341 | static 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, ®val); | 349 | abreg->regreg, ®val); |
@@ -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, |