[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <e9f08af0-4360-1b92-5dcd-f1b8f3a8a4ee@linaro.org>
Date: Wed, 16 Nov 2022 12:38:04 +0100
From: Konrad Dybcio <konrad.dybcio@...aro.org>
To: Abel Vesa <abel.vesa@...aro.org>, Andy Gross <agross@...nel.org>,
Bjorn Andersson <andersson@...nel.org>,
Liam Girdwood <lgirdwood@...il.com>,
Mark Brown <broonie@...nel.org>, Rob Herring <robh@...nel.org>,
Krzysztof Kozlowski <krzysztof.kozlowski@...aro.org>
Cc: Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
devicetree@...r.kernel.org, linux-arm-msm@...r.kernel.org
Subject: Re: [PATCH 2/2] regulator: qcom-rpmh: Add support for PM8550
regulators
On 16/11/2022 12:05, Abel Vesa wrote:
> Add the rpmh regulators found in PM8550 PMIC.
It's a bit more than just PM8550..
The changes look good though, so with the commit message rectified:
Reviewed-by: Konrad Dybcio <konrad.dybcio@...aro.org>
Konrad
> They contain FT-SMPS 525s, so add their configuration as well.
>
> Signed-off-by: Abel Vesa <abel.vesa@...aro.org>
> ---
> drivers/regulator/qcom-rpmh-regulator.c | 81 +++++++++++++++++++++++++
> 1 file changed, 81 insertions(+)
>
> diff --git a/drivers/regulator/qcom-rpmh-regulator.c b/drivers/regulator/qcom-rpmh-regulator.c
> index 4158ff126a67..42c42d17335b 100644
> --- a/drivers/regulator/qcom-rpmh-regulator.c
> +++ b/drivers/regulator/qcom-rpmh-regulator.c
> @@ -731,6 +731,24 @@ static const struct rpmh_vreg_hw_data pmic5_ftsmps520 = {
> .of_map_mode = rpmh_regulator_pmic4_smps_of_map_mode,
> };
>
> +static const struct rpmh_vreg_hw_data pmic5_ftsmps525_lv = {
> + .regulator_type = VRM,
> + .ops = &rpmh_regulator_vrm_ops,
> + .voltage_range = REGULATOR_LINEAR_RANGE(300000, 0, 267, 4000),
> + .n_voltages = 268,
> + .pmic_mode_map = pmic_mode_map_pmic5_smps,
> + .of_map_mode = rpmh_regulator_pmic4_smps_of_map_mode,
> +};
> +
> +static const struct rpmh_vreg_hw_data pmic5_ftsmps525_mv = {
> + .regulator_type = VRM,
> + .ops = &rpmh_regulator_vrm_ops,
> + .voltage_range = REGULATOR_LINEAR_RANGE(600000, 0, 267, 8000),
> + .n_voltages = 268,
> + .pmic_mode_map = pmic_mode_map_pmic5_smps,
> + .of_map_mode = rpmh_regulator_pmic4_smps_of_map_mode,
> +};
> +
> static const struct rpmh_vreg_hw_data pmic5_hfsmps515 = {
> .regulator_type = VRM,
> .ops = &rpmh_regulator_vrm_ops,
> @@ -987,6 +1005,57 @@ static const struct rpmh_vreg_init_data pm8450_vreg_data[] = {
> {}
> };
>
> +static const struct rpmh_vreg_init_data pm8550_vreg_data[] = {
> + RPMH_VREG("ldo1", "ldo%s1", &pmic5_pldo, "vdd-l1-l4-l10"),
> + RPMH_VREG("ldo2", "ldo%s2", &pmic5_pldo, "vdd-l2-l13-l14"),
> + RPMH_VREG("ldo3", "ldo%s3", &pmic5_nldo, "vdd-l3"),
> + RPMH_VREG("ldo4", "ldo%s4", &pmic5_nldo, "vdd-l1-l4-l10"),
> + RPMH_VREG("ldo5", "ldo%s5", &pmic5_pldo, "vdd-l5-l16"),
> + RPMH_VREG("ldo6", "ldo%s6", &pmic5_pldo_lv, "vdd-l6-l7"),
> + RPMH_VREG("ldo7", "ldo%s7", &pmic5_pldo_lv, "vdd-l6-l7"),
> + RPMH_VREG("ldo8", "ldo%s8", &pmic5_pldo_lv, "vdd-l8-l9"),
> + RPMH_VREG("ldo9", "ldo%s9", &pmic5_pldo, "vdd-l8-l9"),
> + RPMH_VREG("ldo10", "ldo%s10", &pmic5_nldo, "vdd-l1-l4-l10"),
> + RPMH_VREG("ldo11", "ldo%s11", &pmic5_pldo, "vdd-l11"),
> + RPMH_VREG("ldo12", "ldo%s12", &pmic5_pldo, "vdd-l12"),
> + RPMH_VREG("ldo13", "ldo%s13", &pmic5_pldo, "vdd-l2-l13-l14"),
> + RPMH_VREG("ldo14", "ldo%s14", &pmic5_pldo, "vdd-l2-l13-l14"),
> + RPMH_VREG("ldo15", "ldo%s15", &pmic5_pldo, "vdd-l15"),
> + RPMH_VREG("ldo16", "ldo%s16", &pmic5_pldo, "vdd-l5-l16"),
> + RPMH_VREG("ldo17", "ldo%s17", &pmic5_pldo, "vdd-l17"),
> + RPMH_VREG("bob1", "bob%s1", &pmic5_bob, "vdd-bob1"),
> + RPMH_VREG("bob2", "bob%s2", &pmic5_bob, "vdd-bob2"),
> + {}
> +};
> +
> +static const struct rpmh_vreg_init_data pm8550vs_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("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("ldo1", "ldo%s1", &pmic5_nldo, "vdd-l1"),
> + RPMH_VREG("ldo2", "ldo%s2", &pmic5_nldo, "vdd-l2"),
> + RPMH_VREG("ldo3", "ldo%s3", &pmic5_nldo, "vdd-l3"),
> + {}
> +};
> +
> +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("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_lv, "vdd-s6"),
> + RPMH_VREG("smps7", "smp%s7", &pmic5_ftsmps525_lv, "vdd-s7"),
> + RPMH_VREG("smps8", "smp%s8", &pmic5_ftsmps525_lv, "vdd-s8"),
> + RPMH_VREG("ldo1", "ldo%s1", &pmic5_nldo, "vdd-l1"),
> + RPMH_VREG("ldo2", "ldo%s2", &pmic5_nldo, "vdd-l2"),
> + RPMH_VREG("ldo3", "ldo%s3", &pmic5_nldo, "vdd-l3"),
> + {}
> +};
> +
> static const struct rpmh_vreg_init_data pm8009_vreg_data[] = {
> RPMH_VREG("smps1", "smp%s1", &pmic5_hfsmps510, "vdd-s1"),
> RPMH_VREG("smps2", "smp%s2", &pmic5_hfsmps515, "vdd-s2"),
> @@ -1314,6 +1383,18 @@ static const struct of_device_id __maybe_unused rpmh_regulator_match_table[] = {
> .compatible = "qcom,pm8450-rpmh-regulators",
> .data = pm8450_vreg_data,
> },
> + {
> + .compatible = "qcom,pm8550-rpmh-regulators",
> + .data = pm8550_vreg_data,
> + },
> + {
> + .compatible = "qcom,pm8550ve-rpmh-regulators",
> + .data = pm8550ve_vreg_data,
> + },
> + {
> + .compatible = "qcom,pm8550vs-rpmh-regulators",
> + .data = pm8550vs_vreg_data,
> + },
> {
> .compatible = "qcom,pm8998-rpmh-regulators",
> .data = pm8998_vreg_data,
Powered by blists - more mailing lists