Commit cc17ef3f0463ba17c8767578da8c4e5fbdd4b447

Authored by Marcus Folkesson
Committed by Liam Girdwood
1 parent f068ad8cca

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)