regulator: tps65090: 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>
This commit is contained in:
Sachin Kamat
2013-09-04 17:17:48 +05:30
committed by Mark Brown
parent 71b710e705
commit 9738efae69

View File

@@ -279,7 +279,7 @@ static int tps65090_regulator_probe(struct platform_device *pdev)
if (ret < 0) { if (ret < 0) {
dev_err(&pdev->dev, dev_err(&pdev->dev,
"failed disable ext control\n"); "failed disable ext control\n");
goto scrub; return ret;
} }
} }
} }
@@ -296,12 +296,11 @@ static int tps65090_regulator_probe(struct platform_device *pdev)
else else
config.of_node = NULL; config.of_node = NULL;
rdev = regulator_register(ri->desc, &config); rdev = devm_regulator_register(&pdev->dev, ri->desc, &config);
if (IS_ERR(rdev)) { if (IS_ERR(rdev)) {
dev_err(&pdev->dev, "failed to register regulator %s\n", dev_err(&pdev->dev, "failed to register regulator %s\n",
ri->desc->name); ri->desc->name);
ret = PTR_ERR(rdev); return PTR_ERR(rdev);
goto scrub;
} }
ri->rdev = rdev; ri->rdev = rdev;
@@ -309,36 +308,13 @@ static int tps65090_regulator_probe(struct platform_device *pdev)
if (tps_pdata && is_dcdc(num) && tps_pdata->reg_init_data && if (tps_pdata && is_dcdc(num) && tps_pdata->reg_init_data &&
tps_pdata->enable_ext_control) { tps_pdata->enable_ext_control) {
ret = tps65090_config_ext_control(ri, true); ret = tps65090_config_ext_control(ri, true);
if (ret < 0) { if (ret < 0)
/* Increment num to get unregister rdev */ return ret;
num++;
goto scrub;
}
} }
} }
platform_set_drvdata(pdev, pmic); platform_set_drvdata(pdev, pmic);
return 0; return 0;
scrub:
while (--num >= 0) {
ri = &pmic[num];
regulator_unregister(ri->rdev);
}
return ret;
}
static int tps65090_regulator_remove(struct platform_device *pdev)
{
struct tps65090_regulator *pmic = platform_get_drvdata(pdev);
struct tps65090_regulator *ri;
int num;
for (num = 0; num < TPS65090_REGULATOR_MAX; ++num) {
ri = &pmic[num];
regulator_unregister(ri->rdev);
}
return 0;
} }
static struct platform_driver tps65090_regulator_driver = { static struct platform_driver tps65090_regulator_driver = {
@@ -347,7 +323,6 @@ static struct platform_driver tps65090_regulator_driver = {
.owner = THIS_MODULE, .owner = THIS_MODULE,
}, },
.probe = tps65090_regulator_probe, .probe = tps65090_regulator_probe,
.remove = tps65090_regulator_remove,
}; };
static int __init tps65090_regulator_init(void) static int __init tps65090_regulator_init(void)