diff options
| -rw-r--r-- | drivers/regulator/max8952.c | 21 |
1 files changed, 8 insertions, 13 deletions
diff --git a/drivers/regulator/max8952.c b/drivers/regulator/max8952.c index 66e777967c69..c5ee3cc048ee 100644 --- a/drivers/regulator/max8952.c +++ b/drivers/regulator/max8952.c | |||
| @@ -48,9 +48,7 @@ enum { | |||
| 48 | 48 | ||
| 49 | struct max8952_data { | 49 | struct max8952_data { |
| 50 | struct i2c_client *client; | 50 | struct i2c_client *client; |
| 51 | struct device *dev; | ||
| 52 | struct max8952_platform_data *pdata; | 51 | struct max8952_platform_data *pdata; |
| 53 | struct regulator_dev *rdev; | ||
| 54 | 52 | ||
| 55 | bool vid0; | 53 | bool vid0; |
| 56 | bool vid1; | 54 | bool vid1; |
| @@ -197,6 +195,7 @@ static int max8952_pmic_probe(struct i2c_client *client, | |||
| 197 | struct max8952_platform_data *pdata = dev_get_platdata(&client->dev); | 195 | struct max8952_platform_data *pdata = dev_get_platdata(&client->dev); |
| 198 | struct regulator_config config = { }; | 196 | struct regulator_config config = { }; |
| 199 | struct max8952_data *max8952; | 197 | struct max8952_data *max8952; |
| 198 | struct regulator_dev *rdev; | ||
| 200 | 199 | ||
| 201 | int ret = 0, err = 0; | 200 | int ret = 0, err = 0; |
| 202 | 201 | ||
| @@ -217,10 +216,9 @@ static int max8952_pmic_probe(struct i2c_client *client, | |||
| 217 | return -ENOMEM; | 216 | return -ENOMEM; |
| 218 | 217 | ||
| 219 | max8952->client = client; | 218 | max8952->client = client; |
| 220 | max8952->dev = &client->dev; | ||
| 221 | max8952->pdata = pdata; | 219 | max8952->pdata = pdata; |
| 222 | 220 | ||
| 223 | config.dev = max8952->dev; | 221 | config.dev = &client->dev; |
| 224 | config.init_data = pdata->reg_data; | 222 | config.init_data = pdata->reg_data; |
| 225 | config.driver_data = max8952; | 223 | config.driver_data = max8952; |
| 226 | config.of_node = client->dev.of_node; | 224 | config.of_node = client->dev.of_node; |
| @@ -229,11 +227,11 @@ static int max8952_pmic_probe(struct i2c_client *client, | |||
| 229 | if (pdata->reg_data->constraints.boot_on) | 227 | if (pdata->reg_data->constraints.boot_on) |
| 230 | config.ena_gpio_flags |= GPIOF_OUT_INIT_HIGH; | 228 | config.ena_gpio_flags |= GPIOF_OUT_INIT_HIGH; |
| 231 | 229 | ||
| 232 | max8952->rdev = regulator_register(®ulator, &config); | 230 | rdev = devm_regulator_register(&client->dev, ®ulator, &config); |
| 233 | 231 | ||
| 234 | if (IS_ERR(max8952->rdev)) { | 232 | if (IS_ERR(rdev)) { |
| 235 | ret = PTR_ERR(max8952->rdev); | 233 | ret = PTR_ERR(rdev); |
| 236 | dev_err(max8952->dev, "regulator init failed (%d)\n", ret); | 234 | dev_err(&client->dev, "regulator init failed (%d)\n", ret); |
| 237 | return ret; | 235 | return ret; |
| 238 | } | 236 | } |
| 239 | 237 | ||
| @@ -261,7 +259,7 @@ static int max8952_pmic_probe(struct i2c_client *client, | |||
| 261 | err = 3; | 259 | err = 3; |
| 262 | 260 | ||
| 263 | if (err) { | 261 | if (err) { |
| 264 | dev_warn(max8952->dev, "VID0/1 gpio invalid: " | 262 | dev_warn(&client->dev, "VID0/1 gpio invalid: " |
| 265 | "DVS not available.\n"); | 263 | "DVS not available.\n"); |
| 266 | max8952->vid0 = 0; | 264 | max8952->vid0 = 0; |
| 267 | max8952->vid1 = 0; | 265 | max8952->vid1 = 0; |
| @@ -272,7 +270,7 @@ static int max8952_pmic_probe(struct i2c_client *client, | |||
| 272 | /* Disable Pulldown of EN only */ | 270 | /* Disable Pulldown of EN only */ |
| 273 | max8952_write_reg(max8952, MAX8952_REG_CONTROL, 0x60); | 271 | max8952_write_reg(max8952, MAX8952_REG_CONTROL, 0x60); |
| 274 | 272 | ||
| 275 | dev_err(max8952->dev, "DVS modes disabled because VID0 and VID1" | 273 | dev_err(&client->dev, "DVS modes disabled because VID0 and VID1" |
| 276 | " do not have proper controls.\n"); | 274 | " do not have proper controls.\n"); |
| 277 | } else { | 275 | } else { |
| 278 | /* | 276 | /* |
| @@ -319,9 +317,6 @@ static int max8952_pmic_remove(struct i2c_client *client) | |||
| 319 | { | 317 | { |
| 320 | struct max8952_data *max8952 = i2c_get_clientdata(client); | 318 | struct max8952_data *max8952 = i2c_get_clientdata(client); |
| 321 | struct max8952_platform_data *pdata = max8952->pdata; | 319 | struct max8952_platform_data *pdata = max8952->pdata; |
| 322 | struct regulator_dev *rdev = max8952->rdev; | ||
| 323 | |||
| 324 | regulator_unregister(rdev); | ||
| 325 | 320 | ||
| 326 | gpio_free(pdata->gpio_vid0); | 321 | gpio_free(pdata->gpio_vid0); |
| 327 | gpio_free(pdata->gpio_vid1); | 322 | gpio_free(pdata->gpio_vid1); |
