Commit 0a2c986557b964453f8deeaf56f6d88bf3e65e92
Exists in
master
and in
6 other branches
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