Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1440927 > unrolled thread

[PATCH 0/3] Fixes for RPM SMD regulator voltage ranges

Started byStephen Boyd <sboyd@codeaurora.org>
First post2016-07-12 00:00 +0200
Last post2016-07-12 00:40 +0200
Articles 8 — 3 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH 0/3] Fixes for RPM SMD regulator voltage ranges Stephen Boyd <sboyd@codeaurora.org> - 2016-07-12 00:00 +0200
    [PATCH 1/3] regulator: qcom_smd: Fix voltage ranges for pm8x41 Stephen Boyd <sboyd@codeaurora.org> - 2016-07-12 00:00 +0200
      Re: [PATCH 1/3] regulator: qcom_smd: Fix voltage ranges for pm8x41 Andy Gross <andy.gross@linaro.org> - 2016-07-12 00:50 +0200
    [PATCH 3/3] regulator: qcom_smd: Avoid overlapping linear voltage ranges Stephen Boyd <sboyd@codeaurora.org> - 2016-07-12 00:00 +0200
      Re: [PATCH 3/3] regulator: qcom_smd: Avoid overlapping linear  voltage ranges Andy Gross <andy.gross@linaro.org> - 2016-07-12 00:50 +0200
      Applied "regulator: qcom_smd: Avoid overlapping linear voltage ranges" to the regulator tree Mark Brown <broonie@kernel.org> - 2016-07-12 11:10 +0200
    [PATCH 2/3] regulator: qcom_smd: Fix voltage ranges for pma8084 ftsmps and pldo Stephen Boyd <sboyd@codeaurora.org> - 2016-07-12 00:00 +0200
      Re: [PATCH 2/3] regulator: qcom_smd: Fix voltage ranges for pma8084  ftsmps and pldo Andy Gross <andy.gross@linaro.org> - 2016-07-12 00:40 +0200

#1440927 — [PATCH 0/3] Fixes for RPM SMD regulator voltage ranges

FromStephen Boyd <sboyd@codeaurora.org>
Date2016-07-12 00:00 +0200
Subject[PATCH 0/3] Fixes for RPM SMD regulator voltage ranges
Message-ID<rTRp8-4gA-23@gated-at.bofh.it>
The voltage ranges listed in the RPM SMD regulator driver
aren't correct. This series makes the voltage range tables
match what the hardware supports. That fixes a problem
where pm8941 l24 fails to be set at 3.075V when the hardware
really supports it.

Stephen Boyd (3):
  regulator: qcom_smd: Fix voltage ranges for pm8x41
  regulator: qcom_smd: Fix voltage ranges for pma8084 ftsmps and pldo
  regulator: qcom_smd: Avoid overlapping linear voltage ranges

 drivers/regulator/qcom_smd-regulator.c | 32 +++++++++++++++++---------------
 1 file changed, 17 insertions(+), 15 deletions(-)

-- 
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project

[toc] | [next] | [standalone]


#1440929 — [PATCH 1/3] regulator: qcom_smd: Fix voltage ranges for pm8x41

FromStephen Boyd <sboyd@codeaurora.org>
Date2016-07-12 00:00 +0200
Subject[PATCH 1/3] regulator: qcom_smd: Fix voltage ranges for pm8x41
Message-ID<rTRp8-4gA-31@gated-at.bofh.it>
In reply to#1440927
The voltage ranges listed here are wrong. The correct ranges can
be seen in the "native" spmi regulator driver
qcom_spmi-regulator.c at pldo_ranges[], ftsmps_ranges[] and
boost_ranges[] for the pldo, ftsmps, and boost type regulators.
Port these ranges over to the RPM SMD regulator driver so that we
list the appropriate set of supported voltages on pldos.

Doing this allows us to specify a voltage like 3075000 for l24,
whereas before that wasn't a supported voltage.

