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

regulator: max14577: Reduce duplication of regulator_desc initializers

Replace duplicated initializers in arrays of struct 'regulator_desc'
with macro. Generated object is the same but each type of regulator is
described only once.

Signed-off-by: Krzysztof Kozlowski <k.kozlowski.k@gmail.com>
Signed-off-by: Mark Brown <broonie@kernel.org>

authored by

Krzysztof Kozlowski and committed by
Mark Brown
cab344d3 b787f68c

+48 -80
+48 -80
drivers/regulator/max14577.c
··· 100 100 .set_current_limit = max14577_reg_set_current_limit, 101 101 }; 102 102 103 + #define MAX14577_SAFEOUT_REG { \ 104 + .name = "SAFEOUT", \ 105 + .of_match = of_match_ptr("SAFEOUT"), \ 106 + .regulators_node = of_match_ptr("regulators"), \ 107 + .id = MAX14577_SAFEOUT, \ 108 + .ops = &max14577_safeout_ops, \ 109 + .type = REGULATOR_VOLTAGE, \ 110 + .owner = THIS_MODULE, \ 111 + .n_voltages = 1, \ 112 + .min_uV = MAX14577_REGULATOR_SAFEOUT_VOLTAGE, \ 113 + .enable_reg = MAX14577_REG_CONTROL2, \ 114 + .enable_mask = CTRL2_SFOUTORD_MASK, \ 115 + } 116 + #define MAX14577_CHARGER_REG { \ 117 + .name = "CHARGER", \ 118 + .of_match = of_match_ptr("CHARGER"), \ 119 + .regulators_node = of_match_ptr("regulators"), \ 120 + .id = MAX14577_CHARGER, \ 121 + .ops = &max14577_charger_ops, \ 122 + .type = REGULATOR_CURRENT, \ 123 + .owner = THIS_MODULE, \ 124 + .enable_reg = MAX14577_CHG_REG_CHG_CTRL2, \ 125 + .enable_mask = CHGCTRL2_MBCHOSTEN_MASK, \ 126 + } 127 + 103 128 static const struct regulator_desc max14577_supported_regulators[] = { 104 - [MAX14577_SAFEOUT] = { 105 - .name = "SAFEOUT", 106 - .of_match = of_match_ptr("SAFEOUT"), 107 - .regulators_node = of_match_ptr("regulators"), 108 - .id = MAX14577_SAFEOUT, 109 - .ops = &max14577_safeout_ops, 110 - .type = REGULATOR_VOLTAGE, 111 - .owner = THIS_MODULE, 112 - .n_voltages = 1, 113 - .min_uV = MAX14577_REGULATOR_SAFEOUT_VOLTAGE, 114 - .enable_reg = MAX14577_REG_CONTROL2, 115 - .enable_mask = CTRL2_SFOUTORD_MASK, 116 - }, 117 - [MAX14577_CHARGER] = { 118 - .name = "CHARGER", 119 - .of_match = of_match_ptr("CHARGER"), 120 - .regulators_node = of_match_ptr("regulators"), 121 - .id = MAX14577_CHARGER, 122 - .ops = &max14577_charger_ops, 123 - .type = REGULATOR_CURRENT, 124 - .owner = THIS_MODULE, 125 - .enable_reg = MAX14577_CHG_REG_CHG_CTRL2, 126 - .enable_mask = CHGCTRL2_MBCHOSTEN_MASK, 127 - }, 129 + [MAX14577_SAFEOUT] = MAX14577_SAFEOUT_REG, 130 + [MAX14577_CHARGER] = MAX14577_CHARGER_REG, 128 131 }; 129 132 130 133 static struct regulator_ops max77836_ldo_ops = { ··· 141 138 /* TODO: add .set_suspend_mode */ 142 139 }; 143 140 141 + #define MAX77836_LDO_REG(num) { \ 142 + .name = "LDO" # num, \ 143 + .of_match = of_match_ptr("LDO" # num), \ 144 + .regulators_node = of_match_ptr("regulators"), \ 145 + .id = MAX77836_LDO ## num, \ 146 + .ops = &max77836_ldo_ops, \ 147 + .type = REGULATOR_VOLTAGE, \ 148 + .owner = THIS_MODULE, \ 149 + .n_voltages = MAX77836_REGULATOR_LDO_VOLTAGE_STEPS_NUM, \ 150 + .min_uV = MAX77836_REGULATOR_LDO_VOLTAGE_MIN, \ 151 + .uV_step = MAX77836_REGULATOR_LDO_VOLTAGE_STEP, \ 152 + .enable_reg = MAX77836_LDO_REG_CNFG1_LDO ## num, \ 153 + .enable_mask = MAX77836_CNFG1_LDO_PWRMD_MASK, \ 154 + .vsel_reg = MAX77836_LDO_REG_CNFG1_LDO ## num, \ 155 + .vsel_mask = MAX77836_CNFG1_LDO_TV_MASK, \ 156 + } 157 + 144 158 static const struct regulator_desc max77836_supported_regulators[] = { 145 - [MAX14577_SAFEOUT] = { 146 - .name = "SAFEOUT", 147 - .of_match = of_match_ptr("SAFEOUT"), 148 - .regulators_node = of_match_ptr("regulators"), 149 - .id = MAX14577_SAFEOUT, 150 - .ops = &max14577_safeout_ops, 151 - .type = REGULATOR_VOLTAGE, 152 - .owner = THIS_MODULE, 153 - .n_voltages = 1, 154 - .min_uV = MAX14577_REGULATOR_SAFEOUT_VOLTAGE, 155 - .enable_reg = MAX14577_REG_CONTROL2, 156 - .enable_mask = CTRL2_SFOUTORD_MASK, 157 - }, 158 - [MAX14577_CHARGER] = { 159 - .name = "CHARGER", 160 - .of_match = of_match_ptr("CHARGER"), 161 - .regulators_node = of_match_ptr("regulators"), 162 - .id = MAX14577_CHARGER, 163 - .ops = &max14577_charger_ops, 164 - .type = REGULATOR_CURRENT, 165 - .owner = THIS_MODULE, 166 - .enable_reg = MAX14577_CHG_REG_CHG_CTRL2, 167 - .enable_mask = CHGCTRL2_MBCHOSTEN_MASK, 168 - }, 169 - [MAX77836_LDO1] = { 170 - .name = "LDO1", 171 - .of_match = of_match_ptr("LDO1"), 172 - .regulators_node = of_match_ptr("regulators"), 173 - .id = MAX77836_LDO1, 174 - .ops = &max77836_ldo_ops, 175 - .type = REGULATOR_VOLTAGE, 176 - .owner = THIS_MODULE, 177 - .n_voltages = MAX77836_REGULATOR_LDO_VOLTAGE_STEPS_NUM, 178 - .min_uV = MAX77836_REGULATOR_LDO_VOLTAGE_MIN, 179 - .uV_step = MAX77836_REGULATOR_LDO_VOLTAGE_STEP, 180 - .enable_reg = MAX77836_LDO_REG_CNFG1_LDO1, 181 - .enable_mask = MAX77836_CNFG1_LDO_PWRMD_MASK, 182 - .vsel_reg = MAX77836_LDO_REG_CNFG1_LDO1, 183 - .vsel_mask = MAX77836_CNFG1_LDO_TV_MASK, 184 - }, 185 - [MAX77836_LDO2] = { 186 - .name = "LDO2", 187 - .of_match = of_match_ptr("LDO2"), 188 - .regulators_node = of_match_ptr("regulators"), 189 - .id = MAX77836_LDO2, 190 - .ops = &max77836_ldo_ops, 191 - .type = REGULATOR_VOLTAGE, 192 - .owner = THIS_MODULE, 193 - .n_voltages = MAX77836_REGULATOR_LDO_VOLTAGE_STEPS_NUM, 194 - .min_uV = MAX77836_REGULATOR_LDO_VOLTAGE_MIN, 195 - .uV_step = MAX77836_REGULATOR_LDO_VOLTAGE_STEP, 196 - .enable_reg = MAX77836_LDO_REG_CNFG1_LDO2, 197 - .enable_mask = MAX77836_CNFG1_LDO_PWRMD_MASK, 198 - .vsel_reg = MAX77836_LDO_REG_CNFG1_LDO2, 199 - .vsel_mask = MAX77836_CNFG1_LDO_TV_MASK, 200 - }, 159 + [MAX14577_SAFEOUT] = MAX14577_SAFEOUT_REG, 160 + [MAX14577_CHARGER] = MAX14577_CHARGER_REG, 161 + [MAX77836_LDO1] = MAX77836_LDO_REG(1), 162 + [MAX77836_LDO2] = MAX77836_LDO_REG(2), 201 163 }; 202 164 203 165 #ifdef CONFIG_OF