Re: [PATCH v3 3/7] pmdomain: qcom: rpmpd: Split SDM632 pm domains from MSM8953

From: Dmitry Baryshkov

Date: Mon Oct 05 2026 - 03:05:01 EST


On Fri, Oct 02, 2026 at 12:38:31AM +0200, Barnabás Czémán wrote:
> Remove modem related pm domains from MSM8953 rpmpd because MSM8953 MSS
> is using mss-supply as regulator.
> Split SDM632 rpmpd from MSM8953 because SDM632 MSS is using mss-supply
> as pm domain.
>
> Signed-off-by: Barnabás Czémán <barnabas.czeman@xxxxxxxxxxxxxx>
> ---
> drivers/pmdomain/qcom/rpmpd.c | 29 ++++++++++++++++-------------
> 1 file changed, 16 insertions(+), 13 deletions(-)
>
> diff --git a/drivers/pmdomain/qcom/rpmpd.c b/drivers/pmdomain/qcom/rpmpd.c
> index 5f55fc791131..c37a79d6bc43 100644
> --- a/drivers/pmdomain/qcom/rpmpd.c
> +++ b/drivers/pmdomain/qcom/rpmpd.c
> @@ -503,19 +503,8 @@ static struct rpmpd md_s1a_corner_ao = {
> .key = KEY_CORNER,
> };
>
> -static struct rpmpd md_s1a_lvl_ao;

I'd rather see #define RPMPD_VDDMD_AO unless you have a good reason to
drop it.

> static struct rpmpd md_s1a_lvl = {
> .pd = { .name = "md", },
> - .peer = &md_s1a_lvl_ao,
> - .res_type = RPMPD_SMPA,
> - .res_id = 1,
> - .key = KEY_LEVEL,
> -};
> -
> -static struct rpmpd md_s1a_lvl_ao = {
> - .pd = { .name = "md_ao", },
> - .peer = &md_s1a_lvl,
> - .active_only = true,
> .res_type = RPMPD_SMPA,
> .res_id = 1,
> .key = KEY_LEVEL,
> @@ -703,8 +692,6 @@ static const struct rpmpd_desc msm8917_desc = {
> };
>
> static struct rpmpd *msm8953_rpmpds[] = {
> - [MSM8953_VDDMD] = &md_s1a_lvl,
> - [MSM8953_VDDMD_AO] = &md_s1a_lvl_ao,
> [MSM8953_VDDCX] = &cx_s2a_lvl,
> [MSM8953_VDDCX_AO] = &cx_s2a_lvl_ao,
> [MSM8953_VDDCX_VFL] = &cx_s2a_vfl,
> @@ -844,6 +831,21 @@ static const struct rpmpd_desc qm215_desc = {
> .max_state = RPM_SMD_LEVEL_TURBO,
> };
>
> +static struct rpmpd *sdm632_rpmpds[] = {
> + [RPMPD_VDDMD] = &md_s1a_lvl,
> + [RPMPD_VDDCX] = &cx_s2a_lvl,
> + [RPMPD_VDDCX_AO] = &cx_s2a_lvl_ao,
> + [RPMPD_VDDCX_VFL] = &cx_s2a_vfl,
> + [RPMPD_VDDMX] = &mx_s7a_lvl,
> + [RPMPD_VDDMX_AO] = &mx_s7a_lvl_ao,
> +};
> +
> +static const struct rpmpd_desc sdm632_desc = {
> + .rpmpds = sdm632_rpmpds,
> + .num_pds = ARRAY_SIZE(sdm632_rpmpds),
> + .max_state = RPM_SMD_LEVEL_TURBO,
> +};
> +
> static struct rpmpd *sdm660_rpmpds[] = {
> [RPMPD_VDDCX] = &cx_rwcx0_lvl,
> [RPMPD_VDDCX_AO] = &cx_rwcx0_lvl_ao,
> @@ -954,6 +956,7 @@ static const struct of_device_id rpmpd_match_table[] = {
> { .compatible = "qcom,qcm2290-rpmpd", .data = &qcm2290_desc },
> { .compatible = "qcom,qcs404-rpmpd", .data = &qcs404_desc },
> { .compatible = "qcom,qm215-rpmpd", .data = &qm215_desc },
> + { .compatible = "qcom,sdm632-rpmpd", .data = &sdm632_desc },
> { .compatible = "qcom,sdm660-rpmpd", .data = &sdm660_desc },
> { .compatible = "qcom,shikra-rpmpd", .data = &shikra_desc },
> { .compatible = "qcom,sm6115-rpmpd", .data = &sm6115_desc },
>
> --
> 2.56.0
>

--
With best wishes
Dmitry