* [PATCH 0/7] MSM8953/SDM632 rpmpd/mss fixes
@ 2026-03-27 20:11 Barnabás Czémán
2026-03-27 20:11 ` [PATCH 1/7] dt-bindings: power: qcom-rpmpd: Split MSM8953 and SDM632 Barnabás Czémán
` (7 more replies)
0 siblings, 8 replies; 14+ messages in thread
From: Barnabás Czémán @ 2026-03-27 20:11 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson,
Ulf Hansson, Mathieu Poirier, Konrad Dybcio, Stephan Gerhold
Cc: linux-arm-msm, devicetree, linux-kernel, linux-pm,
linux-remoteproc, Barnabás Czémán
SDM632 pm domains are different from MSM8953 because MSM8953
is defining pm8953_s1 as regulator but SDM632 is defining it
as pm domain.
This patch series correcting the pm domains defined in rpmpd
driver and splitting the MSS resources for the both SoC to match
the reality.
These changes was discussed in a previous threads:
https://lore.kernel.org/all/2b057aa5-4416-4fd4-aeab-6bc23acbb53d@oss.qualcomm.com/
Signed-off-by: Barnabás Czémán <barnabas.czeman@mainlining.org>
---
Barnabás Czémán (7):
dt-bindings: power: qcom-rpmpd: Split MSM8953 and SDM632
pmdomain: qcom: rpmpd: Split SDM632 pm domains from MSM8953
remoteproc: qcom_q6v5_mss: Use mss as regulator for MSM8953
arm64: dts: qcom: msm8953: fix modem pm domains
dt-bindings: remoteproc: qcom,msm8916-mss-pil: Add SDM632
remoteproc: qcom_q6v5_mss: Add SDM632 MSS
arm64: dts: qcom: sdm632: Correct power domains
.../devicetree/bindings/power/qcom,rpmpd.yaml | 1 +
.../bindings/remoteproc/qcom,msm8916-mss-pil.yaml | 9 ++--
arch/arm64/boot/dts/qcom/msm8953.dtsi | 5 +-
arch/arm64/boot/dts/qcom/sdm632.dtsi | 31 ++++++++++++
drivers/pmdomain/qcom/rpmpd.c | 39 ++++++++-------
drivers/remoteproc/qcom_q6v5_mss.c | 56 ++++++++++++++++++++--
include/dt-bindings/power/qcom-rpmpd.h | 20 +++++---
7 files changed, 127 insertions(+), 34 deletions(-)
---
base-commit: 8e42d2514a7e8eb8d740d0ba82339dd6c0b6463f
change-id: 20260319-sdm632-rpmpd-c0e3eb548f58
Best regards,
--
Barnabás Czémán <barnabas.czeman@mainlining.org>
^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH 1/7] dt-bindings: power: qcom-rpmpd: Split MSM8953 and SDM632
2026-03-27 20:11 [PATCH 0/7] MSM8953/SDM632 rpmpd/mss fixes Barnabás Czémán
@ 2026-03-27 20:11 ` Barnabás Czémán
2026-03-27 20:26 ` Dmitry Baryshkov
2026-03-27 20:11 ` [PATCH 2/7] pmdomain: qcom: rpmpd: Split SDM632 pm domains from MSM8953 Barnabás Czémán
` (6 subsequent siblings)
7 siblings, 1 reply; 14+ messages in thread
From: Barnabás Czémán @ 2026-03-27 20:11 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson,
Ulf Hansson, Mathieu Poirier, Konrad Dybcio, Stephan Gerhold
Cc: linux-arm-msm, devicetree, linux-kernel, linux-pm,
linux-remoteproc, Barnabás Czémán
Remove modem related bindings from MSM8953 rpmpd because MSM8953 MSS
is using mss-supply as a regulator usually it is pm8953_s1.
Split SDM632 bindings from MSM8953 because SDM632 is using mss-supply
as a pm domain.
Signed-off-by: Barnabás Czémán <barnabas.czeman@mainlining.org>
---
.../devicetree/bindings/power/qcom,rpmpd.yaml | 1 +
include/dt-bindings/power/qcom-rpmpd.h | 20 +++++++++++++-------
2 files changed, 14 insertions(+), 7 deletions(-)
diff --git a/Documentation/devicetree/bindings/power/qcom,rpmpd.yaml b/Documentation/devicetree/bindings/power/qcom,rpmpd.yaml
index 8174ceeab572..659936d6a46e 100644
--- a/Documentation/devicetree/bindings/power/qcom,rpmpd.yaml
+++ b/Documentation/devicetree/bindings/power/qcom,rpmpd.yaml
@@ -48,6 +48,7 @@ properties:
- qcom,sc7280-rpmhpd
- qcom,sc8180x-rpmhpd
- qcom,sc8280xp-rpmhpd
+ - qcom,sdm632-rpmpd
- qcom,sdm660-rpmpd
- qcom,sdm670-rpmhpd
- qcom,sdm845-rpmhpd
diff --git a/include/dt-bindings/power/qcom-rpmpd.h b/include/dt-bindings/power/qcom-rpmpd.h
index 4371ac941f29..2d82434b993c 100644
--- a/include/dt-bindings/power/qcom-rpmpd.h
+++ b/include/dt-bindings/power/qcom-rpmpd.h
@@ -84,13 +84,11 @@
#define QM215_VDDMX_AO MSM8917_VDDMX_AO
/* MSM8953 Power Domain Indexes */
-#define MSM8953_VDDMD 0
-#define MSM8953_VDDMD_AO 1
-#define MSM8953_VDDCX 2
-#define MSM8953_VDDCX_AO 3
-#define MSM8953_VDDCX_VFL 4
-#define MSM8953_VDDMX 5
-#define MSM8953_VDDMX_AO 6
+#define MSM8953_VDDCX RPMPD_VDDCX
+#define MSM8953_VDDCX_AO RPMPD_VDDCX_AO
+#define MSM8953_VDDCX_VFL RPMPD_VDDCX_VFL
+#define MSM8953_VDDMX RPMPD_VDDMX
+#define MSM8953_VDDMX_AO RPMPD_VDDMX_AO
/* MSM8974 Power Domain Indexes */
#define MSM8974_VDDCX 0
@@ -156,6 +154,14 @@
#define QCS404_LPIMX 5
#define QCS404_LPIMX_VFL 6
+/* SDM632 Power Domain Indexes */
+#define SDM632_VDDMD 0
+#define SDM632_VDDCX 1
+#define SDM632_VDDCX_AO 2
+#define SDM632_VDDCX_VFL 3
+#define SDM632_VDDMX 4
+#define SDM632_VDDMX_AO 5
+
/* SDM660 Power Domains */
#define SDM660_VDDCX RPMPD_VDDCX
#define SDM660_VDDCX_AO RPMPD_VDDCX_AO
--
2.53.0
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH 2/7] pmdomain: qcom: rpmpd: Split SDM632 pm domains from MSM8953
2026-03-27 20:11 [PATCH 0/7] MSM8953/SDM632 rpmpd/mss fixes Barnabás Czémán
2026-03-27 20:11 ` [PATCH 1/7] dt-bindings: power: qcom-rpmpd: Split MSM8953 and SDM632 Barnabás Czémán
@ 2026-03-27 20:11 ` Barnabás Czémán
2026-03-27 20:11 ` [PATCH 3/7] remoteproc: qcom_q6v5_mss: Use mss as regulator for MSM8953 Barnabás Czémán
` (5 subsequent siblings)
7 siblings, 0 replies; 14+ messages in thread
From: Barnabás Czémán @ 2026-03-27 20:11 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson,
Ulf Hansson, Mathieu Poirier, Konrad Dybcio, Stephan Gerhold
Cc: linux-arm-msm, devicetree, linux-kernel, linux-pm,
linux-remoteproc, Barnabás Czémán
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@mainlining.org>
---
drivers/pmdomain/qcom/rpmpd.c | 39 +++++++++++++++++++++------------------
1 file changed, 21 insertions(+), 18 deletions(-)
diff --git a/drivers/pmdomain/qcom/rpmpd.c b/drivers/pmdomain/qcom/rpmpd.c
index 15a11ff282c3..cff755306759 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;
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,13 +692,11 @@ 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,
- [MSM8953_VDDMX] = &mx_s7a_lvl,
- [MSM8953_VDDMX_AO] = &mx_s7a_lvl_ao,
+ [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 msm8953_desc = {
@@ -844,6 +831,21 @@ static const struct rpmpd_desc qm215_desc = {
.max_state = RPM_SMD_LEVEL_TURBO,
};
+static struct rpmpd *sdm632_rpmpds[] = {
+ [SDM632_VDDMD] = &md_s1a_lvl,
+ [SDM632_VDDCX] = &cx_s2a_lvl,
+ [SDM632_VDDCX_AO] = &cx_s2a_lvl_ao,
+ [SDM632_VDDCX_VFL] = &cx_s2a_vfl,
+ [SDM632_VDDMX] = &mx_s7a_lvl,
+ [SDM632_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,
@@ -948,6 +950,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,sm6115-rpmpd", .data = &sm6115_desc },
{ .compatible = "qcom,sm6125-rpmpd", .data = &sm6125_desc },
--
2.53.0
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH 3/7] remoteproc: qcom_q6v5_mss: Use mss as regulator for MSM8953
2026-03-27 20:11 [PATCH 0/7] MSM8953/SDM632 rpmpd/mss fixes Barnabás Czémán
2026-03-27 20:11 ` [PATCH 1/7] dt-bindings: power: qcom-rpmpd: Split MSM8953 and SDM632 Barnabás Czémán
2026-03-27 20:11 ` [PATCH 2/7] pmdomain: qcom: rpmpd: Split SDM632 pm domains from MSM8953 Barnabás Czémán
@ 2026-03-27 20:11 ` Barnabás Czémán
2026-03-27 20:11 ` [PATCH 4/7] arm64: dts: qcom: msm8953: fix modem pm domains Barnabás Czémán
` (4 subsequent siblings)
7 siblings, 0 replies; 14+ messages in thread
From: Barnabás Czémán @ 2026-03-27 20:11 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson,
Ulf Hansson, Mathieu Poirier, Konrad Dybcio, Stephan Gerhold
Cc: linux-arm-msm, devicetree, linux-kernel, linux-pm,
linux-remoteproc, Barnabás Czémán
MSM8953 MSS is using mss-supply as regulator what is usually pm8953_s1.
Signed-off-by: Barnabás Czémán <barnabas.czeman@mainlining.org>
---
drivers/remoteproc/qcom_q6v5_mss.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/drivers/remoteproc/qcom_q6v5_mss.c b/drivers/remoteproc/qcom_q6v5_mss.c
index 4e9eb5bd11fa..86edd826ede8 100644
--- a/drivers/remoteproc/qcom_q6v5_mss.c
+++ b/drivers/remoteproc/qcom_q6v5_mss.c
@@ -2705,6 +2705,14 @@ static const struct rproc_hexagon_res msm8953_mss = {
},
{}
},
+ .active_supply = (struct qcom_mss_reg_res[]) {
+ {
+ .supply = "mss",
+ .uV = 1050000,
+ .uA = 100000,
+ },
+ {}
+ },
.proxy_clk_names = (char*[]){
"xo",
NULL
@@ -2718,7 +2726,6 @@ static const struct rproc_hexagon_res msm8953_mss = {
.proxy_pd_names = (char*[]) {
"cx",
"mx",
- "mss",
NULL
},
.need_mem_protection = false,
--
2.53.0
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH 4/7] arm64: dts: qcom: msm8953: fix modem pm domains
2026-03-27 20:11 [PATCH 0/7] MSM8953/SDM632 rpmpd/mss fixes Barnabás Czémán
` (2 preceding siblings ...)
2026-03-27 20:11 ` [PATCH 3/7] remoteproc: qcom_q6v5_mss: Use mss as regulator for MSM8953 Barnabás Czémán
@ 2026-03-27 20:11 ` Barnabás Czémán
2026-03-27 20:35 ` Dmitry Baryshkov
2026-03-27 20:11 ` [PATCH 5/7] dt-bindings: remoteproc: qcom,msm8916-mss-pil: Add SDM632 Barnabás Czémán
` (3 subsequent siblings)
7 siblings, 1 reply; 14+ messages in thread
From: Barnabás Czémán @ 2026-03-27 20:11 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson,
Ulf Hansson, Mathieu Poirier, Konrad Dybcio, Stephan Gerhold
Cc: linux-arm-msm, devicetree, linux-kernel, linux-pm,
linux-remoteproc, Barnabás Czémán
MSM8953 MSS is using mss-supply as regulator.
Signed-off-by: Barnabás Czémán <barnabas.czeman@mainlining.org>
---
arch/arm64/boot/dts/qcom/msm8953.dtsi | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/arch/arm64/boot/dts/qcom/msm8953.dtsi b/arch/arm64/boot/dts/qcom/msm8953.dtsi
index 753167c3f861..c7dc08858d54 100644
--- a/arch/arm64/boot/dts/qcom/msm8953.dtsi
+++ b/arch/arm64/boot/dts/qcom/msm8953.dtsi
@@ -1451,9 +1451,8 @@ mpss: remoteproc@4080000 {
"handover", "stop-ack";
power-domains = <&rpmpd MSM8953_VDDCX>,
- <&rpmpd MSM8953_VDDMX>,
- <&rpmpd MSM8953_VDDMD>;
- power-domain-names = "cx", "mx","mss";
+ <&rpmpd MSM8953_VDDMX>;
+ power-domain-names = "cx", "mx";
clocks = <&gcc GCC_MSS_CFG_AHB_CLK>,
<&gcc GCC_MSS_Q6_BIMC_AXI_CLK>,
--
2.53.0
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH 5/7] dt-bindings: remoteproc: qcom,msm8916-mss-pil: Add SDM632
2026-03-27 20:11 [PATCH 0/7] MSM8953/SDM632 rpmpd/mss fixes Barnabás Czémán
` (3 preceding siblings ...)
2026-03-27 20:11 ` [PATCH 4/7] arm64: dts: qcom: msm8953: fix modem pm domains Barnabás Czémán
@ 2026-03-27 20:11 ` Barnabás Czémán
2026-03-27 20:11 ` [PATCH 6/7] remoteproc: qcom_q6v5_mss: Add SDM632 MSS Barnabás Czémán
` (2 subsequent siblings)
7 siblings, 0 replies; 14+ messages in thread
From: Barnabás Czémán @ 2026-03-27 20:11 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson,
Ulf Hansson, Mathieu Poirier, Konrad Dybcio, Stephan Gerhold
Cc: linux-arm-msm, devicetree, linux-kernel, linux-pm,
linux-remoteproc, Barnabás Czémán
SDM632 MSS is very similar for MSM8953 mss the difference is
mss-supply is a pm domain on SDM632, previously SDM632 MSS
was represented by MSM8953 MSS. Correct the bindings to
described it correctly.
Signed-off-by: Barnabás Czémán <barnabas.czeman@mainlining.org>
---
.../devicetree/bindings/remoteproc/qcom,msm8916-mss-pil.yaml | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/Documentation/devicetree/bindings/remoteproc/qcom,msm8916-mss-pil.yaml b/Documentation/devicetree/bindings/remoteproc/qcom,msm8916-mss-pil.yaml
index 8c0ff4dfad10..9154d2b541e8 100644
--- a/Documentation/devicetree/bindings/remoteproc/qcom,msm8916-mss-pil.yaml
+++ b/Documentation/devicetree/bindings/remoteproc/qcom,msm8916-mss-pil.yaml
@@ -27,6 +27,7 @@ properties:
- qcom,msm8940-mss-pil
- qcom,msm8953-mss-pil
- qcom,msm8974-mss-pil
+ - qcom,sdm632-mss-pil
- const: qcom,q6v5-pil
description: Deprecated, prefer using qcom,msm8916-mss-pil
@@ -79,14 +80,14 @@ properties:
(not valid for qcom,msm8226-mss-pil, qcom,msm8926-mss-pil
and qcom,msm8974-mss-pil)
- description: MSS proxy power domain (control handed over after startup)
- (only valid for qcom,msm8953-mss-pil)
+ (only valid for qcom,sdm632-mss-pil)
minItems: 1
power-domain-names:
items:
- const: cx
- const: mx # not valid for qcom,msm8226-mss-pil, qcom-msm8926-mss-pil and qcom,msm8974-mss-pil
- - const: mss # only valid for qcom,msm8953-mss-pil
+ - const: mss # only valid for qcom,sdm632-mss-pil
minItems: 1
pll-supply:
@@ -214,7 +215,7 @@ allOf:
- if:
properties:
compatible:
- const: qcom,msm8953-mss-pil
+ const: qcom,sdm632-mss-pil
then:
properties:
power-domains:
@@ -236,6 +237,7 @@ allOf:
- qcom,msm8917-mss-pil
- qcom,msm8937-mss-pil
- qcom,msm8940-mss-pil
+ - qcom,msm8953-mss-pil
then:
properties:
power-domains:
@@ -282,6 +284,7 @@ allOf:
- qcom,msm8917-mss-pil
- qcom,msm8937-mss-pil
- qcom,msm8940-mss-pil
+ - qcom,msm8953-mss-pil
- qcom,msm8974-mss-pil
then:
required:
--
2.53.0
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH 6/7] remoteproc: qcom_q6v5_mss: Add SDM632 MSS
2026-03-27 20:11 [PATCH 0/7] MSM8953/SDM632 rpmpd/mss fixes Barnabás Czémán
` (4 preceding siblings ...)
2026-03-27 20:11 ` [PATCH 5/7] dt-bindings: remoteproc: qcom,msm8916-mss-pil: Add SDM632 Barnabás Czémán
@ 2026-03-27 20:11 ` Barnabás Czémán
2026-03-27 20:11 ` [PATCH 7/7] arm64: dts: qcom: sdm632: Correct power domains Barnabás Czémán
2026-03-27 20:33 ` [PATCH 0/7] MSM8953/SDM632 rpmpd/mss fixes Dmitry Baryshkov
7 siblings, 0 replies; 14+ messages in thread
From: Barnabás Czémán @ 2026-03-27 20:11 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson,
Ulf Hansson, Mathieu Poirier, Konrad Dybcio, Stephan Gerhold
Cc: linux-arm-msm, devicetree, linux-kernel, linux-pm,
linux-remoteproc, Barnabás Czémán
Add support for SDM632 mss, it is very similar to MSM8953 mss only
difference SDM632 is using mss-supply as pm domain.
Signed-off-by: Barnabás Czémán <barnabas.czeman@mainlining.org>
---
drivers/remoteproc/qcom_q6v5_mss.c | 47 ++++++++++++++++++++++++++++++++++++--
1 file changed, 45 insertions(+), 2 deletions(-)
diff --git a/drivers/remoteproc/qcom_q6v5_mss.c b/drivers/remoteproc/qcom_q6v5_mss.c
index 86edd826ede8..e63432184767 100644
--- a/drivers/remoteproc/qcom_q6v5_mss.c
+++ b/drivers/remoteproc/qcom_q6v5_mss.c
@@ -271,6 +271,7 @@ enum {
MSS_MSM8998,
MSS_SC7180,
MSS_SC7280,
+ MSS_SDM632,
MSS_SDM660,
MSS_SDM845,
};
@@ -760,6 +761,7 @@ static int q6v5proc_reset(struct q6v5 *qproc)
qproc->version == MSS_MSM8953 ||
qproc->version == MSS_MSM8996 ||
qproc->version == MSS_MSM8998 ||
+ qproc->version == MSS_SDM632 ||
qproc->version == MSS_SDM660) {
/* Override the ACC value if required */
@@ -770,7 +772,9 @@ static int q6v5proc_reset(struct q6v5 *qproc)
writel(QDSP6SS_ACC_OVERRIDE_VAL_9607,
qproc->reg_base + QDSP6SS_STRAP_ACC);
else if (qproc->version != MSS_MSM8909 &&
- qproc->version != MSS_MSM8953)
+ qproc->version != MSS_MSM8953 &&
+ qproc->version != MSS_SDM632)
+ /* Override the ACC value if required */
writel(QDSP6SS_ACC_OVERRIDE_VAL,
qproc->reg_base + QDSP6SS_STRAP_ACC);
@@ -830,7 +834,8 @@ static int q6v5proc_reset(struct q6v5 *qproc)
/* Turn on L1, L2, ETB and JU memories 1 at a time */
if (qproc->version == MSS_MSM8940 ||
qproc->version == MSS_MSM8953 ||
- qproc->version == MSS_MSM8996) {
+ qproc->version == MSS_MSM8996 ||
+ qproc->version == MSS_SDM632) {
mem_pwr_ctl = QDSP6SS_MEM_PWR_CTL;
i = 19;
reverse = 0;
@@ -2303,6 +2308,43 @@ static const struct rproc_hexagon_res sc7280_mss = {
.version = MSS_SC7280,
};
+static const struct rproc_hexagon_res sdm632_mss = {
+ .hexagon_mba_image = "mba.mbn",
+ .proxy_supply = (struct qcom_mss_reg_res[]) {
+ {
+ .supply = "pll",
+ .uA = 100000,
+ },
+ {}
+ },
+ .proxy_clk_names = (char*[]){
+ "xo",
+ NULL
+ },
+ .active_clk_names = (char*[]){
+ "iface",
+ "bus",
+ "mem",
+ NULL
+ },
+ .proxy_pd_names = (char*[]) {
+ "cx",
+ "mx",
+ "mss",
+ NULL
+ },
+ .need_mem_protection = false,
+ .need_pas_mem_setup = true,
+ .has_alt_reset = false,
+ .has_mba_logs = false,
+ .has_spare_reg = false,
+ .has_qaccept_regs = false,
+ .has_ext_bhs_reg = false,
+ .has_ext_cntl_regs = false,
+ .has_vq6 = false,
+ .version = MSS_SDM632,
+};
+
static const struct rproc_hexagon_res sdm660_mss = {
.hexagon_mba_image = "mba.mbn",
.proxy_clk_names = (char*[]){
@@ -2896,6 +2938,7 @@ static const struct of_device_id q6v5_of_match[] = {
{ .compatible = "qcom,msm8998-mss-pil", .data = &msm8998_mss},
{ .compatible = "qcom,sc7180-mss-pil", .data = &sc7180_mss},
{ .compatible = "qcom,sc7280-mss-pil", .data = &sc7280_mss},
+ { .compatible = "qcom,sdm632-mss-pil", .data = &sdm632_mss},
{ .compatible = "qcom,sdm660-mss-pil", .data = &sdm660_mss},
{ .compatible = "qcom,sdm845-mss-pil", .data = &sdm845_mss},
{ },
--
2.53.0
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH 7/7] arm64: dts: qcom: sdm632: Correct power domains
2026-03-27 20:11 [PATCH 0/7] MSM8953/SDM632 rpmpd/mss fixes Barnabás Czémán
` (5 preceding siblings ...)
2026-03-27 20:11 ` [PATCH 6/7] remoteproc: qcom_q6v5_mss: Add SDM632 MSS Barnabás Czémán
@ 2026-03-27 20:11 ` Barnabás Czémán
2026-03-27 20:33 ` [PATCH 0/7] MSM8953/SDM632 rpmpd/mss fixes Dmitry Baryshkov
7 siblings, 0 replies; 14+ messages in thread
From: Barnabás Czémán @ 2026-03-27 20:11 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson,
Ulf Hansson, Mathieu Poirier, Konrad Dybcio, Stephan Gerhold
Cc: linux-arm-msm, devicetree, linux-kernel, linux-pm,
linux-remoteproc, Barnabás Czémán
SDM632 is using different pm domains from MSM8953 override them
where it is needed.
Signed-off-by: Barnabás Czémán <barnabas.czeman@mainlining.org>
---
arch/arm64/boot/dts/qcom/sdm632.dtsi | 31 +++++++++++++++++++++++++++++++
1 file changed, 31 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/sdm632.dtsi b/arch/arm64/boot/dts/qcom/sdm632.dtsi
index 40d86d91b67f..b1dbcffd51b6 100644
--- a/arch/arm64/boot/dts/qcom/sdm632.dtsi
+++ b/arch/arm64/boot/dts/qcom/sdm632.dtsi
@@ -87,3 +87,34 @@ opp-725000000 {
required-opps = <&rpmpd_opp_turbo>;
};
};
+
+&lpass {
+ power-domains = <&rpmpd SDM632_VDDCX>;
+ power-domain-names = "cx";
+};
+
+&mpss {
+ compatible = "qcom,sdm632-mss-pil";
+ power-domains = <&rpmpd SDM632_VDDCX>,
+ <&rpmpd SDM632_VDDMX>,
+ <&rpmpd SDM632_VDDMD>;
+ power-domain-names = "cx", "mx", "mss";
+};
+
+&rpmpd {
+ compatible = "qcom,sdm632-rpmpd";
+};
+
+&sdhc_1 {
+ power-domains = <&rpmpd SDM632_VDDCX>;
+};
+
+&sdhc_2 {
+ power-domains = <&rpmpd SDM632_VDDCX>;
+};
+
+&wcnss {
+ power-domains = <&rpmpd SDM632_VDDCX>,
+ <&rpmpd SDM632_VDDMX>;
+ power-domain-names = "cx", "mx";
+};
--
2.53.0
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH 1/7] dt-bindings: power: qcom-rpmpd: Split MSM8953 and SDM632
2026-03-27 20:11 ` [PATCH 1/7] dt-bindings: power: qcom-rpmpd: Split MSM8953 and SDM632 Barnabás Czémán
@ 2026-03-27 20:26 ` Dmitry Baryshkov
2026-03-28 8:22 ` Barnabás Czémán
0 siblings, 1 reply; 14+ messages in thread
From: Dmitry Baryshkov @ 2026-03-27 20:26 UTC (permalink / raw)
To: Barnabás Czémán
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson,
Ulf Hansson, Mathieu Poirier, Konrad Dybcio, Stephan Gerhold,
linux-arm-msm, devicetree, linux-kernel, linux-pm,
linux-remoteproc
On Fri, Mar 27, 2026 at 09:11:43PM +0100, Barnabás Czémán wrote:
> Remove modem related bindings from MSM8953 rpmpd because MSM8953 MSS
> is using mss-supply as a regulator usually it is pm8953_s1.
> Split SDM632 bindings from MSM8953 because SDM632 is using mss-supply
> as a pm domain.
>
> Signed-off-by: Barnabás Czémán <barnabas.czeman@mainlining.org>
> ---
> .../devicetree/bindings/power/qcom,rpmpd.yaml | 1 +
> include/dt-bindings/power/qcom-rpmpd.h | 20 +++++++++++++-------
> 2 files changed, 14 insertions(+), 7 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/power/qcom,rpmpd.yaml b/Documentation/devicetree/bindings/power/qcom,rpmpd.yaml
> index 8174ceeab572..659936d6a46e 100644
> --- a/Documentation/devicetree/bindings/power/qcom,rpmpd.yaml
> +++ b/Documentation/devicetree/bindings/power/qcom,rpmpd.yaml
> @@ -48,6 +48,7 @@ properties:
> - qcom,sc7280-rpmhpd
> - qcom,sc8180x-rpmhpd
> - qcom,sc8280xp-rpmhpd
> + - qcom,sdm632-rpmpd
> - qcom,sdm660-rpmpd
> - qcom,sdm670-rpmhpd
> - qcom,sdm845-rpmhpd
> diff --git a/include/dt-bindings/power/qcom-rpmpd.h b/include/dt-bindings/power/qcom-rpmpd.h
> index 4371ac941f29..2d82434b993c 100644
> --- a/include/dt-bindings/power/qcom-rpmpd.h
> +++ b/include/dt-bindings/power/qcom-rpmpd.h
> @@ -84,13 +84,11 @@
> #define QM215_VDDMX_AO MSM8917_VDDMX_AO
>
> /* MSM8953 Power Domain Indexes */
> -#define MSM8953_VDDMD 0
> -#define MSM8953_VDDMD_AO 1
> -#define MSM8953_VDDCX 2
> -#define MSM8953_VDDCX_AO 3
> -#define MSM8953_VDDCX_VFL 4
> -#define MSM8953_VDDMX 5
> -#define MSM8953_VDDMX_AO 6
> +#define MSM8953_VDDCX RPMPD_VDDCX
> +#define MSM8953_VDDCX_AO RPMPD_VDDCX_AO
> +#define MSM8953_VDDCX_VFL RPMPD_VDDCX_VFL
> +#define MSM8953_VDDMX RPMPD_VDDMX
> +#define MSM8953_VDDMX_AO RPMPD_VDDMX_AO
Well, no. This is an ABI break. It will make previous DT to stop from
working. You can drop unused indices, but you can not change the values
used by the existing domains.
>
> /* MSM8974 Power Domain Indexes */
> #define MSM8974_VDDCX 0
> @@ -156,6 +154,14 @@
> #define QCS404_LPIMX 5
> #define QCS404_LPIMX_VFL 6
>
> +/* SDM632 Power Domain Indexes */
> +#define SDM632_VDDMD 0
> +#define SDM632_VDDCX 1
> +#define SDM632_VDDCX_AO 2
> +#define SDM632_VDDCX_VFL 3
> +#define SDM632_VDDMX 4
> +#define SDM632_VDDMX_AO 5
Please use RPMHPD_* instead of introducing new entries.
> +
> /* SDM660 Power Domains */
> #define SDM660_VDDCX RPMPD_VDDCX
> #define SDM660_VDDCX_AO RPMPD_VDDCX_AO
>
> --
> 2.53.0
>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 0/7] MSM8953/SDM632 rpmpd/mss fixes
2026-03-27 20:11 [PATCH 0/7] MSM8953/SDM632 rpmpd/mss fixes Barnabás Czémán
` (6 preceding siblings ...)
2026-03-27 20:11 ` [PATCH 7/7] arm64: dts: qcom: sdm632: Correct power domains Barnabás Czémán
@ 2026-03-27 20:33 ` Dmitry Baryshkov
2026-03-27 20:38 ` Barnabás Czémán
7 siblings, 1 reply; 14+ messages in thread
From: Dmitry Baryshkov @ 2026-03-27 20:33 UTC (permalink / raw)
To: Barnabás Czémán
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson,
Ulf Hansson, Mathieu Poirier, Konrad Dybcio, Stephan Gerhold,
linux-arm-msm, devicetree, linux-kernel, linux-pm,
linux-remoteproc
On Fri, Mar 27, 2026 at 09:11:42PM +0100, Barnabás Czémán wrote:
> SDM632 pm domains are different from MSM8953 because MSM8953
> is defining pm8953_s1 as regulator but SDM632 is defining it
> as pm domain.
>
> This patch series correcting the pm domains defined in rpmpd
> driver and splitting the MSS resources for the both SoC to match
> the reality.
>
> These changes was discussed in a previous threads:
> https://lore.kernel.org/all/2b057aa5-4416-4fd4-aeab-6bc23acbb53d@oss.qualcomm.com/
Was 4.9 never expected to work on MSM8953? Or did it require firmware
changes?
>
> Signed-off-by: Barnabás Czémán <barnabas.czeman@mainlining.org>
> ---
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 4/7] arm64: dts: qcom: msm8953: fix modem pm domains
2026-03-27 20:11 ` [PATCH 4/7] arm64: dts: qcom: msm8953: fix modem pm domains Barnabás Czémán
@ 2026-03-27 20:35 ` Dmitry Baryshkov
0 siblings, 0 replies; 14+ messages in thread
From: Dmitry Baryshkov @ 2026-03-27 20:35 UTC (permalink / raw)
To: Barnabás Czémán
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson,
Ulf Hansson, Mathieu Poirier, Konrad Dybcio, Stephan Gerhold,
linux-arm-msm, devicetree, linux-kernel, linux-pm,
linux-remoteproc
On Fri, Mar 27, 2026 at 09:11:46PM +0100, Barnabás Czémán wrote:
> MSM8953 MSS is using mss-supply as regulator.
"On MSM8953 MSS regulators is controlled using the voltages rather than
performance levels. Correct DT definition and model the MSS as a
regulator rather than a power domain".
Also please squash with the changes actually making use of the
regulator.
>
> Signed-off-by: Barnabás Czémán <barnabas.czeman@mainlining.org>
> ---
> arch/arm64/boot/dts/qcom/msm8953.dtsi | 5 ++---
> 1 file changed, 2 insertions(+), 3 deletions(-)
>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 0/7] MSM8953/SDM632 rpmpd/mss fixes
2026-03-27 20:33 ` [PATCH 0/7] MSM8953/SDM632 rpmpd/mss fixes Dmitry Baryshkov
@ 2026-03-27 20:38 ` Barnabás Czémán
2026-03-27 20:45 ` Dmitry Baryshkov
0 siblings, 1 reply; 14+ messages in thread
From: Barnabás Czémán @ 2026-03-27 20:38 UTC (permalink / raw)
To: Dmitry Baryshkov
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson,
Ulf Hansson, Mathieu Poirier, Konrad Dybcio, Stephan Gerhold,
linux-arm-msm, devicetree, linux-kernel, linux-pm,
linux-remoteproc
On 2026-03-27 21:33, Dmitry Baryshkov wrote:
> On Fri, Mar 27, 2026 at 09:11:42PM +0100, Barnabás Czémán wrote:
>> SDM632 pm domains are different from MSM8953 because MSM8953
>> is defining pm8953_s1 as regulator but SDM632 is defining it
>> as pm domain.
>>
>> This patch series correcting the pm domains defined in rpmpd
>> driver and splitting the MSS resources for the both SoC to match
>> the reality.
>>
>> These changes was discussed in a previous threads:
>> https://lore.kernel.org/all/2b057aa5-4416-4fd4-aeab-6bc23acbb53d@oss.qualcomm.com/
>
> Was 4.9 never expected to work on MSM8953? Or did it require firmware
> changes?
There is no official 4.9 kernel for MSM8953 devices, all of them are
using 3.18.
There are unofficial 4.9 ports for those devices but all of them
defining s1 as
a regulator so the regulators were changed back like it was on 3.18.
>
>>
>> Signed-off-by: Barnabás Czémán <barnabas.czeman@mainlining.org>
>> ---
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 0/7] MSM8953/SDM632 rpmpd/mss fixes
2026-03-27 20:38 ` Barnabás Czémán
@ 2026-03-27 20:45 ` Dmitry Baryshkov
0 siblings, 0 replies; 14+ messages in thread
From: Dmitry Baryshkov @ 2026-03-27 20:45 UTC (permalink / raw)
To: Barnabás Czémán
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson,
Ulf Hansson, Mathieu Poirier, Konrad Dybcio, Stephan Gerhold,
linux-arm-msm, devicetree, linux-kernel, linux-pm,
linux-remoteproc
On Fri, Mar 27, 2026 at 09:38:20PM +0100, Barnabás Czémán wrote:
> On 2026-03-27 21:33, Dmitry Baryshkov wrote:
> > On Fri, Mar 27, 2026 at 09:11:42PM +0100, Barnabás Czémán wrote:
> > > SDM632 pm domains are different from MSM8953 because MSM8953
> > > is defining pm8953_s1 as regulator but SDM632 is defining it
> > > as pm domain.
> > >
> > > This patch series correcting the pm domains defined in rpmpd
> > > driver and splitting the MSS resources for the both SoC to match
> > > the reality.
> > >
> > > These changes was discussed in a previous threads:
> > > https://lore.kernel.org/all/2b057aa5-4416-4fd4-aeab-6bc23acbb53d@oss.qualcomm.com/
> >
> > Was 4.9 never expected to work on MSM8953? Or did it require firmware
> > changes?
> There is no official 4.9 kernel for MSM8953 devices, all of them are using
> 3.18.
> There are unofficial 4.9 ports for those devices but all of them defining s1
> as
> a regulator so the regulators were changed back like it was on 3.18.
Ack, thanks. I was looking at the msm-4.4 tree from the sdm660 branches,
which has msm8953.dtsi. Thanks for the confirmation.
> >
> > >
> > > Signed-off-by: Barnabás Czémán <barnabas.czeman@mainlining.org>
> > > ---
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 1/7] dt-bindings: power: qcom-rpmpd: Split MSM8953 and SDM632
2026-03-27 20:26 ` Dmitry Baryshkov
@ 2026-03-28 8:22 ` Barnabás Czémán
0 siblings, 0 replies; 14+ messages in thread
From: Barnabás Czémán @ 2026-03-28 8:22 UTC (permalink / raw)
To: Dmitry Baryshkov
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson,
Ulf Hansson, Mathieu Poirier, Konrad Dybcio, Stephan Gerhold,
linux-arm-msm, devicetree, linux-kernel, linux-pm,
linux-remoteproc
On 2026-03-27 21:26, Dmitry Baryshkov wrote:
> On Fri, Mar 27, 2026 at 09:11:43PM +0100, Barnabás Czémán wrote:
>> Remove modem related bindings from MSM8953 rpmpd because MSM8953 MSS
>> is using mss-supply as a regulator usually it is pm8953_s1.
>> Split SDM632 bindings from MSM8953 because SDM632 is using mss-supply
>> as a pm domain.
>>
>> Signed-off-by: Barnabás Czémán <barnabas.czeman@mainlining.org>
>> ---
>> .../devicetree/bindings/power/qcom,rpmpd.yaml | 1 +
>> include/dt-bindings/power/qcom-rpmpd.h | 20
>> +++++++++++++-------
>> 2 files changed, 14 insertions(+), 7 deletions(-)
>>
>> diff --git a/Documentation/devicetree/bindings/power/qcom,rpmpd.yaml
>> b/Documentation/devicetree/bindings/power/qcom,rpmpd.yaml
>> index 8174ceeab572..659936d6a46e 100644
>> --- a/Documentation/devicetree/bindings/power/qcom,rpmpd.yaml
>> +++ b/Documentation/devicetree/bindings/power/qcom,rpmpd.yaml
>> @@ -48,6 +48,7 @@ properties:
>> - qcom,sc7280-rpmhpd
>> - qcom,sc8180x-rpmhpd
>> - qcom,sc8280xp-rpmhpd
>> + - qcom,sdm632-rpmpd
>> - qcom,sdm660-rpmpd
>> - qcom,sdm670-rpmhpd
>> - qcom,sdm845-rpmhpd
>> diff --git a/include/dt-bindings/power/qcom-rpmpd.h
>> b/include/dt-bindings/power/qcom-rpmpd.h
>> index 4371ac941f29..2d82434b993c 100644
>> --- a/include/dt-bindings/power/qcom-rpmpd.h
>> +++ b/include/dt-bindings/power/qcom-rpmpd.h
>> @@ -84,13 +84,11 @@
>> #define QM215_VDDMX_AO MSM8917_VDDMX_AO
>>
>> /* MSM8953 Power Domain Indexes */
>> -#define MSM8953_VDDMD 0
>> -#define MSM8953_VDDMD_AO 1
>> -#define MSM8953_VDDCX 2
>> -#define MSM8953_VDDCX_AO 3
>> -#define MSM8953_VDDCX_VFL 4
>> -#define MSM8953_VDDMX 5
>> -#define MSM8953_VDDMX_AO 6
>> +#define MSM8953_VDDCX RPMPD_VDDCX
>> +#define MSM8953_VDDCX_AO RPMPD_VDDCX_AO
>> +#define MSM8953_VDDCX_VFL RPMPD_VDDCX_VFL
>> +#define MSM8953_VDDMX RPMPD_VDDMX
>> +#define MSM8953_VDDMX_AO RPMPD_VDDMX_AO
>
> Well, no. This is an ABI break. It will make previous DT to stop from
> working. You can drop unused indices, but you can not change the values
> used by the existing domains.
Do these indices never can be changed?
>
>>
>> /* MSM8974 Power Domain Indexes */
>> #define MSM8974_VDDCX 0
>> @@ -156,6 +154,14 @@
>> #define QCS404_LPIMX 5
>> #define QCS404_LPIMX_VFL 6
>>
>> +/* SDM632 Power Domain Indexes */
>> +#define SDM632_VDDMD 0
>> +#define SDM632_VDDCX 1
>> +#define SDM632_VDDCX_AO 2
>> +#define SDM632_VDDCX_VFL 3
>> +#define SDM632_VDDMX 4
>> +#define SDM632_VDDMX_AO 5
>
> Please use RPMHPD_* instead of introducing new entries.
I do not understand completely, should I use RPHPD bindings in rpmpd
driver or
I should use rpmhpd driver for SDM632?
>
>> +
>> /* SDM660 Power Domains */
>> #define SDM660_VDDCX RPMPD_VDDCX
>> #define SDM660_VDDCX_AO RPMPD_VDDCX_AO
>>
>> --
>> 2.53.0
>>
^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2026-03-28 8:22 UTC | newest]
Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-03-27 20:11 [PATCH 0/7] MSM8953/SDM632 rpmpd/mss fixes Barnabás Czémán
2026-03-27 20:11 ` [PATCH 1/7] dt-bindings: power: qcom-rpmpd: Split MSM8953 and SDM632 Barnabás Czémán
2026-03-27 20:26 ` Dmitry Baryshkov
2026-03-28 8:22 ` Barnabás Czémán
2026-03-27 20:11 ` [PATCH 2/7] pmdomain: qcom: rpmpd: Split SDM632 pm domains from MSM8953 Barnabás Czémán
2026-03-27 20:11 ` [PATCH 3/7] remoteproc: qcom_q6v5_mss: Use mss as regulator for MSM8953 Barnabás Czémán
2026-03-27 20:11 ` [PATCH 4/7] arm64: dts: qcom: msm8953: fix modem pm domains Barnabás Czémán
2026-03-27 20:35 ` Dmitry Baryshkov
2026-03-27 20:11 ` [PATCH 5/7] dt-bindings: remoteproc: qcom,msm8916-mss-pil: Add SDM632 Barnabás Czémán
2026-03-27 20:11 ` [PATCH 6/7] remoteproc: qcom_q6v5_mss: Add SDM632 MSS Barnabás Czémán
2026-03-27 20:11 ` [PATCH 7/7] arm64: dts: qcom: sdm632: Correct power domains Barnabás Czémán
2026-03-27 20:33 ` [PATCH 0/7] MSM8953/SDM632 rpmpd/mss fixes Dmitry Baryshkov
2026-03-27 20:38 ` Barnabás Czémán
2026-03-27 20:45 ` Dmitry Baryshkov
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox