summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAxel Lin <axel.lin@ingics.com>2020-02-12 16:02:23 +0100
committerMark Brown <broonie@kernel.org>2020-02-17 20:13:26 +0100
commit502cdd605edd95209661c8bf90927af6d05c011c (patch)
treeb2e1a0f9a70817d3332f5c6435a2056513f5cebf
parentregulator: da9062: Replace zero-length array with flexible-array member (diff)
downloadlinux-502cdd605edd95209661c8bf90927af6d05c011c.tar.xz
linux-502cdd605edd95209661c8bf90927af6d05c011c.zip
regulator: mp5416: Fix output discharge enable bit for LDOs
The .active_discharge_on/.active_discharge_mask settings does not match the datasheet, fix it. Signed-off-by: Axel Lin <axel.lin@ingics.com> Link: https://lore.kernel.org/r/20200212150223.20042-1-axel.lin@ingics.com Signed-off-by: Mark Brown <broonie@kernel.org>
-rw-r--r--drivers/regulator/mp5416.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/drivers/regulator/mp5416.c b/drivers/regulator/mp5416.c
index 7954ad17249b..67ce1b52a1a1 100644
--- a/drivers/regulator/mp5416.c
+++ b/drivers/regulator/mp5416.c
@@ -73,7 +73,7 @@
.owner = THIS_MODULE, \
}
-#define MP5416LDO(_name, _id) \
+#define MP5416LDO(_name, _id, _dval) \
[MP5416_LDO ## _id] = { \
.id = MP5416_LDO ## _id, \
.name = _name, \
@@ -87,9 +87,9 @@
.vsel_mask = MP5416_MASK_VSET, \
.enable_reg = MP5416_REG_LDO ##_id, \
.enable_mask = MP5416_REGULATOR_EN, \
- .active_discharge_on = BIT(_id), \
+ .active_discharge_on = _dval, \
.active_discharge_reg = MP5416_REG_CTL2, \
- .active_discharge_mask = BIT(_id), \
+ .active_discharge_mask = _dval, \
.owner = THIS_MODULE, \
}
@@ -155,10 +155,10 @@ static struct regulator_desc mp5416_regulators_desc[MP5416_MAX_REGULATORS] = {
MP5416BUCK("buck2", 2, mp5416_I_limits2, MP5416_REG_CTL1, BIT(1), 2),
MP5416BUCK("buck3", 3, mp5416_I_limits1, MP5416_REG_CTL1, BIT(2), 1),
MP5416BUCK("buck4", 4, mp5416_I_limits2, MP5416_REG_CTL2, BIT(5), 2),
- MP5416LDO("ldo1", 1),
- MP5416LDO("ldo2", 2),
- MP5416LDO("ldo3", 3),
- MP5416LDO("ldo4", 4),
+ MP5416LDO("ldo1", 1, BIT(4)),
+ MP5416LDO("ldo2", 2, BIT(3)),
+ MP5416LDO("ldo3", 3, BIT(2)),
+ MP5416LDO("ldo4", 4, BIT(1)),
};
/*