2020-09-30 10:03:41

by Jun Nie

[permalink] [raw]
Subject: [PATCH v3 0/2] Add MSM8939 RPM power domains

Add MSM8939 RPM power domains and associated document. This is based on
Stephan's patch set to reuse max state definition:
https://lore.kernel.org/linux-arm-msm/[email protected]/

Changes vs v2:
- fix max power domain state value.
- trim code layout.

Jun Nie (2):
dt-bindings: power: rpmpd: Add MSM8939 RPM power domains
soc: qcom: rpmpd: Add MSM8939 power-domains

.../devicetree/bindings/power/qcom,rpmpd.yaml | 1 +
drivers/soc/qcom/rpmpd.c | 27 +++++++++++++++++++
include/dt-bindings/power/qcom-rpmpd.h | 10 +++++++
3 files changed, 38 insertions(+)

--
2.17.1


2020-09-30 10:03:51

by Jun Nie

[permalink] [raw]
Subject: [PATCH v3 1/2] dt-bindings: power: rpmpd: Add MSM8939 RPM power domains

MSM8939 has three RPM power domains: VDDCX and VDDMX and VDDMDCX.
Add the device tree bindings to manage them through rpmpd.

Signed-off-by: Jun Nie <[email protected]>
---
.../devicetree/bindings/power/qcom,rpmpd.yaml | 1 +
include/dt-bindings/power/qcom-rpmpd.h | 10 ++++++++++
2 files changed, 11 insertions(+)

diff --git a/Documentation/devicetree/bindings/power/qcom,rpmpd.yaml b/Documentation/devicetree/bindings/power/qcom,rpmpd.yaml
index f136d06b7fc8..919150f426d4 100644
--- a/Documentation/devicetree/bindings/power/qcom,rpmpd.yaml
+++ b/Documentation/devicetree/bindings/power/qcom,rpmpd.yaml
@@ -17,6 +17,7 @@ properties:
compatible:
enum:
- qcom,msm8916-rpmpd
+ - qcom,msm8939-rpmpd
- qcom,msm8976-rpmpd
- qcom,msm8996-rpmpd
- qcom,msm8998-rpmpd
diff --git a/include/dt-bindings/power/qcom-rpmpd.h b/include/dt-bindings/power/qcom-rpmpd.h
index 83dae2cabb60..4c07f2402b94 100644
--- a/include/dt-bindings/power/qcom-rpmpd.h
+++ b/include/dt-bindings/power/qcom-rpmpd.h
@@ -71,6 +71,16 @@
#define MSM8916_VDDMX 3
#define MSM8916_VDDMX_AO 4

+/* MSM8939 Power Domains */
+#define MSM8939_VDDMDCX 0
+#define MSM8939_VDDMDCX_AO 1
+#define MSM8939_VDDMDCX_VFC 2
+#define MSM8939_VDDCX 3
+#define MSM8939_VDDCX_AO 4
+#define MSM8939_VDDCX_VFC 5
+#define MSM8939_VDDMX 6
+#define MSM8939_VDDMX_AO 7
+
/* MSM8976 Power Domain Indexes */
#define MSM8976_VDDCX 0
#define MSM8976_VDDCX_AO 1
--
2.17.1

2020-09-30 10:05:09

by Jun Nie

[permalink] [raw]
Subject: [PATCH v3 2/2] soc: qcom: rpmpd: Add MSM8939 power-domains

Add the shared modemcx/cx/mx power-domains found on MSM8939.

Signed-off-by: Jun Nie <[email protected]>
---
drivers/soc/qcom/rpmpd.c | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)

diff --git a/drivers/soc/qcom/rpmpd.c b/drivers/soc/qcom/rpmpd.c
index daeea119d48a..3887d57a5a15 100644
--- a/drivers/soc/qcom/rpmpd.c
+++ b/drivers/soc/qcom/rpmpd.c
@@ -136,6 +136,32 @@ static const struct rpmpd_desc msm8916_desc = {
.max_state = MAX_CORNER_RPMPD_STATE,
};