Cc: Andy Gross <andy.gross@linaro.org>
Cc: Bjorn Andersson <bjorn.andersson@linaro.org>
Fixes: da65e367b67e ("regulator: Regulator driver for the Qualcomm RPM")
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
---
 drivers/regulator/qcom_smd-regulator.c | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

diff --git a/drivers/regulator/qcom_smd-regulator.c b/drivers/regulator/qcom_smd-regulator.c
index 6c7fe4778793..6aa6435b3922 100644
--- a/drivers/regulator/qcom_smd-regulator.c
+++ b/drivers/regulator/qcom_smd-regulator.c
@@ -221,29 +221,30 @@ static const struct regulator_desc pm8x41_hfsmps = {
 static const struct regulator_desc pm8841_ftsmps = {
 	.linear_ranges = (struct regulator_linear_range[]) {
 		REGULATOR_LINEAR_RANGE(350000,  0, 184, 5000),
-		REGULATOR_LINEAR_RANGE(700000, 185, 339, 10000),
+		REGULATOR_LINEAR_RANGE(1280000, 185, 261, 10000),
 	},
 	.n_linear_ranges = 2,
-	.n_voltages = 340,
+	.n_voltages = 262,
 	.ops = &rpm_smps_ldo_ops,
 };
 
 static const struct regulator_desc pm8941_boost = {
 	.linear_ranges = (struct regulator_linear_range[]) {
-		REGULATOR_LINEAR_RANGE(4000000, 0, 15, 100000),
+		REGULATOR_LINEAR_RANGE(4000000, 0, 30, 50000),
 	},
 	.n_linear_ranges = 1,
-	.n_voltages = 16,
+	.n_voltages = 31,
 	.ops = &rpm_smps_ldo_ops,
 };
 
 static const struct regulator_desc pm8941_pldo = {
 	.linear_ranges = (struct regulator_linear_range[]) {
-		REGULATOR_LINEAR_RANGE( 750000,  0,  30, 25000),
-		REGULATOR_LINEAR_RANGE(1500000, 31, 99, 50000),
+		REGULATOR_LINEAR_RANGE( 750000,  0,  63, 12500),
+		REGULATOR_LINEAR_RANGE(1550000, 64, 126, 25000),
+		REGULATOR_LINEAR_RANGE(3100000, 127, 163, 50000),
 	},
-	.n_linear_ranges = 2,
-	.n_voltages = 100,
+	.n_linear_ranges = 3,
+	.n_voltages = 164,
 	.ops = &rpm_smps_ldo_ops,
 };
 
-- 
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project

[toc] | [prev] | [next] | [standalone]


#1440956 — Re: [PATCH 1/3] regulator: qcom_smd: Fix voltage ranges for pm8x41

FromAndy Gross <andy.gross@linaro.org>
Date2016-07-12 00:50 +0200
SubjectRe: [PATCH 1/3] regulator: qcom_smd: Fix voltage ranges for pm8x41
Message-ID<rTSbw-4P8-17@gated-at.bofh.it>
In reply to#1440929
On Mon, Jul 11, 2016 at 02:50:07PM -0700, Stephen Boyd wrote:
> The voltage ranges listed here are wrong. The correct ranges can
> be seen in the "native" spmi regulator driver
> qcom_spmi-regulator.c at pldo_ranges[], ftsmps_ranges[] and
> boost_ranges[] for the pldo, ftsmps, and boost type regulators.
> Port these ranges over to the RPM SMD regulator driver so that we
> list the appropriate set of supported voltages on pldos.
> 
> Doing this allows us to specify a voltage like 3075000 for l24,
> whereas before that wasn't a supported voltage.
> 
> Cc: Andy Gross <andy.gross@linaro.org>
> Cc: Bjorn Andersson <bjorn.andersson@linaro.org>
> Fixes: da65e367b67e ("regulator: Regulator driver for the Qualcomm RPM")
> Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
> ---

<snip>

>  static const struct regulator_desc pm8941_pldo = {
>  	.linear_ranges = (struct regulator_linear_range[]) {
> -		REGULATOR_LINEAR_RANGE( 750000,  0,  30, 25000),
> -		REGULATOR_LINEAR_RANGE(1500000, 31, 99, 50000),
> +		REGULATOR_LINEAR_RANGE( 750000,  0,  63, 12500),
> +		REGULATOR_LINEAR_RANGE(1550000, 64, 126, 25000),
> +		REGULATOR_LINEAR_RANGE(3100000, 127, 163, 50000),
>  	},
> -	.n_linear_ranges = 2,
> -	.n_voltages = 100,
> +	.n_linear_ranges = 3,
> +	.n_voltages = 164,
>  	.ops = &rpm_smps_ldo_ops,
>  };

Still a little confused on if the 12.5mV is allowed on pmos ldo.  It seems like the
nmos has 1 range of 5mV steps.  The PMOS has 2 ranges, using 25mV and 50mV


Regards,

Andy

[toc] | [prev] | [next] | [standalone]


#1440930 — [PATCH 3/3] regulator: qcom_smd: Avoid overlapping linear voltage ranges

FromStephen Boyd <sboyd@codeaurora.org>
Date2016-07-12 00:00 +0200
Subject[PATCH 3/3] regulator: qcom_smd: Avoid overlapping linear voltage ranges
Message-ID<rTRp8-4gA-35@gated-at.bofh.it>
In reply to#1440927
The pm8x41_hfsmps ranges overlap. The first range is from 375000
to 1562500:

 375000 + (95 * 12500) == 1562500

and the second range starts at 1550000. Interestingly, the second
range ends at the correct value when it's set to be the
appropriate start value, 1575000:

 1575000 + ((158 - 96) * 25000) == 3125000

Cc: Andy Gross <andy.gross@linaro.org>
Cc: Bjorn Andersson <bjorn.andersson@linaro.org>
Fixes: da65e367b67e ("regulator: Regulator driver for the Qualcomm RPM")
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
---
 drivers/regulator/qcom_smd-regulator.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/regulator/qcom_smd-regulator.c b/drivers/regulator/qcom_smd-regulator.c
index 891ae44a49c2..8ed46a9a55c8 100644
--- a/drivers/regulator/qcom_smd-regulator.c
+++ b/drivers/regulator/qcom_smd-regulator.c
@@ -212,7 +212,7 @@ static const struct regulator_desc pma8084_switch = {
 static const struct regulator_desc pm8x41_hfsmps = {
 	.linear_ranges = (struct regulator_linear_range[]) {
 		REGULATOR_LINEAR_RANGE( 375000,  0,  95, 12500),
-		REGULATOR_LINEAR_RANGE(1550000, 96, 158, 25000),
+		REGULATOR_LINEAR_RANGE(1575000, 96, 158, 25000),
 	},
 	.n_linear_ranges = 2,
 	.n_voltages = 159,
-- 
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project

[toc] | [prev] | [next] | [standalone]


#1440954 — Re: [PATCH 3/3] regulator: qcom_smd: Avoid overlapping linear voltage ranges

FromAndy Gross <andy.gross@linaro.org>
Date2016-07-12 00:50 +0200
SubjectRe: [PATCH 3/3] regulator: qcom_smd: Avoid overlapping linear voltage ranges
Message-ID<rTSbv-4P8-1@gated-at.bofh.it>
In reply to#1440930
On Mon, Jul 11, 2016 at 02:50:09PM -0700, Stephen Boyd wrote:
> The pm8x41_hfsmps ranges overlap. The first range is from 375000
> to 1562500:
> 
>  375000 + (95 * 12500) == 1562500
> 
> and the second range starts at 1550000. Interestingly, the second
> range ends at the correct value when it's set to be the
> appropriate start value, 1575000:
> 
>  1575000 + ((158 - 96) * 25000) == 3125000
> 
> Cc: Andy Gross <andy.gross@linaro.org>
> Cc: Bjorn Andersson <bjorn.andersson@linaro.org>
> Fixes: da65e367b67e ("regulator: Regulator driver for the Qualcomm RPM")
> Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
> ---

Reviewed-by: Andy Gross <andy.gross@linaro.org>

[toc] | [prev] | [next] | [standalone]


#1441154 — Applied "regulator: qcom_smd: Avoid overlapping linear voltage ranges" to the regulator tree

FromMark Brown <broonie@kernel.org>
Date2016-07-12 11:10 +0200
SubjectApplied "regulator: qcom_smd: Avoid overlapping linear voltage ranges" to the regulator tree
Message-ID<rU1Rw-2SM-3@gated-at.bofh.it>
In reply to#1440930
The patch

   regulator: qcom_smd: Avoid overlapping linear voltage ranges

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 b7a8524cfae0b3bde80be38c171e4ecac8ba527e Mon Sep 17 00:00:00 2001
From: Stephen Boyd <sboyd@codeaurora.org>
Date: Mon, 11 Jul 2016 14:50:09 -0700
Subject: [PATCH] regulator: qcom_smd: Avoid overlapping linear voltage ranges

The pm8x41_hfsmps ranges overlap. The first range is from 375000
to 1562500:

 375000 + (95 * 12500) == 1562500

and the second range starts at 1550000. Interestingly, the second
range ends at the correct value when it's set to be the
appropriate start value, 1575000:

 1575000 + ((158 - 96) * 25000) == 3125000

Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
Reviewed-by: Andy Gross <andy.gross@linaro.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
---
 drivers/regulator/qcom_smd-regulator.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/regulator/qcom_smd-regulator.c b/drivers/regulator/qcom_smd-regulator.c
index 6c7fe4778793..5022fa8d10c6 100644
--- a/drivers/regulator/qcom_smd-regulator.c
+++ b/drivers/regulator/qcom_smd-regulator.c
@@ -211,7 +211,7 @@ static const struct regulator_desc pma8084_switch = {
 static const struct regulator_desc pm8x41_hfsmps = {
 	.linear_ranges = (struct regulator_linear_range[]) {
 		REGULATOR_LINEAR_RANGE( 375000,  0,  95, 12500),
-		REGULATOR_LINEAR_RANGE(1550000, 96, 158, 25000),
+		REGULATOR_LINEAR_RANGE(1575000, 96, 158, 25000),
 	},
 	.n_linear_ranges = 2,
 	.n_voltages = 159,
-- 
2.8.1

[toc] | [prev] | [next] | [standalone]


#1440931 — [PATCH 2/3] regulator: qcom_smd: Fix voltage ranges for pma8084 ftsmps and pldo

FromStephen Boyd <sboyd@codeaurora.org>
Date2016-07-12 00:00 +0200
Subject[PATCH 2/3] regulator: qcom_smd: Fix voltage ranges for pma8084 ftsmps and pldo
Message-ID<rTRp8-4gA-29@gated-at.bofh.it>
In reply to#1440927
The voltage ranges listed here are wrong. The pma8084 pldo
supports three different overlapping voltage ranges with
differing step sizes and the pma8084 ftsmps supports two. These
ranges can be seen in the "native" spmi regulator driver
(qcom_spmi-regulator.c) at pldo_ranges[] and ftsmps_ranges[]
respectively. Port these ranges over to the RPM SMD regulator
driver so that we list the appropriate set of supported voltages
on these types of regulators.

Cc: Andy Gross <andy.gross@linaro.org>
Cc: Bjorn Andersson <bjorn.andersson@linaro.org>
Fixes: ee01d0c91ef1 ("regulator: qcom-smd: Add support for PMA8084")
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
---
 drivers/regulator/qcom_smd-regulator.c | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/drivers/regulator/qcom_smd-regulator.c b/drivers/regulator/qcom_smd-regulator.c
index 6aa6435b3922..891ae44a49c2 100644
--- a/drivers/regulator/qcom_smd-regulator.c
+++ b/drivers/regulator/qcom_smd-regulator.c
@@ -178,20 +178,21 @@ static const struct regulator_desc pma8084_hfsmps = {
 static const struct regulator_desc pma8084_ftsmps = {
 	.linear_ranges = (struct regulator_linear_range[]) {
 		REGULATOR_LINEAR_RANGE(350000,  0, 184, 5000),
-		REGULATOR_LINEAR_RANGE(700000, 185, 339, 10000),
+		REGULATOR_LINEAR_RANGE(1280000, 185, 261, 10000),
 	},
 	.n_linear_ranges = 2,
-	.n_voltages = 340,
+	.n_voltages = 262,
 	.ops = &rpm_smps_ldo_ops,
 };
 
 static const struct regulator_desc pma8084_pldo = {
 	.linear_ranges = (struct regulator_linear_range[]) {
-		REGULATOR_LINEAR_RANGE(750000,  0,  30, 25000),
-		REGULATOR_LINEAR_RANGE(1500000, 31, 99, 50000),
+		REGULATOR_LINEAR_RANGE( 750000,  0,  63, 12500),
+		REGULATOR_LINEAR_RANGE(1550000, 64, 126, 25000),
+		REGULATOR_LINEAR_RANGE(3100000, 127, 163, 50000),
 	},
-	.n_linear_ranges = 2,
-	.n_voltages = 100,
+	.n_linear_ranges = 3,
+	.n_voltages = 164,
 	.ops = &rpm_smps_ldo_ops,
 };
 
-- 
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project

[toc] | [prev] | [next] | [standalone]


#1440952 — Re: [PATCH 2/3] regulator: qcom_smd: Fix voltage ranges for pma8084 ftsmps and pldo

FromAndy Gross <andy.gross@linaro.org>
Date2016-07-12 00:40 +0200
SubjectRe: [PATCH 2/3] regulator: qcom_smd: Fix voltage ranges for pma8084 ftsmps and pldo
Message-ID<rTS1Q-4LO-35@gated-at.bofh.it>
In reply to#1440931
On Mon, Jul 11, 2016 at 02:50:08PM -0700, Stephen Boyd wrote:
> The voltage ranges listed here are wrong. The pma8084 pldo
> supports three different overlapping voltage ranges with
> differing step sizes and the pma8084 ftsmps supports two. These
> ranges can be seen in the "native" spmi regulator driver
> (qcom_spmi-regulator.c) at pldo_ranges[] and ftsmps_ranges[]
> respectively. Port these ranges over to the RPM SMD regulator
> driver so that we list the appropriate set of supported voltages
> on these types of regulators.
> 
> Cc: Andy Gross <andy.gross@linaro.org>
> Cc: Bjorn Andersson <bjorn.andersson@linaro.org>
> Fixes: ee01d0c91ef1 ("regulator: qcom-smd: Add support for PMA8084")
> Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>

<snip>

>  static const struct regulator_desc pma8084_pldo = {
>  	.linear_ranges = (struct regulator_linear_range[]) {
> -		REGULATOR_LINEAR_RANGE(750000,  0,  30, 25000),
> -		REGULATOR_LINEAR_RANGE(1500000, 31, 99, 50000),
> +		REGULATOR_LINEAR_RANGE( 750000,  0,  63, 12500),

It was my understanding that the PMOS ldos only support 25mV and 50mV
incremements.

> +		REGULATOR_LINEAR_RANGE(1550000, 64, 126, 25000),
> +		REGULATOR_LINEAR_RANGE(3100000, 127, 163, 50000),
>  	},
> -	.n_linear_ranges = 2,
> -	.n_voltages = 100,
> +	.n_linear_ranges = 3,
> +	.n_voltages = 164,
>  	.ops = &rpm_smps_ldo_ops,

Regards,

Andy

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web