regulator: tps6586x: fix LDO0 voltage setting
David Schalig [Sat, 2 Apr 2011 06:01:38 +0000 (15:01 +0900)]
Minimum voltage for LDO0 was specified with a code construct,
better solve this with a voltage table. This avoids a warning
in kernel log, too.

Bug 798821

Original-Change-Id: I706276a9aae3359006ddc7fe9134b67e00ec34fd
Reviewed-on: http://git-master/r/25185
Reviewed-by: David Schalig <dschalig@nvidia.com>
Tested-by: David Schalig <dschalig@nvidia.com>
Reviewed-by: Aleksandr Frid <afrid@nvidia.com>
Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>

Rebase-Id: R800f3239d35415e5cb2f5ff2570f6f0285e44adc

drivers/regulator/tps6586x-regulator.c

index ca6d352..e4a65e4 100644 (file)
@@ -96,10 +96,6 @@ static int __tps6586x_ldo_set_voltage(struct device *parent,
        for (val = 0; val < ri->desc.n_voltages; val++) {
                uV = ri->voltages[val] * 1000;
 
-               /* LDO0 has minimal voltage 1.2 rather than 1.25 */
-               if (ri->desc.id == TPS6586X_ID_LDO_0 && val == 0)
-                       uV -= 50 * 1000;
-
                /* use the first in-range value */
                if (min_uV <= uV && uV <= max_uV) {
 
@@ -223,6 +219,10 @@ static int tps6586x_ldo_voltages[] = {
        1250, 1500, 1800, 2500, 2700, 2850, 3100, 3300,
 };
 
+static int tps6586x_ldo0_voltages[] = {
+       1200, 1500, 1800, 2500, 2700, 2850, 3100, 3300,
+};
+
 static int tps6586x_ldo4_voltages[] = {
        1700, 1725, 1750, 1775, 1800, 1825, 1850, 1875,
        1900, 1925, 1950, 1975, 2000, 2025, 2050, 2075,
@@ -284,7 +284,7 @@ static int tps6586x_dvm_voltages[] = {
 }
 
 static struct tps6586x_regulator tps6586x_regulator[] = {
-       TPS6586X_LDO(LDO_0, ldo, SUPPLYV1, 5, 3, ENC, 0, END, 0, 4000),
+       TPS6586X_LDO(LDO_0, ldo0, SUPPLYV1, 5, 3, ENC, 0, END, 0, 4000),
        TPS6586X_LDO(LDO_1, dvm, SUPPLYV1, 0, 5, ENC, 1, END, 1, 4000),
        TPS6586X_LDO(LDO_3, ldo, SUPPLYV4, 0, 3, ENC, 2, END, 2, 3000),
        TPS6586X_LDO(LDO_5, ldo, SUPPLYV6, 0, 3, ENE, 6, ENE, 6, 3000),