]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - drivers/regulator/isl6271a-regulator.c
Merge tag 'v2.6.38' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
[mv-sheeva.git] / drivers / regulator / isl6271a-regulator.c
index b8cc6389a541a0e3cbc0cc4a60231c166cd2e2e1..e4b3592e81767856cdadd4543a6e25bb001d695d 100644 (file)
@@ -58,7 +58,9 @@ out:
        return data;
 }
 
-static int isl6271a_set_voltage(struct regulator_dev *dev, int minuV, int maxuV)
+static int isl6271a_set_voltage(struct regulator_dev *dev,
+                               int minuV, int maxuV,
+                               unsigned *selector)
 {
        struct isl_pmic *pmic = rdev_get_drvdata(dev);
        int vsel, err, data;
@@ -78,6 +80,8 @@ static int isl6271a_set_voltage(struct regulator_dev *dev, int minuV, int maxuV)
        /* Convert the microvolts to data for the chip */
        data = (vsel - ISL6271A_VOLTAGE_MIN) / ISL6271A_VOLTAGE_STEP;
 
+       *selector = data;
+
        mutex_lock(&pmic->mtx);
 
        err = i2c_smbus_write_byte(pmic->client, data);
@@ -169,7 +173,7 @@ static int __devinit isl6271a_probe(struct i2c_client *i2c,
                                                init_data, pmic);
                if (IS_ERR(pmic->rdev[i])) {
                        dev_err(&i2c->dev, "failed to register %s\n", id->name);
-                       err = PTR_ERR(pmic->rdev);
+                       err = PTR_ERR(pmic->rdev[i]);
                        goto error;
                }
        }