diff options
author | Sachin Kamat <sachin.kamat@linaro.org> | 2013-09-04 01:37:56 -0400 |
---|---|---|
committer | Mark Brown <broonie@linaro.org> | 2013-09-16 19:28:40 -0400 |
commit | 027a27545cc09dfc392d056437c5eb3f260d7e43 (patch) | |
tree | 2ea4e33a238b472a98d84b59247c2d8f7a292e50 | |
parent | 249cc1f21ee22d9cfead5ae552d91b9669d16c83 (diff) |
regulator: max77693: Use devm_regulator_register
devm_* simplifies the code.
Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Mark Brown <broonie@linaro.org>
-rw-r--r-- | drivers/regulator/max77693.c | 28 |
1 files changed, 4 insertions, 24 deletions
diff --git a/drivers/regulator/max77693.c b/drivers/regulator/max77693.c index ce4b96c15eba..2054ae1c496e 100644 --- a/drivers/regulator/max77693.c +++ b/drivers/regulator/max77693.c | |||
@@ -230,7 +230,7 @@ static int max77693_pmic_probe(struct platform_device *pdev) | |||
230 | struct max77693_dev *iodev = dev_get_drvdata(pdev->dev.parent); | 230 | struct max77693_dev *iodev = dev_get_drvdata(pdev->dev.parent); |
231 | struct max77693_pmic_dev *max77693_pmic; | 231 | struct max77693_pmic_dev *max77693_pmic; |
232 | struct max77693_regulator_data *rdata = NULL; | 232 | struct max77693_regulator_data *rdata = NULL; |
233 | int num_rdata, i, ret; | 233 | int num_rdata, i; |
234 | struct regulator_config config; | 234 | struct regulator_config config; |
235 | 235 | ||
236 | num_rdata = max77693_pmic_init_rdata(&pdev->dev, &rdata); | 236 | num_rdata = max77693_pmic_init_rdata(&pdev->dev, &rdata); |
@@ -266,36 +266,17 @@ static int max77693_pmic_probe(struct platform_device *pdev) | |||
266 | config.init_data = rdata[i].initdata; | 266 | config.init_data = rdata[i].initdata; |
267 | config.of_node = rdata[i].of_node; | 267 | config.of_node = rdata[i].of_node; |
268 | 268 | ||
269 | max77693_pmic->rdev[i] = regulator_register(®ulators[id], | 269 | max77693_pmic->rdev[i] = devm_regulator_register(&pdev->dev, |
270 | &config); | 270 | ®ulators[id], &config); |
271 | if (IS_ERR(max77693_pmic->rdev[i])) { | 271 | if (IS_ERR(max77693_pmic->rdev[i])) { |
272 | ret = PTR_ERR(max77693_pmic->rdev[i]); | ||
273 | dev_err(max77693_pmic->dev, | 272 | dev_err(max77693_pmic->dev, |
274 | "Failed to initialize regulator-%d\n", id); | 273 | "Failed to initialize regulator-%d\n", id); |
275 | max77693_pmic->rdev[i] = NULL; | 274 | max77693_pmic->rdev[i] = NULL; |
276 | goto err; | 275 | return PTR_ERR(max77693_pmic->rdev[i]); |
277 | } | 276 | } |
278 | } | 277 | } |
279 | 278 | ||
280 | return 0; | 279 | return 0; |
281 | err: | ||
282 | while (--i >= 0) | ||
283 | regulator_unregister(max77693_pmic->rdev[i]); | ||
284 | |||
285 | return ret; | ||
286 | } | ||
287 | |||
288 | static int max77693_pmic_remove(struct platform_device *pdev) | ||
289 | { | ||
290 | struct max77693_pmic_dev *max77693_pmic = platform_get_drvdata(pdev); | ||
291 | struct regulator_dev **rdev = max77693_pmic->rdev; | ||
292 | int i; | ||
293 | |||
294 | for (i = 0; i < max77693_pmic->num_regulators; i++) | ||
295 | if (rdev[i]) | ||
296 | regulator_unregister(rdev[i]); | ||
297 | |||
298 | return 0; | ||
299 | } | 280 | } |
300 | 281 | ||
301 | static const struct platform_device_id max77693_pmic_id[] = { | 282 | static const struct platform_device_id max77693_pmic_id[] = { |
@@ -311,7 +292,6 @@ static struct platform_driver max77693_pmic_driver = { | |||
311 | .owner = THIS_MODULE, | 292 | .owner = THIS_MODULE, |
312 | }, | 293 | }, |
313 | .probe = max77693_pmic_probe, | 294 | .probe = max77693_pmic_probe, |
314 | .remove = max77693_pmic_remove, | ||
315 | .id_table = max77693_pmic_id, | 295 | .id_table = max77693_pmic_id, |
316 | }; | 296 | }; |
317 | 297 | ||