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

regulator: lp873x: Convert to use regulator_set/get_current_limit_regmap

Use regulator_set/get_current_limit_regmap helpers to save some code.

Signed-off-by: Axel Lin <axel.lin@ingics.com>
Signed-off-by: Mark Brown <broonie@kernel.org>

authored by

Axel Lin and committed by
Mark Brown
be6230c3 8918f068

+6 -39
+6 -39
drivers/regulator/lp873x-regulator.c
··· 39 39 .ramp_delay = _delay, \ 40 40 .linear_ranges = _lr, \ 41 41 .n_linear_ranges = ARRAY_SIZE(_lr), \ 42 + .curr_table = lp873x_buck_uA, \ 43 + .n_current_limits = ARRAY_SIZE(lp873x_buck_uA), \ 44 + .csel_reg = (_cr), \ 45 + .csel_mask = LP873X_BUCK0_CTRL_2_BUCK0_ILIM,\ 42 46 }, \ 43 47 .ctrl2_reg = _cr, \ 44 48 } ··· 112 108 return 0; 113 109 } 114 110 115 - static int lp873x_buck_set_current_limit(struct regulator_dev *rdev, 116 - int min_uA, int max_uA) 117 - { 118 - int id = rdev_get_id(rdev); 119 - struct lp873x *lp873 = rdev_get_drvdata(rdev); 120 - int i; 121 - 122 - for (i = ARRAY_SIZE(lp873x_buck_uA) - 1; i >= 0; i--) { 123 - if (lp873x_buck_uA[i] >= min_uA && 124 - lp873x_buck_uA[i] <= max_uA) 125 - return regmap_update_bits(lp873->regmap, 126 - regulators[id].ctrl2_reg, 127 - LP873X_BUCK0_CTRL_2_BUCK0_ILIM, 128 - i << __ffs(LP873X_BUCK0_CTRL_2_BUCK0_ILIM)); 129 - } 130 - 131 - return -EINVAL; 132 - } 133 - 134 - static int lp873x_buck_get_current_limit(struct regulator_dev *rdev) 135 - { 136 - int id = rdev_get_id(rdev); 137 - struct lp873x *lp873 = rdev_get_drvdata(rdev); 138 - int ret; 139 - unsigned int val; 140 - 141 - ret = regmap_read(lp873->regmap, regulators[id].ctrl2_reg, &val); 142 - if (ret) 143 - return ret; 144 - 145 - val = (val & LP873X_BUCK0_CTRL_2_BUCK0_ILIM) >> 146 - __ffs(LP873X_BUCK0_CTRL_2_BUCK0_ILIM); 147 - 148 - return (val < ARRAY_SIZE(lp873x_buck_uA)) ? 149 - lp873x_buck_uA[val] : -EINVAL; 150 - } 151 - 152 111 /* Operations permitted on BUCK0, BUCK1 */ 153 112 static const struct regulator_ops lp873x_buck01_ops = { 154 113 .is_enabled = regulator_is_enabled_regmap, ··· 123 156 .map_voltage = regulator_map_voltage_linear_range, 124 157 .set_voltage_time_sel = regulator_set_voltage_time_sel, 125 158 .set_ramp_delay = lp873x_buck_set_ramp_delay, 126 - .set_current_limit = lp873x_buck_set_current_limit, 127 - .get_current_limit = lp873x_buck_get_current_limit, 159 + .set_current_limit = regulator_set_current_limit_regmap, 160 + .get_current_limit = regulator_get_current_limit_regmap, 128 161 }; 129 162 130 163 /* Operations permitted on LDO0 and LDO1 */