linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCHv2 0/3] regulator: cpcap: Fix standby mode
@ 2017-07-10 14:33 Sebastian Reichel
  2017-07-10 14:33 ` [PATCHv2 1/3] " Sebastian Reichel
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Sebastian Reichel @ 2017-07-10 14:33 UTC (permalink / raw)
  To: Sebastian Reichel, Liam Girdwood, Mark Brown, Tony Lindgren
  Cc: linux-kernel, linux-omap, Sebastian Reichel

Hi,

This fixes standby mode of vaudio on Motorola Droid 4.

Changes since PATCHv1:
 * return -EINVAL for invalid modes
 * Split driver change into two patches, since two things are changed
 * Add Acked-by from Tony

-- Sebastian

Sebastian Reichel (3):
  regulator: cpcap: Fix standby mode
  regulator: cpcap: Add OF mode mapping
  ARM: dts: motorola-cpcap-mapphone: set initial mode for vaudio

 arch/arm/boot/dts/motorola-cpcap-mapphone.dtsi |  1 +
 drivers/regulator/cpcap-regulator.c            | 21 ++++++++++++++++++---
 2 files changed, 19 insertions(+), 3 deletions(-)

-- 
2.13.2

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCHv2 1/3] regulator: cpcap: Fix standby mode
  2017-07-10 14:33 [PATCHv2 0/3] regulator: cpcap: Fix standby mode Sebastian Reichel
@ 2017-07-10 14:33 ` Sebastian Reichel
  2017-07-10 18:42   ` Applied "regulator: cpcap: Fix standby mode" to the regulator tree Mark Brown
  2017-07-10 14:33 ` [PATCHv2 2/3] regulator: cpcap: Add OF mode mapping Sebastian Reichel
  2017-07-10 14:33 ` [PATCHv2 3/3] ARM: dts: motorola-cpcap-mapphone: set initial mode for vaudio Sebastian Reichel
  2 siblings, 1 reply; 7+ messages in thread
From: Sebastian Reichel @ 2017-07-10 14:33 UTC (permalink / raw)
  To: Sebastian Reichel, Liam Girdwood, Mark Brown, Tony Lindgren
  Cc: linux-kernel, linux-omap, Sebastian Reichel

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>
---
 drivers/regulator/cpcap-regulator.c | 8 +++++---
 1 file 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 @@
 #define CPCAP_BIT_VAUDIO_MODE0		BIT(1)
 #define CPCAP_BIT_V_AUDIO_EN		BIT(0)
 
+#define CPCAP_BIT_AUDIO_NORMAL_MODE	0x00
+
 /*
  * Off mode configuration bit. Used currently only by SW5 on omap4. There's
  * 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)
 
 	regmap_read(rdev->regmap, rdev->desc->enable_reg, &value);
 
-	if (!(value & CPCAP_BIT_AUDIO_LOW_PWR))
+	if (value & CPCAP_BIT_AUDIO_LOW_PWR)
 		return REGULATOR_MODE_STANDBY;
 
 	return REGULATOR_MODE_NORMAL;
@@ -230,10 +232,10 @@ static int cpcap_regulator_set_mode(struct regulator_dev *rdev,
 
 	switch (mode) {
 	case REGULATOR_MODE_NORMAL:
-		value = CPCAP_BIT_AUDIO_LOW_PWR;
+		value = CPCAP_BIT_AUDIO_NORMAL_MODE;
 		break;
 	case REGULATOR_MODE_STANDBY:
-		value = 0;
+		value = CPCAP_BIT_AUDIO_LOW_PWR;
 		break;
 	default:
 		return -EINVAL;
-- 
2.13.2

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCHv2 2/3] regulator: cpcap: Add OF mode mapping
  2017-07-10 14:33 [PATCHv2 0/3] regulator: cpcap: Fix standby mode Sebastian Reichel
  2017-07-10 14:33 ` [PATCHv2 1/3] " Sebastian Reichel
