* [PATCH 0/3] Fixes for RPM SMD regulator voltage ranges @ 2016-07-11 21:50 Stephen Boyd 2016-07-11 21:50 ` [PATCH 1/3] regulator: qcom_smd: Fix voltage ranges for pm8x41 Stephen Boyd ` (2 more replies) 0 siblings, 3 replies; 16+ messages in thread From: Stephen Boyd @ 2016-07-11 21:50 UTC (permalink / raw) To: Mark Brown; +Cc: linux-kernel, linux-arm-msm, linux-arm-kernel 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 ^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH 1/3] regulator: qcom_smd: Fix voltage ranges for pm8x41 2016-07-11 21:50 [PATCH 0/3] Fixes for RPM SMD regulator voltage ranges Stephen Boyd @ 2016-07-11 21:50 ` Stephen Boyd 2016-07-11 22:48 ` Andy Gross 2016-08-05 12:09 ` Applied "regulator: qcom_smd: Fix voltage ranges for pm8x41" to the regulator tree Mark Brown 2016-07-11 21:50 ` [PATCH 2/3] regulator: qcom_smd: Fix voltage ranges for pma8084 ftsmps and pldo Stephen Boyd 2016-07-11 21:50 ` [PATCH 3/3] regulator: qcom_smd: Avoid overlapping linear voltage ranges Stephen Boyd 2 siblings, 2 replies; 16+ messages in thread From: Stephen Boyd @ 2016-07-11 21:50 UTC (permalink / raw) To: Mark Brown Cc: linux-kernel, linux-arm-msm, linux-arm-kernel, Andy Gross, Bjorn Andersson 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 ^ permalink raw reply related [flat|nested] 16+ messages in thread
* Re: [PATCH 1/3] regulator: qcom_smd: Fix voltage ranges for pm8x41 2016-07-11 21:50 ` [PATCH 1/3] regulator: qcom_smd: Fix voltage ranges for pm8x41 Stephen Boyd @ 2016-07-11 22:48 ` Andy Gross 2016-08-05 0:58 ` Stephen Boyd 2016-08-05 12:09 ` Applied "regulator: qcom_smd: Fix voltage ranges for pm8x41" to the regulator tree Mark Brown 1 sibling, 1 reply; 16+ messages in thread From: Andy Gross @ 2016-07-11 22:48 UTC (permalink / raw) To: Stephen Boyd Cc: Mark Brown, linux-kernel, linux-arm-msm, linux-arm-kernel, Bjorn Andersson 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 ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH 1/3] regulator: qcom_smd: Fix voltage ranges for pm8x41 2016-07-11 22:48 ` Andy Gross @ 2016-08-05 0:58 ` Stephen Boyd 2016-08-05 4:09 ` Andy Gross 0 siblings, 1 reply; 16+ messages in thread From: Stephen Boyd @ 2016-08-05 0:58 UTC (permalink / raw) To: Andy Gross Cc: Mark Brown, linux-kernel, linux-arm-msm, linux-arm-kernel, Bjorn Andersson On 07/11, Andy Gross wrote: > On Mon, Jul 11, 2016 at 02:50:07PM -0700, Stephen Boyd wrote: > > > 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 > The values I've put in these patches are the correct ranges. -- Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH 1/3] regulator: qcom_smd: Fix voltage ranges for pm8x41 2016-08-05 0:58 ` Stephen Boyd @ 2016-08-05 4:09 ` Andy Gross 0 siblings, 0 replies; 16+ messages in thread From: Andy Gross @ 2016-08-05 4:09 UTC (permalink / raw) To: Stephen Boyd Cc: Mark Brown, linux-kernel, linux-arm-msm, linux-arm-kernel, Bjorn Andersson On Thu, Aug 04, 2016 at 05:58:26PM -0700, Stephen Boyd wrote: > On 07/11, Andy Gross wrote: > > On Mon, Jul 11, 2016 at 02:50:07PM -0700, Stephen Boyd wrote: > > > > > 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 > > > > The values I've put in these patches are the correct ranges. Ok. As with the other patch: Reviewed-by: Andy Gross <andy.gross@linaro.org> ^ permalink raw reply [flat|nested] 16+ messages in thread
* Applied "regulator: qcom_smd: Fix voltage ranges for pm8x41" to the regulator tree 2016-07-11 21:50 ` [PATCH 1/3] regulator: qcom_smd: Fix voltage ranges for pm8x41 Stephen Boyd 2016-07-11 22:48 ` Andy Gross @ 2016-08-05 12:09 ` Mark Brown 2016-08-13 4:00 ` Bjorn Andersson 1 sibling, 1 reply; 16+ messages in thread From: Mark Brown @ 2016-08-05 12:09 UTC (permalink / raw) To: Stephen Boyd Cc: Mark Brown, Mark Brown, linux-kernel, linux-arm-msm, linux-arm-kernel, Andy Gross, Bjorn Andersson The patch regulator: qcom_smd: Fix voltage ranges for pm8x41 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 290284776bb281759b11faa287b8abccaf74bfcb Mon Sep 17 00:00:00 2001 From: Stephen Boyd <sboyd@codeaurora.org> Date: Mon, 11 Jul 2016 14:50:07 -0700 Subject: [PATCH] regulator: qcom_smd: Fix voltage ranges for pm8x41 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. 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> Signed-off-by: Mark Brown <broonie@kernel.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 5022fa8d10c6..47cd28e960db 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, }; -- 2.8.1 ^ permalink raw reply related [flat|nested] 16+ messages in thread
* Re: Applied "regulator: qcom_smd: Fix voltage ranges for pm8x41" to the regulator tree 2016-08-05 12:09 ` Applied "regulator: qcom_smd: Fix voltage ranges for pm8x41" to the regulator tree Mark Brown @ 2016-08-13 4:00 ` Bjorn Andersson 2016-08-15 12:51 ` Mark Brown 0 siblings, 1 reply; 16+ messages in thread From: Bjorn Andersson @ 2016-08-13 4:00 UTC (permalink / raw) To: Mark Brown Cc: Stephen Boyd, linux-kernel, linux-arm-msm, linux-arm-kernel, Andy Gross On Fri 05 Aug 05:09 PDT 2016, Mark Brown wrote: > The patch > > regulator: qcom_smd: Fix voltage ranges for pm8x41 > Hi Mark, I have a boot regression with v4.8-rc1 on the Honami (msm8974): [ 1.796020] l24: Bringing 0uV into 3075000-3075000uV [ 1.796236] l24: unsupportable voltage constraints 3100000-3050000uV [ 1.796252] qcom_rpm_smd_regulator smd:rpm:rpm_requests:pm8941-regulators: failed to register l24 [ 1.929486] Freeing unused kernel memory: 1024K (c0b00000 - c0c00000)941-regulators failed with error -22 Forgive the corrupt output. As Stephen states in the commit message below the configured range of 3075000 is not a valid voltage and the min-voltage gets rounded up which makes the range invalid. Stephen's patch fixes this problem. I'm therefor asking you to include this patch in a -rc pull for v4.8. I assume the pma8084 patch (#2 in this series) will give the same issue, but don't have the setup to verify this. Regards, Bjorn > 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 290284776bb281759b11faa287b8abccaf74bfcb Mon Sep 17 00:00:00 2001 > From: Stephen Boyd <sboyd@codeaurora.org> > Date: Mon, 11 Jul 2016 14:50:07 -0700 > Subject: [PATCH] regulator: qcom_smd: Fix voltage ranges for pm8x41 > > 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. > > 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> > Signed-off-by: Mark Brown <broonie@kernel.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 5022fa8d10c6..47cd28e960db 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, > }; > > -- > 2.8.1 > ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: Applied "regulator: qcom_smd: Fix voltage ranges for pm8x41" to the regulator tree 2016-08-13 4:00 ` Bjorn Andersson @ 2016-08-15 12:51 ` Mark Brown 0 siblings, 0 replies; 16+ messages in thread From: Mark Brown @ 2016-08-15 12:51 UTC (permalink / raw) To: Bjorn Andersson Cc: Stephen Boyd, linux-kernel, linux-arm-msm, linux-arm-kernel, Andy Gross [-- Attachment #1: Type: text/plain, Size: 423 bytes --] On Fri, Aug 12, 2016 at 09:00:38PM -0700, Bjorn Andersson wrote: > I'm therefor asking you to include this patch in a -rc pull for v4.8. > I assume the pma8084 patch (#2 in this series) will give the same issue, > but don't have the setup to verify this. You can check to see if something is going to be sent as a fix by checking to see which branch it's applied on, if it's a fix/ branch then it'll go as a fix as here. [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 473 bytes --] ^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH 2/3] regulator: qcom_smd: Fix voltage ranges for pma8084 ftsmps and pldo 2016-07-11 21:50 [PATCH 0/3] Fixes for RPM SMD regulator voltage ranges Stephen Boyd 2016-07-11 21:50 ` [PATCH 1/3] regulator: qcom_smd: Fix voltage ranges for pm8x41 Stephen Boyd @ 2016-07-11 21:50 ` Stephen Boyd 2016-07-11 22:38 ` Andy Gross 2016-08-05 12:09 ` Applied "regulator: qcom_smd: Fix voltage ranges for pma8084 ftsmps and pldo" to the regulator tree Mark Brown 2016-07-11 21:50 ` [PATCH 3/3] regulator: qcom_smd: Avoid overlapping linear voltage ranges Stephen Boyd 2 siblings, 2 replies; 16+ messages in thread From: Stephen Boyd @ 2016-07-11 21:50 UTC (permalink / raw) To: Mark Brown Cc: linux-kernel, linux-arm-msm, linux-arm-kernel, Andy Gross, Bjorn Andersson 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 ^ permalink raw reply related [flat|nested] 16+ messages in thread
* Re: [PATCH 2/3] regulator: qcom_smd: Fix voltage ranges for pma8084 ftsmps and pldo 2016-07-11 21:50 ` [PATCH 2/3] regulator: qcom_smd: Fix voltage ranges for pma8084 ftsmps and pldo Stephen Boyd @ 2016-07-11 22:38 ` Andy Gross 2016-08-05 0:57 ` Stephen Boyd 2016-08-05 12:09 ` Applied "regulator: qcom_smd: Fix voltage ranges for pma8084 ftsmps and pldo" to the regulator tree Mark Brown 1 sibling, 1 reply; 16+ messages in thread From: Andy Gross @ 2016-07-11 22:38 UTC (permalink / raw) To: Stephen Boyd Cc: Mark Brown, linux-kernel, linux-arm-msm, linux-arm-kernel, Bjorn Andersson 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 ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH 2/3] regulator: qcom_smd: Fix voltage ranges for pma8084 ftsmps and pldo 2016-07-11 22:38 ` Andy Gross @ 2016-08-05 0:57 ` Stephen Boyd 2016-08-05 4:09 ` Andy Gross 0 siblings, 1 reply; 16+ messages in thread From: Stephen Boyd @ 2016-08-05 0:57 UTC (permalink / raw) To: Andy Gross Cc: Mark Brown, linux-kernel, linux-arm-msm, linux-arm-kernel, Bjorn Andersson On 07/11, Andy Gross wrote: > 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. > Unfortunately that isn't true. It also supports 12.5mV steps for the lower voltage ranges. -- Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH 2/3] regulator: qcom_smd: Fix voltage ranges for pma8084 ftsmps and pldo 2016-08-05 0:57 ` Stephen Boyd @ 2016-08-05 4:09 ` Andy Gross 0 siblings, 0 replies; 16+ messages in thread From: Andy Gross @ 2016-08-05 4:09 UTC (permalink / raw) To: Stephen Boyd Cc: Mark Brown, linux-kernel, linux-arm-msm, linux-arm-kernel, Bjorn Andersson On Thu, Aug 04, 2016 at 05:57:48PM -0700, Stephen Boyd wrote: > On 07/11, Andy Gross wrote: > > 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. > > > > Unfortunately that isn't true. It also supports 12.5mV steps for > the lower voltage ranges. Ok. with that resolved: Reviewed-by: Andy Gross <andy.gross@linaro.org> ^ permalink raw reply [flat|nested] 16+ messages in thread
* Applied "regulator: qcom_smd: Fix voltage ranges for pma8084 ftsmps and pldo" to the regulator tree 2016-07-11 21:50 ` [PATCH 2/3] regulator: qcom_smd: Fix voltage ranges for pma8084 ftsmps and pldo Stephen Boyd 2016-07-11 22:38 ` Andy Gross @ 2016-08-05 12:09 ` Mark Brown 1 sibling, 0 replies; 16+ messages in thread From: Mark Brown @ 2016-08-05 12:09 UTC (permalink / raw) To: Stephen Boyd Cc: Mark Brown, Mark Brown, linux-kernel, linux-arm-msm, linux-arm-kernel, Andy Gross, Bjorn Andersson The patch regulator: qcom_smd: Fix voltage ranges for pma8084 ftsmps and pldo 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 c488f0071eacd10a290df4fb34bbdeb4eb8e7888 Mon Sep 17 00:00:00 2001 From: Stephen Boyd <sboyd@codeaurora.org> Date: Mon, 11 Jul 2016 14:50:08 -0700 Subject: [PATCH] regulator: qcom_smd: Fix voltage ranges for pma8084 ftsmps and pldo 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. Fixes: ee01d0c91ef1 ("regulator: qcom-smd: Add support for PMA8084") 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 | 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 47cd28e960db..8ed46a9a55c8 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, }; -- 2.8.1 ^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH 3/3] regulator: qcom_smd: Avoid overlapping linear voltage ranges 2016-07-11 21:50 [PATCH 0/3] Fixes for RPM SMD regulator voltage ranges Stephen Boyd 2016-07-11 21:50 ` [PATCH 1/3] regulator: qcom_smd: Fix voltage ranges for pm8x41 Stephen Boyd 2016-07-11 21:50 ` [PATCH 2/3] regulator: qcom_smd: Fix voltage ranges for pma8084 ftsmps and pldo Stephen Boyd @ 2016-07-11 21:50 ` Stephen Boyd 2016-07-11 22:39 ` Andy Gross 2016-07-12 9:02 ` Applied "regulator: qcom_smd: Avoid overlapping linear voltage ranges" to the regulator tree Mark Brown 2 siblings, 2 replies; 16+ messages in thread From: Stephen Boyd @ 2016-07-11 21:50 UTC (permalink / raw) To: Mark Brown Cc: linux-kernel, linux-arm-msm, linux-arm-kernel, Andy Gross, Bjorn Andersson 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 ^ permalink raw reply related [flat|nested] 16+ messages in thread
* Re: [PATCH 3/3] regulator: qcom_smd: Avoid overlapping linear voltage ranges 2016-07-11 21:50 ` [PATCH 3/3] regulator: qcom_smd: Avoid overlapping linear voltage ranges Stephen Boyd @ 2016-07-11 22:39 ` Andy Gross 2016-07-12 9:02 ` Applied "regulator: qcom_smd: Avoid overlapping linear voltage ranges" to the regulator tree Mark Brown 1 sibling, 0 replies; 16+ messages in thread From: Andy Gross @ 2016-07-11 22:39 UTC (permalink / raw) To: Stephen Boyd Cc: Mark Brown, linux-kernel, linux-arm-msm, linux-arm-kernel, Bjorn Andersson 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> ^ permalink raw reply [flat|nested] 16+ messages in thread
* Applied "regulator: qcom_smd: Avoid overlapping linear voltage ranges" to the regulator tree 2016-07-11 21:50 ` [PATCH 3/3] regulator: qcom_smd: Avoid overlapping linear voltage ranges Stephen Boyd 2016-07-11 22:39 ` Andy Gross @ 2016-07-12 9:02 ` Mark Brown 1 sibling, 0 replies; 16+ messages in thread From: Mark Brown @ 2016-07-12 9:02 UTC (permalink / raw) To: Stephen Boyd Cc: Mark Brown, Mark Brown, linux-kernel, linux-arm-msm, linux-arm-kernel, Andy Gross, Bjorn Andersson 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 ^ permalink raw reply related [flat|nested] 16+ messages in thread
end of thread, other threads:[~2016-08-15 12:51 UTC | newest] Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2016-07-11 21:50 [PATCH 0/3] Fixes for RPM SMD regulator voltage ranges Stephen Boyd 2016-07-11 21:50 ` [PATCH 1/3] regulator: qcom_smd: Fix voltage ranges for pm8x41 Stephen Boyd 2016-07-11 22:48 ` Andy Gross 2016-08-05 0:58 ` Stephen Boyd 2016-08-05 4:09 ` Andy Gross 2016-08-05 12:09 ` Applied "regulator: qcom_smd: Fix voltage ranges for pm8x41" to the regulator tree Mark Brown 2016-08-13 4:00 ` Bjorn Andersson 2016-08-15 12:51 ` Mark Brown 2016-07-11 21:50 ` [PATCH 2/3] regulator: qcom_smd: Fix voltage ranges for pma8084 ftsmps and pldo Stephen Boyd 2016-07-11 22:38 ` Andy Gross 2016-08-05 0:57 ` Stephen Boyd 2016-08-05 4:09 ` Andy Gross 2016-08-05 12:09 ` Applied "regulator: qcom_smd: Fix voltage ranges for pma8084 ftsmps and pldo" to the regulator tree Mark Brown 2016-07-11 21:50 ` [PATCH 3/3] regulator: qcom_smd: Avoid overlapping linear voltage ranges Stephen Boyd 2016-07-11 22:39 ` Andy Gross 2016-07-12 9:02 ` Applied "regulator: qcom_smd: Avoid overlapping linear voltage ranges" to the regulator tree Mark Brown
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).