]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/commitdiff
regulator: Pass regulator init data as explict argument when registering
authorMark Brown <broonie@opensource.wolfsonmicro.com>
Mon, 19 Jan 2009 13:37:02 +0000 (13:37 +0000)
committerLiam Girdwood <lrg@slimlogic.co.uk>
Tue, 31 Mar 2009 08:56:21 +0000 (09:56 +0100)
Rather than having the regulator init data read from the platform_data
member of the struct device that is registered for the regulator make
the init data an explict argument passed in when registering. This
allows drivers to use the platform data for their own purposes if they
wish.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
drivers/regulator/bq24022.c
drivers/regulator/core.c
drivers/regulator/da903x.c
drivers/regulator/pcf50633-regulator.c
drivers/regulator/wm8350-regulator.c
drivers/regulator/wm8400-regulator.c
include/linux/regulator/driver.h

index c175e38a4cd56477e364ade9e5b4295b0b76142b..6804333492eb9672ab684c51debfc71023e16f77 100644 (file)
@@ -105,7 +105,7 @@ static int __init bq24022_probe(struct platform_device *pdev)
        ret = gpio_direction_output(pdata->gpio_iset2, 0);
        ret = gpio_direction_output(pdata->gpio_nce, 1);
 
-       bq24022 = regulator_register(&bq24022_desc, &pdev->dev, pdata);
+       bq24022 = regulator_register(&bq24022_desc, &pdev->dev, NULL, pdata);
        if (IS_ERR(bq24022)) {
                dev_dbg(&pdev->dev, "couldn't register regulator\n");
                ret = PTR_ERR(bq24022);
index 96c877dd9daf771b1ff674447a4c6784d02a04f8..f17362ac9c610cb6cecdf231499228ef8178381e 100644 (file)
@@ -1879,17 +1879,18 @@ static int add_regulator_attributes(struct regulator_dev *rdev)
  * regulator_register - register regulator
  * @regulator_desc: regulator to register
  * @dev: struct device for the regulator
+ * @init_data: platform provided init data, passed through by driver
  * @driver_data: private regulator data
  *
  * Called by regulator drivers to register a regulator.
  * Returns 0 on success.
  */
 struct regulator_dev *regulator_register(struct regulator_desc *regulator_desc,
-       struct device *dev, void *driver_data)
+       struct device *dev, struct regulator_init_data *init_data,
+       void *driver_data)
 {
        static atomic_t regulator_no = ATOMIC_INIT(0);
        struct regulator_dev *rdev;
-       struct regulator_init_data *init_data = dev->platform_data;
        int ret, i;
 
        if (regulator_desc == NULL)
index fe77730a7edb73442b088a4e325dd70d4c2a6366..72b15495183cfd290289fd9256babe296bbbf263 100644 (file)
@@ -471,7 +471,8 @@ static int __devinit da903x_regulator_probe(struct platform_device *pdev)
        if (ri->desc.id == DA9030_ID_LDO1 || ri->desc.id == DA9030_ID_LDO15)
                ri->desc.ops = &da9030_regulator_ldo1_15_ops;
 
-       rdev = regulator_register(&ri->desc, &pdev->dev, ri);
+       rdev = regulator_register(&ri->desc, &pdev->dev,
+                                 pdev->dev.platform_data, ri);
        if (IS_ERR(rdev)) {
                dev_err(&pdev->dev, "failed to register regulator %s\n",
                                ri->desc.name);
index 4cc85ec6e1208b25abf0ed4121726002739adbc2..cd761d85c8fdbc39e42a6cf3d67864744c64c76b 100644 (file)
@@ -284,7 +284,8 @@ static int __devinit pcf50633_regulator_probe(struct platform_device *pdev)
        /* Already set by core driver */
        pcf = platform_get_drvdata(pdev);
 
-       rdev = regulator_register(&regulators[pdev->id], &pdev->dev, pcf);
+       rdev = regulator_register(&regulators[pdev->id], &pdev->dev,
+                                 pdev->dev.platform_data, pcf);
        if (IS_ERR(rdev))
                return PTR_ERR(rdev);
 
index afad611fbb8027a57a610d002b12d55f8c4ccf95..93e0ce5a5c23565d5357b042e324379886d5dd83 100644 (file)
@@ -1335,9 +1335,9 @@ static int wm8350_regulator_probe(struct platform_device *pdev)
                break;
        }
 
-
        /* register regulator */
        rdev = regulator_register(&wm8350_reg[pdev->id], &pdev->dev,
+                                 pdev->dev.platform_data,
                                  dev_get_drvdata(&pdev->dev));
        if (IS_ERR(rdev)) {
                dev_err(&pdev->dev, "failed to register %s\n",
index 56e23d44ba591383696ec9382a1a3c4b05ae32a9..6ed43b0dbdfce89786c1a591451f8ba18c540756 100644 (file)
@@ -294,7 +294,7 @@ static int __devinit wm8400_regulator_probe(struct platform_device *pdev)
        struct regulator_dev *rdev;
 
        rdev = regulator_register(&regulators[pdev->id], &pdev->dev,
-               pdev->dev.driver_data);
+               pdev->dev.platform_data, pdev->dev.driver_data);
 
        if (IS_ERR(rdev))
                return PTR_ERR(rdev);
index 6e957aae7629f33fe2cd4e7dc1f1ecb70a8552e4..2254ad93b7840b044a78cdb237094476fa98d3b4 100644 (file)
@@ -138,7 +138,8 @@ struct regulator_desc {
 };
 
 struct regulator_dev *regulator_register(struct regulator_desc *regulator_desc,
-       struct device *dev, void *driver_data);
+       struct device *dev, struct regulator_init_data *init_data,
+       void *driver_data);
 void regulator_unregister(struct regulator_dev *rdev);
 
 int regulator_notifier_call_chain(struct regulator_dev *rdev,