Skip to content

Commit

Permalink
regulator: da9055: Select maximum current in specific range for set_c…
Browse files Browse the repository at this point in the history
…urrent_limit

Selecting the minimal value is only true for voltage regulators.
For current regulators the maximum in the given range should be
selected instead.

This issue was reported by Heiko Stuebner for gpio-regulator driver [1],
and the conclusion is to select the max current for current regulators [2].

[1] https://lkml.org/lkml/2012/8/5/162
[2] https://lkml.org/lkml/2012/8/6/183

This patch also ensures da9055_buck_set_current_limit return -EINVAL when the
supported current limit does not meet the request range.

Signed-off-by: Axel Lin <axel.lin@ingics.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
  • Loading branch information
Axel Lin authored and Mark Brown committed Nov 27, 2012
1 parent 369cf60 commit f509fd4
Showing 1 changed file with 9 additions and 12 deletions.
21 changes: 9 additions & 12 deletions drivers/regulator/da9055-regulator.c
Original file line number Diff line number Diff line change
Expand Up @@ -187,21 +187,18 @@ static int da9055_buck_set_current_limit(struct regulator_dev *rdev, int min_uA,
{
struct da9055_regulator *regulator = rdev_get_drvdata(rdev);
struct da9055_regulator_info *info = regulator->info;
int i, val = 0;

if (min_uA > da9055_current_limits[DA9055_MAX_UA] ||
max_uA < da9055_current_limits[DA9055_MIN_UA])
return -EINVAL;
int i;

for (i = 0; i < ARRAY_SIZE(da9055_current_limits); i++) {
if (min_uA <= da9055_current_limits[i]) {
val = i;
break;
}
for (i = ARRAY_SIZE(da9055_current_limits) - 1; i >= 0; i--) {
if ((min_uA <= da9055_current_limits[i]) &&
(da9055_current_limits[i] <= max_uA))
return da9055_reg_update(regulator->da9055,
DA9055_REG_BUCK_LIM,
info->mode.mask,
i << info->mode.shift);
}

return da9055_reg_update(regulator->da9055, DA9055_REG_BUCK_LIM,
info->mode.mask, val << info->mode.shift);
return -EINVAL;
}

static int da9055_list_voltage(struct regulator_dev *rdev, unsigned selector)
Expand Down

0 comments on commit f509fd4

Please sign in to comment.