Skip to content

Commit

Permalink
regulator: tps65023: Set missing bit for update core-voltage
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Marcus Folkesson authored and Liam Girdwood committed Aug 28, 2011
1 parent f068ad8 commit cc17ef3
Showing 1 changed file with 15 additions and 4 deletions.
19 changes: 15 additions & 4 deletions drivers/regulator/tps65023-regulator.c
Original file line number Diff line number Diff line change
Expand Up @@ -284,6 +284,7 @@ static int tps65023_dcdc_set_voltage(struct regulator_dev *dev,
struct tps_pmic *tps = rdev_get_drvdata(dev);
int dcdc = rdev_get_id(dev);
int vsel;
int ret;

if (dcdc != TPS65023_DCDC_1)
return -EINVAL;
Expand All @@ -306,11 +307,21 @@ static int tps65023_dcdc_set_voltage(struct regulator_dev *dev,

*selector = vsel;

/* write to the register in case we found a match */
if (vsel == tps->info[dcdc]->table_len)
return -EINVAL;
else
return tps_65023_reg_write(tps, TPS65023_REG_DEF_CORE, vsel);
goto failed;

ret = tps_65023_reg_write(tps, TPS65023_REG_DEF_CORE, vsel);

/* Tell the chip that we have changed the value in DEFCORE
* and its time to update the core voltage
*/
tps_65023_set_bits(tps, TPS65023_REG_CON_CTRL2,
TPS65023_REG_CTRL2_GO);

return ret;

failed:
return -EINVAL;
}

static int tps65023_ldo_get_voltage(struct regulator_dev *dev)
Expand Down

0 comments on commit cc17ef3

Please sign in to comment.