Commit 0a2c986557b964453f8deeaf56f6d88bf3e65e92

Authored by 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

Showing 2 changed files Side-by-side Diff

drivers/regulator/tps65910-regulator.c
... ... @@ -664,10 +664,10 @@
664 664  
665 665 switch (id) {
666 666 case TPS65910_REG_VDD1:
667   - dcdc_mult = (selector / VDD1_2_NUM_VOLTS) + 1;
  667 + dcdc_mult = (selector / VDD1_2_NUM_VOLT_FINE) + 1;
668 668 if (dcdc_mult == 1)
669 669 dcdc_mult--;
670   - vsel = (selector % VDD1_2_NUM_VOLTS) + 3;
  670 + vsel = (selector % VDD1_2_NUM_VOLT_FINE) + 3;
671 671  
672 672 tps65910_modify_bits(pmic, TPS65910_VDD1,
673 673 (dcdc_mult << VDD1_VGAIN_SEL_SHIFT),
674 674  
... ... @@ -675,10 +675,10 @@
675 675 tps65910_reg_write(pmic, TPS65910_VDD1_OP, vsel);
676 676 break;
677 677 case TPS65910_REG_VDD2:
678   - dcdc_mult = (selector / VDD1_2_NUM_VOLTS) + 1;
  678 + dcdc_mult = (selector / VDD1_2_NUM_VOLT_FINE) + 1;
679 679 if (dcdc_mult == 1)
680 680 dcdc_mult--;
681   - vsel = (selector % VDD1_2_NUM_VOLTS) + 3;
  681 + vsel = (selector % VDD1_2_NUM_VOLT_FINE) + 3;
682 682  
683 683 tps65910_modify_bits(pmic, TPS65910_VDD2,
684 684 (dcdc_mult << VDD2_VGAIN_SEL_SHIFT),
685 685  
... ... @@ -756,9 +756,9 @@
756 756 switch (id) {
757 757 case TPS65910_REG_VDD1:
758 758 case TPS65910_REG_VDD2:
759   - mult = (selector / VDD1_2_NUM_VOLTS) + 1;
  759 + mult = (selector / VDD1_2_NUM_VOLT_FINE) + 1;
760 760 volt = VDD1_2_MIN_VOLT +
761   - (selector % VDD1_2_NUM_VOLTS) * VDD1_2_OFFSET;
  761 + (selector % VDD1_2_NUM_VOLT_FINE) * VDD1_2_OFFSET;
762 762 break;
763 763 case TPS65911_REG_VDDCTRL:
764 764 volt = VDDCTRL_MIN_VOLT + (selector * VDDCTRL_OFFSET);
... ... @@ -947,6 +947,8 @@
947 947  
948 948 if (i == TPS65910_REG_VDD1 || i == TPS65910_REG_VDD2) {
949 949 pmic->desc[i].ops = &tps65910_ops_dcdc;
  950 + pmic->desc[i].n_voltages = VDD1_2_NUM_VOLT_FINE *
  951 + VDD1_2_NUM_VOLT_COARSE;
950 952 } else if (i == TPS65910_REG_VDD3) {
951 953 if (tps65910_chip_id(tps65910) == TPS65910)
952 954 pmic->desc[i].ops = &tps65910_ops_vdd3;
include/linux/mfd/tps65910.h
... ... @@ -243,7 +243,8 @@
243 243  
244 244  
245 245 /*Registers VDD1, VDD2 voltage values definitions */
246   -#define VDD1_2_NUM_VOLTS 73
  246 +#define VDD1_2_NUM_VOLT_FINE 73
  247 +#define VDD1_2_NUM_VOLT_COARSE 3
247 248 #define VDD1_2_MIN_VOLT 6000
248 249 #define VDD1_2_OFFSET 125
249 250