aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/regulator/max8998.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/max8998.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/max8998.c')
-rw-r--r--drivers/regulator/max8998.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/regulator/max8998.c b/drivers/regulator/max8998.c
index 5890265eeacc..74b0b0c94120 100644
--- a/drivers/regulator/max8998.c
+++ b/drivers/regulator/max8998.c
@@ -685,6 +685,7 @@ static __devinit int max8998_pmic_probe(struct platform_device *pdev)
685{ 685{
686 struct max8998_dev *iodev = dev_get_drvdata(pdev->dev.parent); 686 struct max8998_dev *iodev = dev_get_drvdata(pdev->dev.parent);
687 struct max8998_platform_data *pdata = dev_get_platdata(iodev->dev); 687 struct max8998_platform_data *pdata = dev_get_platdata(iodev->dev);
688 struct regulator_config config = { };
688 struct regulator_dev **rdev; 689 struct regulator_dev **rdev;
689 struct max8998_data *max8998; 690 struct max8998_data *max8998;
690 struct i2c_client *i2c; 691 struct i2c_client *i2c;
@@ -840,8 +841,12 @@ static __devinit int max8998_pmic_probe(struct platform_device *pdev)
840 int count = (desc->max - desc->min) / desc->step + 1; 841 int count = (desc->max - desc->min) / desc->step + 1;
841 regulators[index].n_voltages = count; 842 regulators[index].n_voltages = count;
842 } 843 }
843 rdev[i] = regulator_register(&regulators[index], max8998->dev, 844
844 pdata->regulators[i].initdata, max8998, NULL); 845 config.dev = max8998->dev;
846 config.init_data = pdata->regulators[i].initdata;
847 config.driver_data = max8998;
848
849 rdev[i] = regulator_register(&regulators[index], &config);
845 if (IS_ERR(rdev[i])) { 850 if (IS_ERR(rdev[i])) {
846 ret = PTR_ERR(rdev[i]); 851 ret = PTR_ERR(rdev[i]);
847 dev_err(max8998->dev, "regulator init failed\n"); 852 dev_err(max8998->dev, "regulator init failed\n");