aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/regulator/tps65090-regulator.c
diff options
context:
space:
mode:
authorMark Brown <broonie@opensource.wolfsonmicro.com>2012-04-03 19:50:22 -0400
committerMark Brown <broonie@opensource.wolfsonmicro.com>2012-04-09 07:37:09 -0400
commitc172708d38a401b2f3f841dfcd862b469fa0b670 (patch)
tree75e89c63fd0c76a2c69bb5ad6e45b3762bceb6b6 /drivers/regulator/tps65090-regulator.c
parent1474e4dbcae04125ed6e503eadcef266846f4675 (diff)
regulator: core: Use a struct to pass in regulator runtime configuration
Rather than adding new arguments to regulator_register() every time we want to add a new bit of dynamic information at runtime change the function to take these via a struct. By doing this we avoid needing to do further changes like the recent addition of device tree support which required each regulator driver to be updated to take an additional parameter. The regulator_desc which should (mostly) be static data is still passed separately as most drivers are able to configure this statically at build time. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Diffstat (limited to 'drivers/regulator/tps65090-regulator.c')
-rw-r--r--drivers/regulator/tps65090-regulator.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/regulator/tps65090-regulator.c b/drivers/regulator/tps65090-regulator.c
index 7baff2e8765d..6bbf760be80a 100644
--- a/drivers/regulator/tps65090-regulator.c
+++ b/drivers/regulator/tps65090-regulator.c
@@ -137,6 +137,7 @@ static inline struct tps65090_regulator *find_regulator_info(int id)
137static int __devinit tps65090_regulator_probe(struct platform_device *pdev) 137static int __devinit tps65090_regulator_probe(struct platform_device *pdev)
138{ 138{
139 struct tps65090_regulator *ri = NULL; 139 struct tps65090_regulator *ri = NULL;
140 struct regulator_config config = { };
140 struct regulator_dev *rdev; 141 struct regulator_dev *rdev;
141 struct tps65090_regulator_platform_data *tps_pdata; 142 struct tps65090_regulator_platform_data *tps_pdata;
142 int id = pdev->id; 143 int id = pdev->id;
@@ -151,8 +152,11 @@ static int __devinit tps65090_regulator_probe(struct platform_device *pdev)
151 tps_pdata = pdev->dev.platform_data; 152 tps_pdata = pdev->dev.platform_data;
152 ri->dev = &pdev->dev; 153 ri->dev = &pdev->dev;
153 154
154 rdev = regulator_register(&ri->desc, &pdev->dev, 155 config.dev = &pdev->dev;
155 &tps_pdata->regulator, ri, NULL); 156 config.init_data = &tps_pdata->regulator;
157 config.driver_data = ri;
158
159 rdev = regulator_register(&ri->desc, &config);
156 if (IS_ERR(rdev)) { 160 if (IS_ERR(rdev)) {
157 dev_err(&pdev->dev, "failed to register regulator %s\n", 161 dev_err(&pdev->dev, "failed to register regulator %s\n",
158 ri->desc.name); 162 ri->desc.name);