pmdomain: qcom: rpmpd: Add MSM8917 power domains
authorOtto Pflüger <otto.pflueger@abscue.de>
Sat, 14 Oct 2023 13:38:22 +0000 (15:38 +0200)
committerUlf Hansson <ulf.hansson@linaro.org>
Tue, 24 Oct 2023 10:50:11 +0000 (12:50 +0200)
MSM8917 uses the SMPA2 and LDOA3 regulators provided by the PM8937 PMIC
for the VDDCX and VDDMX power domains in voltage level mode,
respectively. These definitions should also work on MSM8937.

Signed-off-by: Otto Pflüger <otto.pflueger@abscue.de>
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Link: https://lore.kernel.org/r/20231014133823.14088-3-otto.pflueger@abscue.de
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/pmdomain/qcom/rpmpd.c

index 524631dcab4b22ab1feb3c0ca6a8ec1b7f5fc66a..ae71f78243e1ec0924c6ca5a84a9ae6b565a028d 100644 (file)
@@ -257,6 +257,24 @@ static struct rpmpd mx_l3a_corner_ao = {
        .key = KEY_CORNER,
 };
 
+static struct rpmpd mx_l3a_lvl_ao;
+static struct rpmpd mx_l3a_lvl = {
+       .pd = { .name = "mx", },
+       .peer = &mx_l3a_lvl_ao,
+       .res_type = RPMPD_LDOA,
+       .res_id = 3,
+       .key = KEY_LEVEL,
+};
+
+static struct rpmpd mx_l3a_lvl_ao = {
+       .pd = { .name = "mx_ao", },
+       .peer = &mx_l3a_lvl,
+       .active_only = true,
+       .res_type = RPMPD_LDOA,
+       .res_id = 3,
+       .key = KEY_LEVEL,
+};
+
 static struct rpmpd mx_l12a_lvl_ao;
 static struct rpmpd mx_l12a_lvl = {
        .pd = { .name = "mx", },
@@ -572,6 +590,20 @@ static const struct rpmpd_desc msm8916_desc = {
        .max_state = MAX_CORNER_RPMPD_STATE,
 };
 
+static struct rpmpd *msm8917_rpmpds[] = {
+       [MSM8917_VDDCX] =       &cx_s2a_lvl,
+       [MSM8917_VDDCX_AO] =    &cx_s2a_lvl_ao,
+       [MSM8917_VDDCX_VFL] =   &cx_s2a_vfl,
+       [MSM8917_VDDMX] =       &mx_l3a_lvl,
+       [MSM8917_VDDMX_AO] =    &mx_l3a_lvl_ao,
+};
+
+static const struct rpmpd_desc msm8917_desc = {
+       .rpmpds = msm8917_rpmpds,
+       .num_pds = ARRAY_SIZE(msm8917_rpmpds),
+       .max_state = RPM_SMD_LEVEL_TURBO,
+};
+
 static struct rpmpd *msm8953_rpmpds[] = {
        [MSM8953_VDDMD] =       &md_s1a_lvl,
        [MSM8953_VDDMD_AO] =    &md_s1a_lvl_ao,
@@ -764,6 +796,7 @@ static const struct of_device_id rpmpd_match_table[] = {
        { .compatible = "qcom,msm8226-rpmpd", .data = &msm8226_desc },
        { .compatible = "qcom,msm8909-rpmpd", .data = &msm8916_desc },
        { .compatible = "qcom,msm8916-rpmpd", .data = &msm8916_desc },
+       { .compatible = "qcom,msm8917-rpmpd", .data = &msm8917_desc },
        { .compatible = "qcom,msm8939-rpmpd", .data = &msm8939_desc },
        { .compatible = "qcom,msm8953-rpmpd", .data = &msm8953_desc },
        { .compatible = "qcom,msm8976-rpmpd", .data = &msm8976_desc },