aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSachin Kamat <sachin.kamat@linaro.org>2013-09-04 01:37:56 -0400
committerMark Brown <broonie@linaro.org>2013-09-16 19:28:40 -0400
commit027a27545cc09dfc392d056437c5eb3f260d7e43 (patch)
tree2ea4e33a238b472a98d84b59247c2d8f7a292e50
parent249cc1f21ee22d9cfead5ae552d91b9669d16c83 (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.c28
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(&regulators[id], 269 max77693_pmic->rdev[i] = devm_regulator_register(&pdev->dev,
270 &config); 270 &regulators[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
288static 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
301static const struct platform_device_id max77693_pmic_id[] = { 282static 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