@ 2017-07-10 14:33 ` Sebastian Reichel
  2017-07-10 18:42   ` Applied "regulator: cpcap: Add OF mode mapping" to the regulator tree Mark Brown
  2017-07-10 14:33 ` [PATCHv2 3/3] ARM: dts: motorola-cpcap-mapphone: set initial mode for vaudio Sebastian Reichel
  2 siblings, 1 reply; 7+ messages in thread
From: Sebastian Reichel @ 2017-07-10 14:33 UTC (permalink / raw)
  To: Sebastian Reichel, Liam Girdwood, Mark Brown, Tony Lindgren
  Cc: linux-kernel, linux-omap, Sebastian Reichel

Add device tree mode mapping capabilities to the cpcap driver.

Acked-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.co.uk>
---
 drivers/regulator/cpcap-regulator.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/drivers/regulator/cpcap-regulator.c b/drivers/regulator/cpcap-regulator.c
index ce1cab320f6f..f541b80f1b54 100644
--- a/drivers/regulator/cpcap-regulator.c
+++ b/drivers/regulator/cpcap-regulator.c
@@ -123,6 +123,7 @@ struct cpcap_regulator {
 		.enable_val = (mode_val),				\
 		.disable_val = (off_val),				\
 		.ramp_delay = (volt_trans_time),			\
+		.of_map_mode = cpcap_map_mode,				\
 	},								\
 	.assign_reg = (assignment_reg),					\
 	.assign_mask = (assignment_mask),				\
@@ -213,6 +214,18 @@ static int cpcap_regulator_disable(struct regulator_dev *rdev)
 	return error;
 }
 
+static unsigned int cpcap_map_mode(unsigned int mode)
+{
+	switch (mode) {
+	case CPCAP_BIT_AUDIO_NORMAL_MODE:
+		return REGULATOR_MODE_NORMAL;
+	case CPCAP_BIT_AUDIO_LOW_PWR:
+		return REGULATOR_MODE_STANDBY;
+	default:
+		return -EINVAL;
+	}
+}
+
 static unsigned int cpcap_regulator_get_mode(struct regulator_dev *rdev)
 {
 	int value;
-- 
2.13.2

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCHv2 3/3] ARM: dts: motorola-cpcap-mapphone: set initial mode for vaudio
  2017-07-10 14:33 [PATCHv2 0/3] regulator: cpcap: Fix standby mode Sebastian Reichel
  2017-07-10 14:33 ` [PATCHv2 1/3] " Sebastian Reichel
  2017-07-10 14:33 ` [PATCHv2 2/3] regulator: cpcap: Add OF mode mapping Sebastian Reichel
@ 2017-07-10 14:33 ` Sebastian Reichel
  2017-08-10 16:45   ` Tony Lindgren
  2 siblings, 1 reply; 7+ messages in thread
From: Sebastian Reichel @ 2017-07-10 14:33 UTC (permalink / raw)
  To: Sebastian Reichel, Liam Girdwood, Mark Brown, Tony Lindgren
  Cc: linux-kernel, linux-omap, Sebastian Reichel

Set default mode for vaudio, which may be left in standby mode
if the system is booted via kexec from Android.

Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.co.uk>
---
 arch/arm/boot/dts/motorola-cpcap-mapphone.dtsi | 1 +
 1 file changed, 1 insertion(+)

diff --git a/arch/arm/boot/dts/motorola-cpcap-mapphone.dtsi b/arch/arm/boot/dts/motorola-cpcap-mapphone.dtsi
index 86033aee8a29..7c6d61fb5cf2 100644
--- a/arch/arm/boot/dts/motorola-cpcap-mapphone.dtsi
+++ b/arch/arm/boot/dts/motorola-cpcap-mapphone.dtsi
@@ -261,5 +261,6 @@
 		regulator-min-microvolt = <2775000>;
 		regulator-max-microvolt = <2775000>;
 		regulator-enable-ramp-delay = <1000>;
+		regulator-initial-mode = <0x00>; /* NORMAL */
 	};
 };
-- 
2.13.2

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Applied "regulator: cpcap: Add OF mode mapping" to the regulator tree
  2017-07-10 14:33 ` [PATCHv2 2/3] regulator: cpcap: Add OF mode mapping Sebastian Reichel
@ 2017-07-10 18:42   ` Mark Brown
  0 siblings, 0 replies; 7+ messages in thread
From: Mark Brown @ 2017-07-10 18:42 UTC (permalink / raw)
  To: Sebastian Reichel
  Cc: Tony Lindgren, Mark Brown, Sebastian Reichel, Liam Girdwood,
	Mark Brown, Tony Lindgren, linux-kernel, linux-omap,
	linux-kernel

The patch

   regulator: cpcap: Add OF mode mapping

has been applied to the regulator tree at

   git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator.git 

All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.  

You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying
to this mail.

Thanks,
Mark

>From 8c02843cb0f9f2c8857d9228ec56ce931e957f62 Mon Sep 17 00:00:00 2001
From: Sebastian Reichel <sebastian.reichel@collabora.co.uk>
Date: Mon, 10 Jul 2017 16:33:40 +0200
Subject: [PATCH] regulator: cpcap: Add OF mode mapping

Add device tree mode mapping capabilities to the cpcap driver.

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>
---
 drivers/regulator/cpcap-regulator.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/drivers/regulator/cpcap-regulator.c b/drivers/regulator/cpcap-regulator.c
index ce1cab320f6f..f541b80f1b54 100644
--- a/drivers/regulator/cpcap-regulator.c
+++ b/drivers/regulator/cpcap-regulator.c
@@ -123,6 +123,7 @@ struct cpcap_regulator {
 		.enable_val = (mode_val),				\
 		.disable_val = (off_val),				\
 		.ramp_delay = (volt_trans_time),			\
+		.of_map_mode = cpcap_map_mode,				\
 	},								\
 	.assign_reg = (assignment_reg),					\
 	.assign_mask = (assignment_mask),				\
@@ -213,6 +214,18 @@ static int cpcap_regulator_disable(struct regulator_dev *rdev)
 	return error;
 }
 
+static unsigned int cpcap_map_mode(unsigned int mode)
+{
+	switch (mode) {
+	case CPCAP_BIT_AUDIO_NORMAL_MODE:
+		return REGULATOR_MODE_NORMAL;
+	case CPCAP_BIT_AUDIO_LOW_PWR:
+		return REGULATOR_MODE_STANDBY;
+	default:
+		return -EINVAL;
+	}
+}
+
 static unsigned int cpcap_regulator_get_mode(struct regulator_dev *rdev)
 {
 	int value;
-- 
2.13.2

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Applied "regulator: cpcap: Fix standby mode" to the regulator tree
  2017-07-10 14:33 ` [PATCHv2 1/3] " Sebastian Reichel
