Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

regulator: s2mps11: refactor S2MPG10 regulator macros for S2MPG11 reuse

Rails in the S2MPG11 share a very similar set of properties with
S2MPG10 with slight differences. Update the existing macros to allow
reuse by the upcoming S2MPG11 driver.

Signed-off-by: André Draszik <andre.draszik@linaro.org>
Link: https://patch.msgid.link/20260122-s2mpg1x-regulators-v7-18-3b1f9831fffd@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>

authored by

André Draszik and committed by
Mark Brown
102dd11f 8f23cfbe

+42 -27
+42 -27
drivers/regulator/s2mps11.c
··· 655 655 * (12.5mV/μs) while our ::set_voltage_time() takes the value in ramp_reg 656 656 * into account. 657 657 */ 658 - #define regulator_desc_s2mpg10_buck(_num, _vrange, _r_reg) { \ 659 - .name = "buck"#_num "m", \ 660 - .supply_name = "vinb"#_num "m", \ 661 - .of_match = of_match_ptr("buck"#_num "m"), \ 658 + #define regulator_desc_s2mpg1x_buck_cmn(_name, _id, _supply, _ops, \ 659 + _vrange, _vsel_reg, _vsel_mask, _en_reg, _en_mask, \ 660 + _r_reg, _r_mask, _r_table, _r_table_sz, \ 661 + _en_time) { \ 662 + .name = "buck" _name, \ 663 + .supply_name = _supply, \ 664 + .of_match = of_match_ptr("buck" _name), \ 662 665 .regulators_node = of_match_ptr("regulators"), \ 663 666 .of_parse_cb = s2mpg10_of_parse_cb, \ 664 - .id = S2MPG10_BUCK##_num, \ 665 - .ops = &s2mpg10_reg_buck_ops[0], \ 667 + .id = _id, \ 668 + .ops = &(_ops)[0], \ 666 669 .type = REGULATOR_VOLTAGE, \ 667 670 .owner = THIS_MODULE, \ 668 671 .linear_ranges = _vrange, \ 669 672 .n_linear_ranges = ARRAY_SIZE(_vrange), \ 670 673 .n_voltages = _vrange##_count, \ 671 - .vsel_reg = S2MPG10_PMIC_B##_num##M_OUT1, \ 672 - .vsel_mask = 0xff, \ 673 - .enable_reg = S2MPG10_PMIC_B##_num##M_CTRL, \ 674 - .enable_mask = GENMASK(7, 6), \ 675 - .ramp_reg = S2MPG10_PMIC_##_r_reg, \ 676 - .ramp_mask = s2mpg10_buck_to_ramp_mask(S2MPG10_BUCK##_num \ 677 - - S2MPG10_BUCK1), \ 678 - .ramp_delay_table = s2mpg10_buck_ramp_table, \ 679 - .n_ramp_values = ARRAY_SIZE(s2mpg10_buck_ramp_table), \ 680 - .enable_time = 30, /* + V/enable_ramp_rate */ \ 674 + .vsel_reg = _vsel_reg, \ 675 + .vsel_mask = _vsel_mask, \ 676 + .enable_reg = _en_reg, \ 677 + .enable_mask = _en_mask, \ 678 + .ramp_reg = _r_reg, \ 679 + .ramp_mask = _r_mask, \ 680 + .ramp_delay_table = _r_table, \ 681 + .n_ramp_values = _r_table_sz, \ 682 + .enable_time = _en_time, /* + V/enable_ramp_rate */ \ 681 683 } 684 + 685 + #define regulator_desc_s2mpg10_buck(_num, _vrange, _r_reg) \ 686 + regulator_desc_s2mpg1x_buck_cmn(#_num "m", S2MPG10_BUCK##_num, \ 687 + "vinb"#_num "m", s2mpg10_reg_buck_ops, _vrange, \ 688 + S2MPG10_PMIC_B##_num##M_OUT1, GENMASK(7, 0), \ 689 + S2MPG10_PMIC_B##_num##M_CTRL, GENMASK(7, 6), \ 690 + S2MPG10_PMIC_##_r_reg, \ 691 + s2mpg10_buck_to_ramp_mask(S2MPG10_BUCK##_num \ 692 + - S2MPG10_BUCK1), \ 693 + s2mpg10_buck_ramp_table, \ 694 + ARRAY_SIZE(s2mpg10_buck_ramp_table), 30) 682 695 683 696 #define s2mpg10_regulator_desc_buck_cm(_num, _vrange, _r_reg) \ 684 697 .desc = regulator_desc_s2mpg10_buck(_num, _vrange, _r_reg), \ ··· 756 743 } 757 744 }; 758 745 759 - #define regulator_desc_s2mpg10_ldo_cmn(_num, _supply, _ops, _vrange, \ 760 - _vsel_reg_sfx, _vsel_mask, _en_reg, _en_mask, \ 746 + #define regulator_desc_s2mpg1x_ldo_cmn(_name, _id, _supply, _ops, \ 747 + _vrange, _vsel_reg, _vsel_mask, _en_reg, _en_mask, \ 761 748 _ramp_delay, _r_reg, _r_mask, _r_table, _r_table_sz) { \ 762 - .name = "ldo"#_num "m", \ 749 + .name = "ldo" _name, \ 763 750 .supply_name = _supply, \ 764 - .of_match = of_match_ptr("ldo"#_num "m"), \ 751 + .of_match = of_match_ptr("ldo" _name), \ 765 752 .regulators_node = of_match_ptr("regulators"), \ 766 753 .of_parse_cb = s2mpg10_of_parse_cb, \ 767 - .id = S2MPG10_LDO##_num, \ 754 + .id = _id, \ 768 755 .ops = &(_ops)[0], \ 769 756 .type = REGULATOR_VOLTAGE, \ 770 757 .owner = THIS_MODULE, \ 771 758 .linear_ranges = _vrange, \ 772 759 .n_linear_ranges = ARRAY_SIZE(_vrange), \ 773 760 .n_voltages = _vrange##_count, \ 774 - .vsel_reg = S2MPG10_PMIC_L##_num##M_##_vsel_reg_sfx, \ 761 + .vsel_reg = _vsel_reg, \ 775 762 .vsel_mask = _vsel_mask, \ 776 - .enable_reg = S2MPG10_PMIC_##_en_reg, \ 763 + .enable_reg = _en_reg, \ 777 764 .enable_mask = _en_mask, \ 778 765 .ramp_delay = _ramp_delay, \ 779 766 .ramp_reg = _r_reg, \ ··· 788 775 _ramp_delay, _r_reg, _r_mask, _r_table, _r_table_sz, \ 789 776 _pc_reg, _pc_mask) \ 790 777 [S2MPG10_LDO##_num] = { \ 791 - .desc = regulator_desc_s2mpg10_ldo_cmn(_num, _supply, \ 792 - _ops, \ 793 - _vrange, _vsel_reg_sfx, _vsel_mask, \ 794 - _en_reg, _en_mask, \ 778 + .desc = regulator_desc_s2mpg1x_ldo_cmn(#_num "m", \ 779 + S2MPG10_LDO##_num, _supply, _ops, \ 780 + _vrange, \ 781 + S2MPG10_PMIC_L##_num##M_##_vsel_reg_sfx, \ 782 + _vsel_mask, \ 783 + S2MPG10_PMIC_##_en_reg, _en_mask, \ 795 784 _ramp_delay, _r_reg, _r_mask, _r_table, \ 796 785 _r_table_sz), \ 797 786 .pctrlsel_reg = _pc_reg, \