aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSachin Kamat <sachin.kamat@linaro.org>2013-09-04 02:31:02 -0400
committerMark Brown <broonie@linaro.org>2013-09-16 19:28:42 -0400
commit1377530910da1502b07d09df1a368ce9a246c114 (patch)
tree329d81ac2ecfa6eca0efc915dce532baab50f8a5
parent51c86b3eb80ebe0a35aba5ba3e96b22d61043ad1 (diff)
regulator: rc5t583: Use devm_regulator_register
devm_* simplifies the code. Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org> Acked-by: Marek Vasut <marex@denx.de> Signed-off-by: Mark Brown <broonie@linaro.org>
-rw-r--r--drivers/regulator/rc5t583-regulator.c22
1 files changed, 2 insertions, 20 deletions
diff --git a/drivers/regulator/rc5t583-regulator.c b/drivers/regulator/rc5t583-regulator.c
index 5885b4504596..b58affb33143 100644
--- a/drivers/regulator/rc5t583-regulator.c
+++ b/drivers/regulator/rc5t583-regulator.c
@@ -173,33 +173,16 @@ skip_ext_pwr_config:
173 config.driver_data = reg; 173 config.driver_data = reg;
174 config.regmap = rc5t583->regmap; 174 config.regmap = rc5t583->regmap;
175 175
176 rdev = regulator_register(&ri->desc, &config); 176 rdev = devm_regulator_register(&pdev->dev, &ri->desc, &config);
177 if (IS_ERR(rdev)) { 177 if (IS_ERR(rdev)) {
178 dev_err(&pdev->dev, "Failed to register regulator %s\n", 178 dev_err(&pdev->dev, "Failed to register regulator %s\n",
179 ri->desc.name); 179 ri->desc.name);
180 ret = PTR_ERR(rdev); 180 return PTR_ERR(rdev);
181 goto clean_exit;
182 } 181 }
183 reg->rdev = rdev; 182 reg->rdev = rdev;
184 } 183 }
185 platform_set_drvdata(pdev, regs); 184 platform_set_drvdata(pdev, regs);
186 return 0; 185 return 0;
187
188clean_exit:
189 while (--id >= 0)
190 regulator_unregister(regs[id].rdev);
191
192 return ret;
193}
194
195static int rc5t583_regulator_remove(struct platform_device *pdev)
196{
197 struct rc5t583_regulator *regs = platform_get_drvdata(pdev);
198 int id;
199
200 for (id = 0; id < RC5T583_REGULATOR_MAX; ++id)
201 regulator_unregister(regs[id].rdev);
202 return 0;
203} 186}
204 187
205static struct platform_driver rc5t583_regulator_driver = { 188static struct platform_driver rc5t583_regulator_driver = {
@@ -208,7 +191,6 @@ static struct platform_driver rc5t583_regulator_driver = {
208 .owner = THIS_MODULE, 191 .owner = THIS_MODULE,
209 }, 192 },
210 .probe = rc5t583_regulator_probe, 193 .probe = rc5t583_regulator_probe,
211 .remove = rc5t583_regulator_remove,
212}; 194};
213 195
214static int __init rc5t583_regulator_init(void) 196static int __init rc5t583_regulator_init(void)