aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Cochran <rcochran@linutronix.de>2017-04-17 10:23:36 +0200
committerSasha Levin <alexander.levin@verizon.com>2017-05-17 15:08:23 -0400
commit57b8e3a6524b856604576668bc012de63eeab5ad (patch)
treeee19e0242bb6cfb61d3685a5fedcf54bb7ab8cc3
parent1ff629068e6e0fe2270272e3976eefef00fa5cc7 (diff)
regulator: tps65023: Fix inverted core enable logic.
[ Upstream commit c90722b54a4f5e21ac59301ed9a6dbaa439bdb16 ] Commit 43530b69d758328d3ffe6ab98fd640463e8e3667 ("regulator: Use regmap_read/write(), regmap_update_bits functions directly") intended to replace working inline helper functions with standard regmap calls. However, it also inverted the set/clear logic of the "CORE ADJ Allowed" bit. That patch was clearly never tested, since without that bit cleared, the core VDCDC1 voltage output does not react to I2C configuration changes. This patch fixes the issue by clearing the bit as in the original, correct implementation. Note for stable back porting that, due to subsequent driver churn, this patch will not apply on every kernel version. Fixes: 43530b69d758 ("regulator: Use regmap_read/write(), regmap_update_bits functions directly") Signed-off-by: Richard Cochran <rcochran@linutronix.de> Signed-off-by: Mark Brown <broonie@kernel.org> Cc: stable@vger.kernel.org Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
-rw-r--r--drivers/regulator/tps65023-regulator.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/drivers/regulator/tps65023-regulator.c b/drivers/regulator/tps65023-regulator.c
index b941e564b3f3..03f263cb11c2 100644
--- a/drivers/regulator/tps65023-regulator.c
+++ b/drivers/regulator/tps65023-regulator.c
@@ -290,8 +290,7 @@ static int tps_65023_probe(struct i2c_client *client,
/* Enable setting output voltage by I2C */
regmap_update_bits(tps->regmap, TPS65023_REG_CON_CTRL2,
- TPS65023_REG_CTRL2_CORE_ADJ,
- TPS65023_REG_CTRL2_CORE_ADJ);
+ TPS65023_REG_CTRL2_CORE_ADJ, 0);
return 0;
}