diff options
Diffstat (limited to 'drivers/regulator/mc13892-regulator.c')
| -rw-r--r-- | drivers/regulator/mc13892-regulator.c | 25 | 
1 files changed, 10 insertions, 15 deletions
diff --git a/drivers/regulator/mc13892-regulator.c b/drivers/regulator/mc13892-regulator.c index 845aa2263b8..970a233dbe4 100644 --- a/drivers/regulator/mc13892-regulator.c +++ b/drivers/regulator/mc13892-regulator.c @@ -428,24 +428,15 @@ static int mc13892_sw_regulator_get_voltage(struct regulator_dev *rdev)  	return val;  } -static int mc13892_sw_regulator_set_voltage(struct regulator_dev *rdev, -		int min_uV, int max_uV, unsigned *selector) +static int mc13892_sw_regulator_set_voltage_sel(struct regulator_dev *rdev, +						unsigned selector)  {  	struct mc13xxx_regulator_priv *priv = rdev_get_drvdata(rdev);  	int hi, value, mask, id = rdev_get_id(rdev);  	u32 valread;  	int ret; -	dev_dbg(rdev_get_dev(rdev), "%s id: %d min_uV: %d max_uV: %d\n", -		__func__, id, min_uV, max_uV); - -	/* Find the best index */ -	value = mc13xxx_get_best_voltage_index(rdev, min_uV, max_uV); -	dev_dbg(rdev_get_dev(rdev), "%s best value: %d\n", __func__, value); -	if (value < 0) -		return value; - -	value = mc13892_regulators[id].voltages[value]; +	value = mc13892_regulators[id].voltages[selector];  	mc13xxx_lock(priv->mc13xxx);  	ret = mc13xxx_reg_read(priv->mc13xxx, @@ -480,7 +471,7 @@ err:  static struct regulator_ops mc13892_sw_regulator_ops = {  	.is_enabled = mc13xxx_sw_regulator_is_enabled,  	.list_voltage = mc13xxx_regulator_list_voltage, -	.set_voltage = mc13892_sw_regulator_set_voltage, +	.set_voltage_sel = mc13892_sw_regulator_set_voltage_sel,  	.get_voltage = mc13892_sw_regulator_get_voltage,  }; @@ -528,6 +519,7 @@ static int __devinit mc13892_regulator_probe(struct platform_device *pdev)  	struct mc13xxx_regulator_platform_data *pdata =  		dev_get_platdata(&pdev->dev);  	struct mc13xxx_regulator_init_data *mc13xxx_data; +	struct regulator_config config = { };  	int i, ret;  	int num_regulators = 0;  	u32 val; @@ -597,9 +589,12 @@ static int __devinit mc13892_regulator_probe(struct platform_device *pdev)  		}  		desc = &mc13892_regulators[id].desc; -		priv->regulators[i] = regulator_register( -			desc, &pdev->dev, init_data, priv, node); +		config.dev = &pdev->dev; +		config.init_data = init_data; +		config.driver_data = priv; +		config.of_node = node; +		priv->regulators[i] = regulator_register(desc, &config);  		if (IS_ERR(priv->regulators[i])) {  			dev_err(&pdev->dev, "failed to register regulator %s\n",  				mc13892_regulators[i].desc.name);  |