regulator: Convert anatop to use a struct to pass in regulator runtime configuration
[firefly-linux-kernel-4.4.55.git] / drivers / regulator / isl6271a-regulator.c
index 775f5fd208c375e87690f6fb48b7bb38893e566f..863f45a18c30dcb1f513925a7891edc26b4dfa88 100644 (file)
@@ -112,7 +112,7 @@ static struct regulator_ops isl_fixed_ops = {
        .list_voltage   = isl6271a_list_fixed_voltage,
 };
 
-static struct regulator_desc isl_rd[] = {
+static const struct regulator_desc isl_rd[] = {
        {
                .name           = "Core Buck",
                .id             = 0,
@@ -140,6 +140,7 @@ static struct regulator_desc isl_rd[] = {
 static int __devinit isl6271a_probe(struct i2c_client *i2c,
                                     const struct i2c_device_id *id)
 {
+       struct regulator_config config = { };
        struct regulator_init_data *init_data   = i2c->dev.platform_data;
        struct isl_pmic *pmic;
        int err, i;
@@ -147,11 +148,6 @@ static int __devinit isl6271a_probe(struct i2c_client *i2c,
        if (!i2c_check_functionality(i2c->adapter, I2C_FUNC_SMBUS_BYTE_DATA))
                return -EIO;
 
-       if (!init_data) {
-               dev_err(&i2c->dev, "no platform data supplied\n");
-               return -EIO;
-       }
-
        pmic = kzalloc(sizeof(struct isl_pmic), GFP_KERNEL);
        if (!pmic)
                return -ENOMEM;
@@ -161,8 +157,14 @@ static int __devinit isl6271a_probe(struct i2c_client *i2c,
        mutex_init(&pmic->mtx);
 
        for (i = 0; i < 3; i++) {
-               pmic->rdev[i] = regulator_register(&isl_rd[i], &i2c->dev,
-                                               init_data, pmic, NULL);
+               config.dev = &i2c->dev;
+               if (i == 0)
+                       config.init_data = init_data;
+               else
+                       config.init_data = 0;
+               config.driver_data = pmic;
+
+               pmic->rdev[i] = regulator_register(&isl_rd[i], &config);
                if (IS_ERR(pmic->rdev[i])) {
                        dev_err(&i2c->dev, "failed to register %s\n", id->name);
                        err = PTR_ERR(pmic->rdev[i]);