]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/regulator/da9210-regulator.c
backlight: ltv350qv: use devm_lcd_device_register()
[karo-tx-linux.git] / drivers / regulator / da9210-regulator.c
index f0fe54b3897736327250d6dfe7a664369273df81..6f5ecbe1132e7da4f02496672578ef2301285767 100644 (file)
@@ -25,6 +25,7 @@
 #include <linux/slab.h>
 #include <linux/regulator/driver.h>
 #include <linux/regulator/machine.h>
+#include <linux/regulator/of_regulator.h>
 #include <linux/regmap.h>
 
 #include "da9210-regulator.h"
@@ -126,7 +127,8 @@ static int da9210_i2c_probe(struct i2c_client *i2c,
                            const struct i2c_device_id *id)
 {
        struct da9210 *chip;
-       struct da9210_pdata *pdata = i2c->dev.platform_data;
+       struct device *dev = &i2c->dev;
+       struct da9210_pdata *pdata = dev_get_platdata(dev);
        struct regulator_dev *rdev = NULL;
        struct regulator_config config = { };
        int error;
@@ -147,12 +149,13 @@ static int da9210_i2c_probe(struct i2c_client *i2c,
        }
 
        config.dev = &i2c->dev;
-       if (pdata)
-               config.init_data = &pdata->da9210_constraints;
+       config.init_data = pdata ? &pdata->da9210_constraints :
+               of_get_regulator_init_data(dev, dev->of_node);
        config.driver_data = chip;
        config.regmap = chip->regmap;
+       config.of_node = dev->of_node;
 
-       rdev = regulator_register(&da9210_reg, &config);
+       rdev = devm_regulator_register(&i2c->dev, &da9210_reg, &config);
        if (IS_ERR(rdev)) {
                dev_err(&i2c->dev, "Failed to register DA9210 regulator\n");
                return PTR_ERR(rdev);
@@ -165,13 +168,6 @@ static int da9210_i2c_probe(struct i2c_client *i2c,
        return 0;
 }
 
-static int da9210_i2c_remove(struct i2c_client *i2c)
-{
-       struct da9210 *chip = i2c_get_clientdata(i2c);
-       regulator_unregister(chip->rdev);
-       return 0;
-}
-
 static const struct i2c_device_id da9210_i2c_id[] = {
        {"da9210", 0},
        {},
@@ -185,7 +181,6 @@ static struct i2c_driver da9210_regulator_driver = {
                .owner = THIS_MODULE,
        },
        .probe = da9210_i2c_probe,
-       .remove = da9210_i2c_remove,
        .id_table = da9210_i2c_id,
 };