+/* msm8939 RPM Power Domains */
+DEFINE_RPMPD_PAIR(msm8939, vddmd, vddmd_ao, SMPA, CORNER, 1);
+DEFINE_RPMPD_VFC(msm8939, vddmd_vfc, SMPA, 1);
+
+DEFINE_RPMPD_PAIR(msm8939, vddcx, vddcx_ao, SMPA, CORNER, 2);
+DEFINE_RPMPD_VFC(msm8939, vddcx_vfc, SMPA, 2);
+
+DEFINE_RPMPD_PAIR(msm8939, vddmx, vddmx_ao, LDOA, CORNER, 3);
+
+static struct rpmpd *msm8939_rpmpds[] = {
+ [MSM8939_VDDMDCX] = &msm8939_vddmd,
+ [MSM8939_VDDMDCX_AO] = &msm8939_vddmd_ao,
+ [MSM8939_VDDMDCX_VFC] = &msm8939_vddmd_vfc,
+ [MSM8939_VDDCX] = &msm8939_vddcx,
+ [MSM8939_VDDCX_AO] = &msm8939_vddcx_ao,
+ [MSM8939_VDDCX_VFC] = &msm8939_vddcx_vfc,
+ [MSM8939_VDDMX] = &msm8939_vddmx,
+ [MSM8939_VDDMX_AO] = &msm8939_vddmx_ao,
+};
+
+static const struct rpmpd_desc msm8939_desc = {
+ .rpmpds = msm8939_rpmpds,
+ .num_pds = ARRAY_SIZE(msm8939_rpmpds),
+ .max_state = MAX_CORNER_RPMPD_STATE,
+};
+
/* msm8976 RPM Power Domains */
DEFINE_RPMPD_PAIR(msm8976, vddcx, vddcx_ao, SMPA, LEVEL, 2);
DEFINE_RPMPD_PAIR(msm8976, vddmx, vddmx_ao, SMPA, LEVEL, 6);
@@ -242,6 +268,7 @@ static const struct rpmpd_desc qcs404_desc = {

static const struct of_device_id rpmpd_match_table[] = {
{ .compatible = "qcom,msm8916-rpmpd", .data = &msm8916_desc },
+ { .compatible = "qcom,msm8939-rpmpd", .data = &msm8939_desc },
{ .compatible = "qcom,msm8976-rpmpd", .data = &msm8976_desc },
{ .compatible = "qcom,msm8996-rpmpd", .data = &msm8996_desc },
{ .compatible = "qcom,msm8998-rpmpd", .data = &msm8998_desc },
--
2.17.1

2020-10-01 11:19:33

by Stephan Gerhold

[permalink] [raw]
Subject: Re: [PATCH v3 0/2] Add MSM8939 RPM power domains

On Wed, Sep 30, 2020 at 06:01:43PM +0800, Jun Nie wrote:
> Add MSM8939 RPM power domains and associated document. This is based on
> Stephan's patch set to reuse max state definition:
> https://lore.kernel.org/linux-arm-msm/[email protected]/
>
> Changes vs v2:
> - fix max power domain state value.
> - trim code layout.
>
> Jun Nie (2):
> dt-bindings: power: rpmpd: Add MSM8939 RPM power domains
> soc: qcom: rpmpd: Add MSM8939 power-domains
>
> .../devicetree/bindings/power/qcom,rpmpd.yaml | 1 +
> drivers/soc/qcom/rpmpd.c | 27 +++++++++++++++++++
> include/dt-bindings/power/qcom-rpmpd.h | 10 +++++++
> 3 files changed, 38 insertions(+)
>
> --
> 2.17.1
>

Thanks for making the changes! I don't know much about MSM8939 but from
what I know this looks good to me. FWIW, for both patches:

Reviewed-by: Stephan Gerhold <[email protected]>

2020-10-06 19:35:03

by Rob Herring

[permalink] [raw]
Subject: Re: [PATCH v3 1/2] dt-bindings: power: rpmpd: Add MSM8939 RPM power domains

On Wed, 30 Sep 2020 18:01:44 +0800, Jun Nie wrote:
> MSM8939 has three RPM power domains: VDDCX and VDDMX and VDDMDCX.
> Add the device tree bindings to manage them through rpmpd.
>
> Signed-off-by: Jun Nie <[email protected]>
> ---
> .../devicetree/bindings/power/qcom,rpmpd.yaml | 1 +
> include/dt-bindings/power/qcom-rpmpd.h | 10 ++++++++++
> 2 files changed, 11 insertions(+)
>

Acked-by: Rob Herring <[email protected]>