Commit 4923b48b27fc89710ebc8b77fe0dd679724c0ffc
Committed by
Mark Brown
1 parent
372de4aa5e
Exists in
smarc-l5.0.0_1.0.0-ga
and in
5 other branches
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, |