Commit cc17ef3f0463ba17c8767578da8c4e5fbdd4b447
Committed by
Liam Girdwood
1 parent
f068ad8cca
Exists in
master
and in
6 other branches
regulator: tps65023: Set missing bit for update core-voltage
Setting the GO bit in CTRL2 for updating the core voltage Signed-off-by: Marcus Folkesson <marcus.folkesson@gmail.com> Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
Showing 1 changed file with 15 additions and 4 deletions Side-by-side Diff
drivers/regulator/tps65023-regulator.c
... | ... | @@ -284,6 +284,7 @@ |
284 | 284 | struct tps_pmic *tps = rdev_get_drvdata(dev); |
285 | 285 | int dcdc = rdev_get_id(dev); |
286 | 286 | int vsel; |
287 | + int ret; | |
287 | 288 | |
288 | 289 | if (dcdc != TPS65023_DCDC_1) |
289 | 290 | return -EINVAL; |
290 | 291 | |
... | ... | @@ -306,11 +307,21 @@ |
306 | 307 | |
307 | 308 | *selector = vsel; |
308 | 309 | |
309 | - /* write to the register in case we found a match */ | |
310 | 310 | if (vsel == tps->info[dcdc]->table_len) |
311 | - return -EINVAL; | |
312 | - else | |
313 | - return tps_65023_reg_write(tps, TPS65023_REG_DEF_CORE, vsel); | |
311 | + goto failed; | |
312 | + | |
313 | + ret = tps_65023_reg_write(tps, TPS65023_REG_DEF_CORE, vsel); | |
314 | + | |
315 | + /* Tell the chip that we have changed the value in DEFCORE | |
316 | + * and its time to update the core voltage | |
317 | + */ | |
318 | + tps_65023_set_bits(tps, TPS65023_REG_CON_CTRL2, | |
319 | + TPS65023_REG_CTRL2_GO); | |
320 | + | |
321 | + return ret; | |
322 | + | |
323 | +failed: | |
324 | + return -EINVAL; | |
314 | 325 | } |
315 | 326 | |
316 | 327 | static int tps65023_ldo_get_voltage(struct regulator_dev *dev) |