diff options
-rw-r--r-- | drivers/regulator/wm831x-ldo.c | 47 |
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 | ||
305 | err_regulator: | ||
306 | regulator_unregister(ldo->regulator); | ||
307 | err: | 306 | err: |
308 | return ret; | 307 | return ret; |
309 | } | 308 | } |
310 | 309 | ||
311 | static 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 | |||
320 | static struct platform_driver wm831x_gp_ldo_driver = { | 310 | static 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 | ||
529 | err_regulator: | ||
530 | regulator_unregister(ldo->regulator); | ||
531 | err: | 519 | err: |
532 | return ret; | 520 | return ret; |
533 | } | 521 | } |
534 | 522 | ||
535 | static 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 | |||
544 | static struct platform_driver wm831x_aldo_driver = { | 523 | static 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 | ||
680 | static 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 | |||
689 | static struct platform_driver wm831x_alive_ldo_driver = { | 659 | static 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, |