Commit 4923b48b27fc89710ebc8b77fe0dd679724c0ffc

Authored by Axel Lin
Committed by Mark Brown
1 parent 372de4aa5e

regulator: da9052: Convert to set_voltage_sel and map_voltage

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>

Showing 1 changed file with 24 additions and 13 deletions Side-by-side Diff

drivers/regulator/da9052-regulator.c
... ... @@ -179,14 +179,13 @@
179 179 return volt_uV;
180 180 }
181 181  
182   -static int da9052_regulator_set_voltage(struct regulator_dev *rdev,
183   - int min_uV, int max_uV,
184   - unsigned int *selector)
  182 +static int da9052_map_voltage(struct regulator_dev *rdev,
  183 + int min_uV, int max_uV)
185 184 {
186 185 struct da9052_regulator *regulator = rdev_get_drvdata(rdev);
187 186 struct da9052_regulator_info *info = regulator->info;
188 187 int id = rdev_get_id(rdev);
189   - int ret;
  188 + int ret, sel;
190 189  
191 190 ret = verify_range(info, min_uV, max_uV);
192 191 if (ret < 0)
193 192  
194 193  
195 194  
196 195  
... ... @@ -197,19 +196,30 @@
197 196  
198 197 if ((id == DA9052_ID_BUCK4) && (regulator->da9052->chip_id == DA9052)
199 198 && (min_uV >= DA9052_CONST_3uV)) {
200   - *selector = DA9052_BUCK_PERI_REG_MAP_UPTO_3uV +
201   - DIV_ROUND_UP(min_uV - DA9052_CONST_3uV,
202   - DA9052_BUCK_PERI_3uV_STEP);
  199 + sel = DA9052_BUCK_PERI_REG_MAP_UPTO_3uV +
  200 + DIV_ROUND_UP(min_uV - DA9052_CONST_3uV,
  201 + DA9052_BUCK_PERI_3uV_STEP);
203 202 } else {
204   - *selector = DIV_ROUND_UP(min_uV - info->min_uV, info->step_uV);
  203 + sel = DIV_ROUND_UP(min_uV - info->min_uV, info->step_uV);
205 204 }
206 205  
207   - ret = da9052_list_voltage(rdev, *selector);
  206 + ret = da9052_list_voltage(rdev, sel);
208 207 if (ret < 0)
209 208 return ret;
210 209  
  210 + return sel;
  211 +}
  212 +
  213 +static int da9052_regulator_set_voltage_sel(struct regulator_dev *rdev,
  214 + unsigned int selector)
  215 +{
  216 + struct da9052_regulator *regulator = rdev_get_drvdata(rdev);
  217 + struct da9052_regulator_info *info = regulator->info;
  218 + int id = rdev_get_id(rdev);
  219 + int ret;
  220 +
211 221 ret = da9052_reg_update(regulator->da9052, rdev->desc->vsel_reg,
212   - rdev->desc->vsel_mask, *selector);
  222 + rdev->desc->vsel_mask, selector);
213 223 if (ret < 0)
214 224 return ret;
215 225  
216 226  
217 227  
218 228  
219 229  
220 230  
... ... @@ -231,22 +241,23 @@
231 241 }
232 242  
233 243 static struct regulator_ops da9052_dcdc_ops = {
234   - .set_voltage = da9052_regulator_set_voltage,
235 244 .get_current_limit = da9052_dcdc_get_current_limit,
236 245 .set_current_limit = da9052_dcdc_set_current_limit,
237 246  
238 247 .list_voltage = da9052_list_voltage,
  248 + .map_voltage = da9052_map_voltage,
239 249 .get_voltage_sel = regulator_get_voltage_sel_regmap,
  250 + .set_voltage_sel = da9052_regulator_set_voltage_sel,
240 251 .is_enabled = regulator_is_enabled_regmap,
241 252 .enable = regulator_enable_regmap,
242 253 .disable = regulator_disable_regmap,
243 254 };
244 255  
245 256 static struct regulator_ops da9052_ldo_ops = {
246   - .set_voltage = da9052_regulator_set_voltage,
247   -
248 257 .list_voltage = da9052_list_voltage,
  258 + .map_voltage = da9052_map_voltage,
249 259 .get_voltage_sel = regulator_get_voltage_sel_regmap,
  260 + .set_voltage_sel = da9052_regulator_set_voltage_sel,
250 261 .is_enabled = regulator_is_enabled_regmap,
251 262 .enable = regulator_enable_regmap,
252 263 .disable = regulator_disable_regmap,