regulator: core: Fix continuous_voltage_range case in regulator_can_change_voltage
Regulator drivers with continuous_voltage_range flag set allows not setting n_voltages. Thus if continuous_voltage_range is set, check the constraint range instead. Signed-off-by: Axel Lin <axel.lin@ingics.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
This commit is contained in:
parent
a49f0d1ea3
commit
19280e4071
@ -1885,9 +1885,15 @@ int regulator_can_change_voltage(struct regulator *regulator)
|
|||||||
struct regulator_dev *rdev = regulator->rdev;
|
struct regulator_dev *rdev = regulator->rdev;
|
||||||
|
|
||||||
if (rdev->constraints &&
|
if (rdev->constraints &&
|
||||||
rdev->constraints->valid_ops_mask & REGULATOR_CHANGE_VOLTAGE &&
|
(rdev->constraints->valid_ops_mask & REGULATOR_CHANGE_VOLTAGE)) {
|
||||||
(rdev->desc->n_voltages - rdev->desc->linear_min_sel) > 1)
|
if (rdev->desc->n_voltages - rdev->desc->linear_min_sel > 1)
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
|
if (rdev->desc->continuous_voltage_range &&
|
||||||
|
rdev->constraints->min_uV && rdev->constraints->max_uV &&
|
||||||
|
rdev->constraints->min_uV != rdev->constraints->max_uV)
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user