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

regulator: mp886x: Convert to use regulator_set_ramp_delay_regmap

Use regulator_set_ramp_delay_regmap instead of open-coded.

Signed-off-by: Axel Lin <axel.lin@ingics.com>
Message-Id: <20210525102708.2519323-1-axel.lin@ingics.com>
Signed-off-by: Mark Brown <broonie@sirena.org.uk>

authored by

Axel Lin and committed by
Mark Brown
e1e8d55b e0f33921

+7 -25
+7 -25
drivers/regulator/mp886x.c
··· 26 26 27 27 struct mp886x_cfg_info { 28 28 const struct regulator_ops *rops; 29 - const int slew_rates[8]; 29 + const unsigned int slew_rates[8]; 30 30 const int switch_freq[4]; 31 31 const u8 fs_reg; 32 32 const u8 fs_shift; ··· 41 41 u32 r[2]; 42 42 unsigned int sel; 43 43 }; 44 - 45 - static int mp886x_set_ramp(struct regulator_dev *rdev, int ramp) 46 - { 47 - struct mp886x_device_info *di = rdev_get_drvdata(rdev); 48 - const struct mp886x_cfg_info *ci = di->ci; 49 - int reg = -1, i; 50 - 51 - for (i = 0; i < ARRAY_SIZE(ci->slew_rates); i++) { 52 - if (ramp <= ci->slew_rates[i]) 53 - reg = i; 54 - else 55 - break; 56 - } 57 - 58 - if (reg < 0) { 59 - dev_err(di->dev, "unsupported ramp value %d\n", ramp); 60 - return -EINVAL; 61 - } 62 - 63 - return regmap_update_bits(rdev->regmap, MP886X_SYSCNTLREG1, 64 - MP886X_SLEW_MASK, reg << MP886X_SLEW_SHIFT); 65 - } 66 44 67 45 static void mp886x_set_switch_freq(struct mp886x_device_info *di, 68 46 struct regmap *regmap, ··· 147 169 .is_enabled = regulator_is_enabled_regmap, 148 170 .set_mode = mp886x_set_mode, 149 171 .get_mode = mp886x_get_mode, 150 - .set_ramp_delay = mp886x_set_ramp, 172 + .set_ramp_delay = regulator_set_ramp_delay_regmap, 151 173 }; 152 174 153 175 static const struct mp886x_cfg_info mp8869_ci = { ··· 226 248 .is_enabled = regulator_is_enabled_regmap, 227 249 .set_mode = mp886x_set_mode, 228 250 .get_mode = mp886x_get_mode, 229 - .set_ramp_delay = mp886x_set_ramp, 251 + .set_ramp_delay = regulator_set_ramp_delay_regmap, 230 252 }; 231 253 232 254 static const struct mp886x_cfg_info mp8867_ci = { ··· 268 290 rdesc->uV_step = 10000; 269 291 rdesc->vsel_reg = MP886X_VSEL; 270 292 rdesc->vsel_mask = 0x3f; 293 + rdesc->ramp_reg = MP886X_SYSCNTLREG1; 294 + rdesc->ramp_mask = MP886X_SLEW_MASK; 295 + rdesc->ramp_delay_table = di->ci->slew_rates; 296 + rdesc->n_ramp_values = ARRAY_SIZE(di->ci->slew_rates); 271 297 rdesc->owner = THIS_MODULE; 272 298 273 299 rdev = devm_regulator_register(di->dev, &di->desc, config);