提交 0a2c9865 编写于 作者: L Linus Torvalds

Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator:
  regulator: TPS65910: Fix VDD1/2 voltage selector count
...@@ -664,10 +664,10 @@ static int tps65910_set_voltage_dcdc(struct regulator_dev *dev, ...@@ -664,10 +664,10 @@ static int tps65910_set_voltage_dcdc(struct regulator_dev *dev,
switch (id) { switch (id) {
case TPS65910_REG_VDD1: case TPS65910_REG_VDD1:
dcdc_mult = (selector / VDD1_2_NUM_VOLTS) + 1; dcdc_mult = (selector / VDD1_2_NUM_VOLT_FINE) + 1;
if (dcdc_mult == 1) if (dcdc_mult == 1)
dcdc_mult--; dcdc_mult--;
vsel = (selector % VDD1_2_NUM_VOLTS) + 3; vsel = (selector % VDD1_2_NUM_VOLT_FINE) + 3;
tps65910_modify_bits(pmic, TPS65910_VDD1, tps65910_modify_bits(pmic, TPS65910_VDD1,
(dcdc_mult << VDD1_VGAIN_SEL_SHIFT), (dcdc_mult << VDD1_VGAIN_SEL_SHIFT),
...@@ -675,10 +675,10 @@ static int tps65910_set_voltage_dcdc(struct regulator_dev *dev, ...@@ -675,10 +675,10 @@ static int tps65910_set_voltage_dcdc(struct regulator_dev *dev,
tps65910_reg_write(pmic, TPS65910_VDD1_OP, vsel); tps65910_reg_write(pmic, TPS65910_VDD1_OP, vsel);
break; break;
case TPS65910_REG_VDD2: case TPS65910_REG_VDD2:
dcdc_mult = (selector / VDD1_2_NUM_VOLTS) + 1; dcdc_mult = (selector / VDD1_2_NUM_VOLT_FINE) + 1;
if (dcdc_mult == 1) if (dcdc_mult == 1)
dcdc_mult--; dcdc_mult--;
vsel = (selector % VDD1_2_NUM_VOLTS) + 3; vsel = (selector % VDD1_2_NUM_VOLT_FINE) + 3;
tps65910_modify_bits(pmic, TPS65910_VDD2, tps65910_modify_bits(pmic, TPS65910_VDD2,
(dcdc_mult << VDD2_VGAIN_SEL_SHIFT), (dcdc_mult << VDD2_VGAIN_SEL_SHIFT),
...@@ -756,9 +756,9 @@ static int tps65910_list_voltage_dcdc(struct regulator_dev *dev, ...@@ -756,9 +756,9 @@ static int tps65910_list_voltage_dcdc(struct regulator_dev *dev,
switch (id) { switch (id) {
case TPS65910_REG_VDD1: case TPS65910_REG_VDD1:
case TPS65910_REG_VDD2: case TPS65910_REG_VDD2:
mult = (selector / VDD1_2_NUM_VOLTS) + 1; mult = (selector / VDD1_2_NUM_VOLT_FINE) + 1;
volt = VDD1_2_MIN_VOLT + volt = VDD1_2_MIN_VOLT +
(selector % VDD1_2_NUM_VOLTS) * VDD1_2_OFFSET; (selector % VDD1_2_NUM_VOLT_FINE) * VDD1_2_OFFSET;
break; break;
case TPS65911_REG_VDDCTRL: case TPS65911_REG_VDDCTRL:
volt = VDDCTRL_MIN_VOLT + (selector * VDDCTRL_OFFSET); volt = VDDCTRL_MIN_VOLT + (selector * VDDCTRL_OFFSET);
...@@ -947,6 +947,8 @@ static __devinit int tps65910_probe(struct platform_device *pdev) ...@@ -947,6 +947,8 @@ static __devinit int tps65910_probe(struct platform_device *pdev)
if (i == TPS65910_REG_VDD1 || i == TPS65910_REG_VDD2) { if (i == TPS65910_REG_VDD1 || i == TPS65910_REG_VDD2) {
pmic->desc[i].ops = &tps65910_ops_dcdc; pmic->desc[i].ops = &tps65910_ops_dcdc;
pmic->desc[i].n_voltages = VDD1_2_NUM_VOLT_FINE *
VDD1_2_NUM_VOLT_COARSE;
} else if (i == TPS65910_REG_VDD3) { } else if (i == TPS65910_REG_VDD3) {
if (tps65910_chip_id(tps65910) == TPS65910) if (tps65910_chip_id(tps65910) == TPS65910)
pmic->desc[i].ops = &tps65910_ops_vdd3; pmic->desc[i].ops = &tps65910_ops_vdd3;
......
...@@ -243,7 +243,8 @@ ...@@ -243,7 +243,8 @@
/*Registers VDD1, VDD2 voltage values definitions */ /*Registers VDD1, VDD2 voltage values definitions */
#define VDD1_2_NUM_VOLTS 73 #define VDD1_2_NUM_VOLT_FINE 73
#define VDD1_2_NUM_VOLT_COARSE 3
#define VDD1_2_MIN_VOLT 6000 #define VDD1_2_MIN_VOLT 6000
#define VDD1_2_OFFSET 125 #define VDD1_2_OFFSET 125
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册