aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/regulator/wm831x-ldo.c47
1 files changed, 8 insertions, 39 deletions
diff --git a/drivers/regulator/wm831x-ldo.c b/drivers/regulator/wm831x-ldo.c
index 5570f3e59170..2be72fe36535 100644
--- a/drivers/regulator/wm831x-ldo.c
+++ b/drivers/regulator/wm831x-ldo.c
@@ -279,7 +279,8 @@ static int wm831x_gp_ldo_probe(struct platform_device *pdev)
279 config.driver_data = ldo; 279 config.driver_data = ldo;
280 config.regmap = wm831x->regmap; 280 config.regmap = wm831x->regmap;
281 281
282 ldo->regulator = regulator_register(&ldo->desc, &config); 282 ldo->regulator = devm_regulator_register(&pdev->dev, &ldo->desc,
283 &config);
283 if (IS_ERR(ldo->regulator)) { 284 if (IS_ERR(ldo->regulator)) {
284 ret = PTR_ERR(ldo->regulator); 285 ret = PTR_ERR(ldo->regulator);
285 dev_err(wm831x->dev, "Failed to register LDO%d: %d\n", 286 dev_err(wm831x->dev, "Failed to register LDO%d: %d\n",
@@ -295,31 +296,19 @@ static int wm831x_gp_ldo_probe(struct platform_device *pdev)
295 if (ret != 0) { 296 if (ret != 0) {
296 dev_err(&pdev->dev, "Failed to request UV IRQ %d: %d\n", 297 dev_err(&pdev->dev, "Failed to request UV IRQ %d: %d\n",
297 irq, ret); 298 irq, ret);
298 goto err_regulator; 299 goto err;
299 } 300 }
300 301
301 platform_set_drvdata(pdev, ldo); 302 platform_set_drvdata(pdev, ldo);
302 303
303 return 0; 304 return 0;
304 305
305err_regulator:
306 regulator_unregister(ldo->regulator);
307err: 306err:
308 return ret; 307 return ret;
309} 308}
310 309
311static int wm831x_gp_ldo_remove(struct platform_device *pdev)
312{
313 struct wm831x_ldo *ldo = platform_get_drvdata(pdev);
314
315 regulator_unregister(ldo->regulator);
316
317 return 0;
318}
319
320static struct platform_driver wm831x_gp_ldo_driver = { 310static struct platform_driver wm831x_gp_ldo_driver = {
321 .probe = wm831x_gp_ldo_probe, 311 .probe = wm831x_gp_ldo_probe,
322 .remove = wm831x_gp_ldo_remove,
323 .driver = { 312 .driver = {
324 .name = "wm831x-ldo", 313 .name = "wm831x-ldo",
325 .owner = THIS_MODULE, 314 .owner = THIS_MODULE,
@@ -504,7 +493,8 @@ static int wm831x_aldo_probe(struct platform_device *pdev)
504 config.driver_data = ldo; 493 config.driver_data = ldo;
505 config.regmap = wm831x->regmap; 494 config.regmap = wm831x->regmap;
506 495
507 ldo->regulator = regulator_register(&ldo->desc, &config); 496 ldo->regulator = devm_regulator_register(&pdev->dev, &ldo->desc,
497 &config);
508 if (IS_ERR(ldo->regulator)) { 498 if (IS_ERR(ldo->regulator)) {
509 ret = PTR_ERR(ldo->regulator); 499 ret = PTR_ERR(ldo->regulator);
510 dev_err(wm831x->dev, "Failed to register LDO%d: %d\n", 500 dev_err(wm831x->dev, "Failed to register LDO%d: %d\n",
@@ -519,31 +509,19 @@ static int wm831x_aldo_probe(struct platform_device *pdev)
519 if (ret != 0) { 509 if (ret != 0) {
520 dev_err(&pdev->dev, "Failed to request UV IRQ %d: %d\n", 510 dev_err(&pdev->dev, "Failed to request UV IRQ %d: %d\n",
521 irq, ret); 511 irq, ret);
522 goto err_regulator; 512 goto err;
523 } 513 }
524 514
525 platform_set_drvdata(pdev, ldo); 515 platform_set_drvdata(pdev, ldo);
526 516
527 return 0; 517 return 0;
528 518
529err_regulator:
530 regulator_unregister(ldo->regulator);
531err: 519err:
532 return ret; 520 return ret;
533} 521}
534 522
535static int wm831x_aldo_remove(struct platform_device *pdev)
536{
537 struct wm831x_ldo *ldo = platform_get_drvdata(pdev);
538
539 regulator_unregister(ldo->regulator);
540
541 return 0;
542}
543
544static struct platform_driver wm831x_aldo_driver = { 523static struct platform_driver wm831x_aldo_driver = {
545 .probe = wm831x_aldo_probe, 524 .probe = wm831x_aldo_probe,
546 .remove = wm831x_aldo_remove,
547 .driver = { 525 .driver = {
548 .name = "wm831x-aldo", 526 .name = "wm831x-aldo",
549 .owner = THIS_MODULE, 527 .owner = THIS_MODULE,
@@ -661,7 +639,8 @@ static int wm831x_alive_ldo_probe(struct platform_device *pdev)
661 config.driver_data = ldo; 639 config.driver_data = ldo;
662 config.regmap = wm831x->regmap; 640 config.regmap = wm831x->regmap;
663 641
664 ldo->regulator = regulator_register(&ldo->desc, &config); 642 ldo->regulator = devm_regulator_register(&pdev->dev, &ldo->desc,
643 &config);
665 if (IS_ERR(ldo->regulator)) { 644 if (IS_ERR(ldo->regulator)) {
666 ret = PTR_ERR(ldo->regulator); 645 ret = PTR_ERR(ldo->regulator);
667 dev_err(wm831x->dev, "Failed to register LDO%d: %d\n", 646 dev_err(wm831x->dev, "Failed to register LDO%d: %d\n",
@@ -677,18 +656,8 @@ err:
677 return ret; 656 return ret;
678} 657}
679 658
680static int wm831x_alive_ldo_remove(struct platform_device *pdev)
681{
682 struct wm831x_ldo *ldo = platform_get_drvdata(pdev);
683
684 regulator_unregister(ldo->regulator);
685
686 return 0;
687}
688
689static struct platform_driver wm831x_alive_ldo_driver = { 659static struct platform_driver wm831x_alive_ldo_driver = {
690 .probe = wm831x_alive_ldo_probe, 660 .probe = wm831x_alive_ldo_probe,
691 .remove = wm831x_alive_ldo_remove,
692 .driver = { 661 .driver = {
693 .name = "wm831x-alive-ldo", 662 .name = "wm831x-alive-ldo",
694 .owner = THIS_MODULE, 663 .owner = THIS_MODULE,