]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
pmdomain: qcom: rpmhpd: Add power domains for Hawi SoC
authorFenglin Wu <fenglin.wu@oss.qualcomm.com>
Fri, 3 Apr 2026 00:35:22 +0000 (17:35 -0700)
committerUlf Hansson <ulf.hansson@linaro.org>
Wed, 8 Apr 2026 10:01:37 +0000 (12:01 +0200)
Add the RPMh power domains required for the Hawi SoC. This includes
new definitions for domains supplying specific hardware components:
- DCX: supplies VDD_DISP
- GBX: supplies VDD_GFX_BX

Reviewed-by: Taniya Das <taniya.das@oss.qualcomm.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Signed-off-by: Fenglin Wu <fenglin.wu@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 b0c80e4bd86c90becc035da80cac33084335889a..ba0cf4694435925bc8a272287cf94256c09a30a5 100644 (file)
@@ -102,11 +102,21 @@ static struct rpmhpd cx_ao_w_mx_parent = {
        .res_name = "cx.lvl",
 };
 
+static struct rpmhpd dcx = {
+       .pd = { .name = "dcx", },
+       .res_name = "dcx.lvl",
+};
+
 static struct rpmhpd ebi = {
        .pd = { .name = "ebi", },
        .res_name = "ebi.lvl",
 };
 
+static struct rpmhpd gbx = {
+       .pd = { .name = "gbx", },
+       .res_name = "gbx.lvl",
+};
+
 static struct rpmhpd gfx = {
        .pd = { .name = "gfx", },
        .res_name = "gfx.lvl",
@@ -641,6 +651,33 @@ static const struct rpmhpd_desc kaanapali_desc = {
        .num_pds = ARRAY_SIZE(kaanapali_rpmhpds),
 };
 
+/* Hawi RPMH powerdomains */
+static struct rpmhpd *hawi_rpmhpds[] = {
+       [RPMHPD_CX] = &cx,
+       [RPMHPD_CX_AO] = &cx_ao,
+       [RPMHPD_DCX] = &dcx,
+       [RPMHPD_EBI] = &ebi,
+       [RPMHPD_GBX] = &gbx,
+       [RPMHPD_GFX] = &gfx,
+       [RPMHPD_GMXC] = &gmxc,
+       [RPMHPD_LCX] = &lcx,
+       [RPMHPD_LMX] = &lmx,
+       [RPMHPD_MMCX] = &mmcx,
+       [RPMHPD_MMCX_AO] = &mmcx_ao,
+       [RPMHPD_MX] = &mx,
+       [RPMHPD_MX_AO] = &mx_ao,
+       [RPMHPD_MXC] = &mxc,
+       [RPMHPD_MXC_AO] = &mxc_ao,
+       [RPMHPD_MSS] = &mss,
+       [RPMHPD_NSP] = &nsp,
+       [RPMHPD_NSP2] = &nsp2,
+};
+
+static const struct rpmhpd_desc hawi_desc = {
+       .rpmhpds = hawi_rpmhpds,
+       .num_pds = ARRAY_SIZE(hawi_rpmhpds),
+};
+
 /* QDU1000/QRU1000 RPMH powerdomains */
 static struct rpmhpd *qdu1000_rpmhpds[] = {
        [QDU1000_CX] = &cx,
@@ -816,6 +853,7 @@ static const struct rpmhpd_desc qcs615_desc = {
 static const struct of_device_id rpmhpd_match_table[] = {
        { .compatible = "qcom,eliza-rpmhpd", .data = &eliza_desc },
        { .compatible = "qcom,glymur-rpmhpd", .data = &glymur_desc },
+       { .compatible = "qcom,hawi-rpmhpd", .data = &hawi_desc },
        { .compatible = "qcom,kaanapali-rpmhpd", .data = &kaanapali_desc },
        { .compatible = "qcom,milos-rpmhpd", .data = &milos_desc },
        { .compatible = "qcom,qcs615-rpmhpd", .data = &qcs615_desc },