[PATCH] regulator: core: Fix the init of DT defined fixed regulators

From: Alban Bedel
Date: Mon May 19 2014 - 07:12:51 EST


When a regulator is defined using DT and it has a single voltage the
regulator init always tries to apply this voltage. However this fails
if the regulator isn't settable. So skip this step if the regulator
doesn't provides any set method.

Signed-off-by: Alban Bedel <alban.bedel@xxxxxxxxxxxxxxxxx>
---
drivers/regulator/core.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c
index 9a09f3c..e57450f 100644
--- a/drivers/regulator/core.c
+++ b/drivers/regulator/core.c
@@ -843,7 +843,9 @@ static int machine_constraints_voltage(struct regulator_dev *rdev,

/* do we need to apply the constraint voltage */
if (rdev->constraints->apply_uV &&
- rdev->constraints->min_uV == rdev->constraints->max_uV) {
+ rdev->constraints->min_uV == rdev->constraints->max_uV &&
+ (rdev->desc->ops->set_voltage ||
+ rdev->desc->ops->set_voltage_sel)) {
ret = _regulator_do_set_voltage(rdev,
rdev->constraints->min_uV,
rdev->constraints->max_uV);
--
1.9.3

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/