]> Gentwo Git Trees - linux/.git/commitdiff
pmdomain: qcom: rpmhpd: Add RPMh power domain support for Kaanapali
authorJishnu Prakash <jishnu.prakash@oss.qualcomm.com>
Wed, 24 Sep 2025 23:17:08 +0000 (16:17 -0700)
committerUlf Hansson <ulf.hansson@linaro.org>
Wed, 19 Nov 2025 17:06:49 +0000 (18:06 +0100)
Add the RPMh power domains present in Kaanapali SoCs. Also increase the
maximum allowed number of levels for ARC resources from 16 to 32, as
needed starting on the Kaanapali SoC where the ARC vote registers have been
expanded from 4 to 5 bits.

Signed-off-by: Jishnu Prakash <jishnu.prakash@oss.qualcomm.com>
Signed-off-by: Jingyi Wang <jingyi.wang@oss.qualcomm.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/pmdomain/qcom/rpmhpd.c

index 4faa8a25618621e15d684c4f971785d604601efb..a8b37037c6feae21bf4d57bc5e70bd5618789395 100644 (file)
@@ -19,7 +19,7 @@
 
 #define domain_to_rpmhpd(domain) container_of(domain, struct rpmhpd, pd)
 
-#define RPMH_ARC_MAX_LEVELS    16
+#define RPMH_ARC_MAX_LEVELS    32
 
 /**
  * struct rpmhpd - top level RPMh power domain resource data structure
@@ -595,6 +595,31 @@ static const struct rpmhpd_desc sm8750_desc = {
        .num_pds = ARRAY_SIZE(sm8750_rpmhpds),
 };
 
+/* KAANAPALI RPMH powerdomains */
+static struct rpmhpd *kaanapali_rpmhpds[] = {
+       [RPMHPD_CX] = &cx,
+       [RPMHPD_CX_AO] = &cx_ao,
+       [RPMHPD_EBI] = &ebi,
+       [RPMHPD_GFX] = &gfx,
+       [RPMHPD_GMXC] = &gmxc,
+       [RPMHPD_LCX] = &lcx,
+       [RPMHPD_LMX] = &lmx,
+       [RPMHPD_MX] = &mx,
+       [RPMHPD_MX_AO] = &mx_ao,
+       [RPMHPD_MMCX] = &mmcx,
+       [RPMHPD_MMCX_AO] = &mmcx_ao,
+       [RPMHPD_MSS] = &mss,
+       [RPMHPD_MXC] = &mxc,
+       [RPMHPD_MXC_AO] = &mxc_ao,
+       [RPMHPD_NSP] = &nsp,
+       [RPMHPD_NSP2] = &nsp2,
+};
+
+static const struct rpmhpd_desc kaanapali_desc = {
+       .rpmhpds = kaanapali_rpmhpds,
+       .num_pds = ARRAY_SIZE(kaanapali_rpmhpds),
+};
+
 /* QDU1000/QRU1000 RPMH powerdomains */
 static struct rpmhpd *qdu1000_rpmhpds[] = {
        [QDU1000_CX] = &cx,
@@ -767,6 +792,7 @@ static const struct rpmhpd_desc qcs615_desc = {
 
 static const struct of_device_id rpmhpd_match_table[] = {
        { .compatible = "qcom,glymur-rpmhpd", .data = &glymur_desc },
+       { .compatible = "qcom,kaanapali-rpmhpd", .data = &kaanapali_desc },
        { .compatible = "qcom,milos-rpmhpd", .data = &milos_desc },
        { .compatible = "qcom,qcs615-rpmhpd", .data = &qcs615_desc },
        { .compatible = "qcom,qcs8300-rpmhpd", .data = &qcs8300_desc },