lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <7c6c6343-a0f7-411f-aea4-c793317c164e@quicinc.com>
Date: Tue, 22 Oct 2024 18:27:27 -0700
From: David Collins <quic_collinsd@...cinc.com>
To: Melody Olvera <quic_molvera@...cinc.com>,
        Liam Girdwood
	<lgirdwood@...il.com>, Mark Brown <broonie@...nel.org>,
        Trilok Soni
	<quic_tsoni@...cinc.com>,
        Satya Durga Srinivasu Prabhala
	<quic_satyap@...cinc.com>
CC: <linux-arm-msm@...r.kernel.org>, <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH] regulator: qcom-rpmh: Update ranges for FTSMPS525

On 10/21/24 16:03, Melody Olvera wrote:
> The FTSMPS525 regulator has several potential ranges,
> so update the ranges accordingly for SM8750.
> 
> Signed-off-by: Melody Olvera <quic_molvera@...cinc.com>
> ---
>  drivers/regulator/qcom-rpmh-regulator.c | 9 ++++++---
>  1 file changed, 6 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/regulator/qcom-rpmh-regulator.c b/drivers/regulator/qcom-rpmh-regulator.c
> index 6c343b4b9d15..272de7bc9c88 100644
> --- a/drivers/regulator/qcom-rpmh-regulator.c
> +++ b/drivers/regulator/qcom-rpmh-regulator.c
> @@ -848,9 +848,10 @@ static const struct rpmh_vreg_hw_data pmic5_ftsmps525_lv = {
>  	.ops = &rpmh_regulator_vrm_ops,
>  	.voltage_ranges = (struct linear_range[]) {
>  		REGULATOR_LINEAR_RANGE(300000, 0, 267, 4000),
> +		REGULATOR_LINEAR_RANGE(1376000, 268, 438, 8000),
>  	},
> -	.n_linear_ranges = 1,
> -	.n_voltages = 268,
> +	.n_linear_ranges = 2,
> +	.n_voltages = 439,
>  	.pmic_mode_map = pmic_mode_map_pmic5_smps,
>  	.of_map_mode = rpmh_regulator_pmic4_smps_of_map_mode,
>  };

This configuration which specifies both LV and MV ranges should replace
the pmic5_ftsmps525_lv and pmic5_ftsmps525_mv configurations.  It should
then be used in the per-PMIC data tables below.

All FTSMPS525 type regulators physically support both LV and MV ranges.
However, the per-regulator selection of which range is used can only be
set by boot loader firmware and the configuration is locked in hardware
after initialization.  Unfortunately, the qcom-rpmh-regulator driver has
no mechanism to determine at runtime if LV or MV range has been set for
a particular regulator.  Additionally, that exact same regulator in the
same PMIC could be configured for the other range when used on a
different board (where the power grid has different requirements).

Listing support in a unified configuration for both LV and MV ranges
fixes the situation as it will work on all boards regardless of firmware
LV vs MV selection.  This also accurately captures the capability of the
regulator at a hardware level.

> @@ -1196,6 +1197,8 @@ static const struct rpmh_vreg_init_data pm8550vs_vreg_data[] = {
>  	RPMH_VREG("smps4",  "smp%s4",  &pmic5_ftsmps525_lv, "vdd-s4"),
>  	RPMH_VREG("smps5",  "smp%s5",  &pmic5_ftsmps525_lv, "vdd-s5"),
>  	RPMH_VREG("smps6",  "smp%s6",  &pmic5_ftsmps525_mv, "vdd-s6"),
> +	RPMH_VREG("smps7",  "smp%s7",  &pmic5_ftsmps525_lv, "vdd-s7"),
> +	RPMH_VREG("smps8",  "smp%s8",  &pmic5_ftsmps525_lv, "vdd-s8"),

These lines should not be added.  PMIC PM8550VS only has 6 FTSMPS525
regulators inside.

>  	RPMH_VREG("ldo1",   "ldo%s1",  &pmic5_nldo515,   "vdd-l1"),
>  	RPMH_VREG("ldo2",   "ldo%s2",  &pmic5_nldo515,   "vdd-l2"),
>  	RPMH_VREG("ldo3",   "ldo%s3",  &pmic5_nldo515,   "vdd-l3"),
> @@ -1205,7 +1208,7 @@ static const struct rpmh_vreg_init_data pm8550vs_vreg_data[] = {
>  static const struct rpmh_vreg_init_data pm8550ve_vreg_data[] = {
>  	RPMH_VREG("smps1", "smp%s1", &pmic5_ftsmps525_lv, "vdd-s1"),
>  	RPMH_VREG("smps2", "smp%s2", &pmic5_ftsmps525_lv, "vdd-s2"),
> -	RPMH_VREG("smps3", "smp%s3", &pmic5_ftsmps525_lv, "vdd-s3"),
> +	RPMH_VREG("smps3", "smp%s3", &pmic5_ftsmps525_mv, "vdd-s3"),
>  	RPMH_VREG("smps4", "smp%s4", &pmic5_ftsmps525_mv, "vdd-s4"),
>  	RPMH_VREG("smps5", "smp%s5", &pmic5_ftsmps525_lv, "vdd-s5"),
>  	RPMH_VREG("smps6", "smp%s6", &pmic5_ftsmps525_lv, "vdd-s6"),
> 
> base-commit: 63b3ff03d91ae8f875fe8747c781a521f78cde17

Take care,
David Collins


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