regulator: Set apply_uV only when min and max voltages are defined
authorKarol Lewandowski <k.lewandowsk@samsung.com>
Wed, 25 Jan 2012 09:31:45 +0000 (10:31 +0100)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Thu, 26 Jan 2012 11:01:21 +0000 (11:01 +0000)
apply_uV is errornously set when regulator is instantiated from device
tree, even when it doesn't contain any voltage constraints.

This commit fixes error:

  machine_constraints_voltage: CHARGER: failed to apply 0uV constraint

for following regulator description in DTS:

  CHARGER {
regulator-min-microamp = <100000>;
regulator-max-microamp = <200000>;
  }

Signed-off-by: Karol Lewandowski <k.lewandowsk@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
drivers/regulator/of_regulator.c

index f1651eb6964807d9ae86c6ed88032199d5950199..679734d26a16961ef100f1731c66ba864f5057e3 100644 (file)
@@ -35,7 +35,7 @@ static void of_get_regulation_constraints(struct device_node *np,
        if (constraints->min_uV != constraints->max_uV)
                constraints->valid_ops_mask |= REGULATOR_CHANGE_VOLTAGE;
        /* Only one voltage?  Then make sure it's set. */
-       if (constraints->min_uV == constraints->max_uV)
+       if (min_uV && max_uV && constraints->min_uV == constraints->max_uV)
                constraints->apply_uV = true;
 
        uV_offset = of_get_property(np, "regulator-microvolt-offset", NULL);