@@ -655,31 +655,44 @@ static const struct regulator_ops s2mpg10_reg_buck_ops[] = {
655655 * (12.5mV/μs) while our ::set_voltage_time() takes the value in ramp_reg
656656 * into account.
657657 */
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), \
662665 .regulators_node = of_match_ptr("regulators"), \
663666 .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], \
666669 .type = REGULATOR_VOLTAGE, \
667670 .owner = THIS_MODULE, \
668671 .linear_ranges = _vrange, \
669672 .n_linear_ranges = ARRAY_SIZE(_vrange), \
670673 .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 */ \
681683}
682684
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)
695+
683696#define s2mpg10_regulator_desc_buck_cm (_num , _vrange , _r_reg ) \
684697 .desc = regulator_desc_s2mpg10_buck(_num, _vrange, _r_reg), \
685698 .enable_ramp_rate = 12500
@@ -743,24 +756,24 @@ static const struct regulator_ops s2mpg10_reg_ldo_ramp_ops[] = {
743756 }
744757};
745758
746- #define regulator_desc_s2mpg10_ldo_cmn ( _num , _supply , _ops , _vrange , \
747- _vsel_reg_sfx , _vsel_mask , _en_reg , _en_mask , \
759+ #define regulator_desc_s2mpg1x_ldo_cmn ( _name , _id , _supply , _ops , \
760+ _vrange , _vsel_reg , _vsel_mask , _en_reg , _en_mask , \
748761 _ramp_delay , _r_reg , _r_mask , _r_table , _r_table_sz ) { \
749- .name = "ldo"#_num "m", \
762+ .name = "ldo" _name, \
750763 .supply_name = _supply, \
751- .of_match = of_match_ptr("ldo"#_num "m" ), \
764+ .of_match = of_match_ptr("ldo" _name ), \
752765 .regulators_node = of_match_ptr("regulators"), \
753766 .of_parse_cb = s2mpg10_of_parse_cb, \
754- .id = S2MPG10_LDO##_num, \
767+ .id = _id, \
755768 .ops = &(_ops)[0], \
756769 .type = REGULATOR_VOLTAGE, \
757770 .owner = THIS_MODULE, \
758771 .linear_ranges = _vrange, \
759772 .n_linear_ranges = ARRAY_SIZE(_vrange), \
760773 .n_voltages = _vrange##_count, \
761- .vsel_reg = S2MPG10_PMIC_L##_num##M_##_vsel_reg_sfx, \
774+ .vsel_reg = _vsel_reg, \
762775 .vsel_mask = _vsel_mask, \
763- .enable_reg = S2MPG10_PMIC_## _en_reg, \
776+ .enable_reg = _en_reg, \
764777 .enable_mask = _en_mask, \
765778 .ramp_delay = _ramp_delay, \
766779 .ramp_reg = _r_reg, \
@@ -775,10 +788,12 @@ static const struct regulator_ops s2mpg10_reg_ldo_ramp_ops[] = {
775788 _ramp_delay , _r_reg , _r_mask , _r_table , _r_table_sz , \
776789 _pc_reg , _pc_mask ) \
777790 [S2MPG10_LDO##_num] = { \
778- .desc = regulator_desc_s2mpg10_ldo_cmn(_num, _supply, \
779- _ops, \
780- _vrange, _vsel_reg_sfx, _vsel_mask, \
781- _en_reg, _en_mask, \
791+ .desc = regulator_desc_s2mpg1x_ldo_cmn(#_num "m", \
792+ S2MPG10_LDO##_num, _supply, _ops, \
793+ _vrange, \
794+ S2MPG10_PMIC_L##_num##M_##_vsel_reg_sfx, \
795+ _vsel_mask, \
796+ S2MPG10_PMIC_##_en_reg, _en_mask, \
782797 _ramp_delay, _r_reg, _r_mask, _r_table, \
783798 _r_table_sz), \
784799 .pctrlsel_reg = _pc_reg, \
0 commit comments