aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Reichel <sebastian.reichel@collabora.co.uk>2017-07-10 10:33:39 -0400
committerMark Brown <broonie@kernel.org>2017-07-17 07:12:58 -0400
commit91a024e80336528d12b67b5a2e636b9e4467d3ec (patch)
tree9947cedd4d0fc53ffdf430d4cf0fe0bc06e4c11b
parent5771a8c08880cdca3bfb4a3fc6d309d6bba20877 (diff)
regulator: cpcap: Fix standby mode
The original patch from Tony uses standby mode bit inverted, which is not correct. This fixes all instances in the driver code for get & set mode. This did not yet make problems, since mode has not been changed by any mainline driver so far. Fixes: 0ad4c07edd41 ("regulator: cpcap: Add basic regulator support") Acked-by: Tony Lindgren <tony@atomide.com> Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.co.uk> Signed-off-by: Mark Brown <broonie@kernel.org> Cc: stable@vger.kernel.org
-rw-r--r--drivers/regulator/cpcap-regulator.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/regulator/cpcap-regulator.c b/drivers/regulator/cpcap-regulator.c
index cc98aceed1c1..ce1cab320f6f 100644
--- a/drivers/regulator/cpcap-regulator.c
+++ b/drivers/regulator/cpcap-regulator.c
@@ -77,6 +77,8 @@
77#define CPCAP_BIT_VAUDIO_MODE0 BIT(1) 77#define CPCAP_BIT_VAUDIO_MODE0 BIT(1)
78#define CPCAP_BIT_V_AUDIO_EN BIT(0) 78#define CPCAP_BIT_V_AUDIO_EN BIT(0)
79 79
80#define CPCAP_BIT_AUDIO_NORMAL_MODE 0x00
81
80/* 82/*
81 * Off mode configuration bit. Used currently only by SW5 on omap4. There's 83 * Off mode configuration bit. Used currently only by SW5 on omap4. There's
82 * the following comment in Motorola Linux kernel tree for it: 84 * the following comment in Motorola Linux kernel tree for it:
@@ -217,7 +219,7 @@ static unsigned int cpcap_regulator_get_mode(struct regulator_dev *rdev)
217 219
218 regmap_read(rdev->regmap, rdev->desc->enable_reg, &value); 220 regmap_read(rdev->regmap, rdev->desc->enable_reg, &value);
219 221
220 if (!(value & CPCAP_BIT_AUDIO_LOW_PWR)) 222 if (value & CPCAP_BIT_AUDIO_LOW_PWR)
221 return REGULATOR_MODE_STANDBY; 223 return REGULATOR_MODE_STANDBY;
222 224
223 return REGULATOR_MODE_NORMAL; 225 return REGULATOR_MODE_NORMAL;
@@ -230,10 +232,10 @@ static int cpcap_regulator_set_mode(struct regulator_dev *rdev,
230 232
231 switch (mode) { 233 switch (mode) {
232 case REGULATOR_MODE_NORMAL: 234 case REGULATOR_MODE_NORMAL:
233 value = CPCAP_BIT_AUDIO_LOW_PWR; 235 value = CPCAP_BIT_AUDIO_NORMAL_MODE;
234 break; 236 break;
235 case REGULATOR_MODE_STANDBY: 237 case REGULATOR_MODE_STANDBY:
236 value = 0; 238 value = CPCAP_BIT_AUDIO_LOW_PWR;
237 break; 239 break;
238 default: 240 default:
239 return -EINVAL; 241 return -EINVAL;