regulator: tps65218: Convert to use regulator_get_current_limit_regmap
Use regulator_get_current_limit_regmap helper to save some code. Signed-off-by: Axel Lin <axel.lin@ingics.com> Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
7c6b8e3b9f
commit
7cfcecfb82
|
@ -29,7 +29,8 @@
|
|||
#include <linux/mfd/tps65218.h>
|
||||
|
||||
#define TPS65218_REGULATOR(_name, _of, _id, _type, _ops, _n, _vr, _vm, _er, \
|
||||
_em, _cr, _cm, _lr, _nlr, _delay, _fuv, _sr, _sm) \
|
||||
_em, _cr, _cm, _lr, _nlr, _delay, _fuv, _sr, _sm, \
|
||||
_ct, _ncl) \
|
||||
{ \
|
||||
.name = _name, \
|
||||
.of_match = _of, \
|
||||
|
@ -42,6 +43,8 @@
|
|||
.vsel_mask = _vm, \
|
||||
.csel_reg = _cr, \
|
||||
.csel_mask = _cm, \
|
||||
.curr_table = _ct, \
|
||||
.n_current_limits = _ncl, \
|
||||
.enable_reg = _er, \
|
||||
.enable_mask = _em, \
|
||||
.volt_table = NULL, \
|
||||
|
@ -188,8 +191,7 @@ static const struct regulator_ops tps65218_ldo1_dcdc34_ops = {
|
|||
.set_suspend_disable = tps65218_pmic_set_suspend_disable,
|
||||
};
|
||||
|
||||
static const int ls3_currents[] = { 100000, 200000, 500000, 1000000 };
|
||||
|
||||
static const unsigned int ls3_currents[] = { 100000, 200000, 500000, 1000000 };
|
||||
|
||||
static int tps65218_pmic_set_input_current_lim(struct regulator_dev *dev,
|
||||
int lim_uA)
|
||||
|
@ -229,29 +231,13 @@ static int tps65218_pmic_set_current_limit(struct regulator_dev *dev,
|
|||
TPS65218_PROTECT_L1);
|
||||
}
|
||||
|
||||
static int tps65218_pmic_get_current_limit(struct regulator_dev *dev)
|
||||
{
|
||||
int retval;
|
||||
unsigned int index;
|
||||
struct tps65218 *tps = rdev_get_drvdata(dev);
|
||||
|
||||
retval = regmap_read(tps->regmap, dev->desc->csel_reg, &index);
|
||||
if (retval < 0)
|
||||
return retval;
|
||||
|
||||
index = (index & dev->desc->csel_mask) >>
|
||||
__builtin_ctz(dev->desc->csel_mask);
|
||||
|
||||
return ls3_currents[index];
|
||||
}
|
||||
|
||||
static const struct regulator_ops tps65218_ls23_ops = {
|
||||
.is_enabled = regulator_is_enabled_regmap,
|
||||
.enable = tps65218_pmic_enable,
|
||||
.disable = tps65218_pmic_disable,
|
||||
.set_input_current_limit = tps65218_pmic_set_input_current_lim,
|
||||
.set_current_limit = tps65218_pmic_set_current_limit,
|
||||
.get_current_limit = tps65218_pmic_get_current_limit,
|
||||
.get_current_limit = regulator_get_current_limit_regmap,
|
||||
};
|
||||
|
||||
/* Operations permitted on DCDC5, DCDC6 */
|
||||
|
@ -270,53 +256,57 @@ static const struct regulator_desc regulators[] = {
|
|||
TPS65218_CONTROL_DCDC1_MASK, TPS65218_REG_ENABLE1,
|
||||
TPS65218_ENABLE1_DC1_EN, 0, 0, dcdc1_dcdc2_ranges,
|
||||
2, 4000, 0, TPS65218_REG_SEQ3,
|
||||
TPS65218_SEQ3_DC1_SEQ_MASK),
|
||||
TPS65218_SEQ3_DC1_SEQ_MASK, NULL, 0),
|
||||
TPS65218_REGULATOR("DCDC2", "regulator-dcdc2", TPS65218_DCDC_2,
|
||||
REGULATOR_VOLTAGE, tps65218_dcdc12_ops, 64,
|
||||
TPS65218_REG_CONTROL_DCDC2,
|
||||
TPS65218_CONTROL_DCDC2_MASK, TPS65218_REG_ENABLE1,
|
||||
TPS65218_ENABLE1_DC2_EN, 0, 0, dcdc1_dcdc2_ranges,
|
||||
2, 4000, 0, TPS65218_REG_SEQ3,
|
||||
TPS65218_SEQ3_DC2_SEQ_MASK),
|
||||
TPS65218_SEQ3_DC2_SEQ_MASK, NULL, 0),
|
||||
TPS65218_REGULATOR("DCDC3", "regulator-dcdc3", TPS65218_DCDC_3,
|
||||
REGULATOR_VOLTAGE, tps65218_ldo1_dcdc34_ops, 64,
|
||||
TPS65218_REG_CONTROL_DCDC3,
|
||||
TPS65218_CONTROL_DCDC3_MASK, TPS65218_REG_ENABLE1,
|
||||
TPS65218_ENABLE1_DC3_EN, 0, 0, ldo1_dcdc3_ranges, 2,
|
||||
0, 0, TPS65218_REG_SEQ4, TPS65218_SEQ4_DC3_SEQ_MASK),
|
||||
0, 0, TPS65218_REG_SEQ4, TPS65218_SEQ4_DC3_SEQ_MASK,
|
||||
NULL, 0),
|
||||
TPS65218_REGULATOR("DCDC4", "regulator-dcdc4", TPS65218_DCDC_4,
|
||||
REGULATOR_VOLTAGE, tps65218_ldo1_dcdc34_ops, 53,
|
||||
TPS65218_REG_CONTROL_DCDC4,
|
||||
TPS65218_CONTROL_DCDC4_MASK, TPS65218_REG_ENABLE1,
|
||||
TPS65218_ENABLE1_DC4_EN, 0, 0, dcdc4_ranges, 2,
|
||||
0, 0, TPS65218_REG_SEQ4, TPS65218_SEQ4_DC4_SEQ_MASK),
|
||||
0, 0, TPS65218_REG_SEQ4, TPS65218_SEQ4_DC4_SEQ_MASK,
|
||||
NULL, 0),
|
||||
TPS65218_REGULATOR("DCDC5", "regulator-dcdc5", TPS65218_DCDC_5,
|
||||
REGULATOR_VOLTAGE, tps65218_dcdc56_pmic_ops, 1, -1,
|
||||
-1, TPS65218_REG_ENABLE1, TPS65218_ENABLE1_DC5_EN, 0,
|
||||
0, NULL, 0, 0, 1000000, TPS65218_REG_SEQ5,
|
||||
TPS65218_SEQ5_DC5_SEQ_MASK),
|
||||
TPS65218_SEQ5_DC5_SEQ_MASK, NULL, 0),
|
||||
TPS65218_REGULATOR("DCDC6", "regulator-dcdc6", TPS65218_DCDC_6,
|
||||
REGULATOR_VOLTAGE, tps65218_dcdc56_pmic_ops, 1, -1,
|
||||
-1, TPS65218_REG_ENABLE1, TPS65218_ENABLE1_DC6_EN, 0,
|
||||
0, NULL, 0, 0, 1800000, TPS65218_REG_SEQ5,
|
||||
TPS65218_SEQ5_DC6_SEQ_MASK),
|
||||
TPS65218_SEQ5_DC6_SEQ_MASK, NULL, 0),
|
||||
TPS65218_REGULATOR("LDO1", "regulator-ldo1", TPS65218_LDO_1,
|
||||
REGULATOR_VOLTAGE, tps65218_ldo1_dcdc34_ops, 64,
|
||||
TPS65218_REG_CONTROL_LDO1,
|
||||
TPS65218_CONTROL_LDO1_MASK, TPS65218_REG_ENABLE2,
|
||||
TPS65218_ENABLE2_LDO1_EN, 0, 0, ldo1_dcdc3_ranges,
|
||||
2, 0, 0, TPS65218_REG_SEQ6,
|
||||
TPS65218_SEQ6_LDO1_SEQ_MASK),
|
||||
TPS65218_SEQ6_LDO1_SEQ_MASK, NULL, 0),
|
||||
TPS65218_REGULATOR("LS2", "regulator-ls2", TPS65218_LS_2,
|
||||
REGULATOR_CURRENT, tps65218_ls23_ops, 0, 0, 0,
|
||||
TPS65218_REG_ENABLE2, TPS65218_ENABLE2_LS2_EN,
|
||||
TPS65218_REG_CONFIG2, TPS65218_CONFIG2_LS2ILIM_MASK,
|
||||
NULL, 0, 0, 0, 0, 0),
|
||||
NULL, 0, 0, 0, 0, 0, ls3_currents,
|
||||
ARRAY_SIZE(ls3_currents)),
|
||||
TPS65218_REGULATOR("LS3", "regulator-ls3", TPS65218_LS_3,
|
||||
REGULATOR_CURRENT, tps65218_ls23_ops, 0, 0, 0,
|
||||
TPS65218_REG_ENABLE2, TPS65218_ENABLE2_LS3_EN,
|
||||
TPS65218_REG_CONFIG2, TPS65218_CONFIG2_LS3ILIM_MASK,
|
||||
NULL, 0, 0, 0, 0, 0),
|
||||
NULL, 0, 0, 0, 0, 0, ls3_currents,
|
||||
ARRAY_SIZE(ls3_currents)),
|
||||
};
|
||||
|
||||
static int tps65218_regulator_probe(struct platform_device *pdev)
|
||||
|
|
Loading…
Reference in New Issue