@ 2017-07-10 18:42   ` Mark Brown
  0 siblings, 0 replies; 7+ messages in thread
From: Mark Brown @ 2017-07-10 18:42 UTC (permalink / raw)
  To: Sebastian Reichel
  Cc: Tony Lindgren, Mark Brown, stable, Sebastian Reichel,
	Liam Girdwood, Mark Brown, Tony Lindgren, linux-kernel,
	linux-omap, linux-kernel

The patch

   regulator: cpcap: Fix standby mode

has been applied to the regulator tree at

   git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator.git 

All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.  

You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying
to this mail.

Thanks,
Mark

>From 4ebb9d7f901027e1740f69829cf10af0193e8e17 Mon Sep 17 00:00:00 2001
From: Sebastian Reichel <sebastian.reichel@collabora.co.uk>
Date: Mon, 10 Jul 2017 16:33:39 +0200
Subject: [PATCH] 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
---
 drivers/regulator/cpcap-regulator.c | 8 +++++---
 1 file 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 @@
 #define CPCAP_BIT_VAUDIO_MODE0		BIT(1)
 #define CPCAP_BIT_V_AUDIO_EN		BIT(0)
 
+#define CPCAP_BIT_AUDIO_NORMAL_MODE	0x00
+
 /*
  * Off mode configuration bit. Used currently only by SW5 on omap4. There's
  * 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)
 
 	regmap_read(rdev->regmap, rdev->desc->enable_reg, &value);
 
-	if (!(value & CPCAP_BIT_AUDIO_LOW_PWR))
+	if (value & CPCAP_BIT_AUDIO_LOW_PWR)
 		return REGULATOR_MODE_STANDBY;
 
 	return REGULATOR_MODE_NORMAL;
@@ -230,10 +232,10 @@ static int cpcap_regulator_set_mode(struct regulator_dev *rdev,
 
 	switch (mode) {
 	case REGULATOR_MODE_NORMAL:
-		value = CPCAP_BIT_AUDIO_LOW_PWR;
+		value = CPCAP_BIT_AUDIO_NORMAL_MODE;
 		break;
 	case REGULATOR_MODE_STANDBY:
-		value = 0;
+		value = CPCAP_BIT_AUDIO_LOW_PWR;
 		break;
 	default:
 		return -EINVAL;
-- 
2.13.2

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCHv2 3/3] ARM: dts: motorola-cpcap-mapphone: set initial mode for vaudio
  2017-07-10 14:33 ` [PATCHv2 3/3] ARM: dts: motorola-cpcap-mapphone: set initial mode for vaudio Sebastian Reichel
@ 2017-08-10 16:45   ` Tony Lindgren
  0 siblings, 0 replies; 7+ messages in thread
From: Tony Lindgren @ 2017-08-10 16:45 UTC (permalink / raw)
  To: Sebastian Reichel
  Cc: Sebastian Reichel, Liam Girdwood, Mark Brown, linux-kernel, linux-omap

* Sebastian Reichel <sebastian.reichel@collabora.co.uk> [170710 07:34]:
> Set default mode for vaudio, which may be left in standby mode
> if the system is booted via kexec from Android.

Applying into omap-for-v4.14/dt thanks.

Tony

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2017-08-10 16:46 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-07-10 14:33 [PATCHv2 0/3] regulator: cpcap: Fix standby mode Sebastian Reichel
2017-07-10 14:33 ` [PATCHv2 1/3] " Sebastian Reichel
2017-07-10 18:42   ` Applied "regulator: cpcap: Fix standby mode" to the regulator tree Mark Brown
2017-07-10 14:33 ` [PATCHv2 2/3] regulator: cpcap: Add OF mode mapping Sebastian Reichel
2017-07-10 18:42   ` Applied "regulator: cpcap: Add OF mode mapping" to the regulator tree Mark Brown
2017-07-10 14:33 ` [PATCHv2 3/3] ARM: dts: motorola-cpcap-mapphone: set initial mode for vaudio Sebastian Reichel
2017-08-10 16:45   ` Tony Lindgren

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).