drivers: soc: qcom: rpmpd: Add SM6115 RPM Power Domains
authorIskren Chernev <iskren.chernev@gmail.com>
Sun, 27 Jun 2021 18:59:27 +0000 (21:59 +0300)
committerBjorn Andersson <bjorn.andersson@linaro.org>
Mon, 19 Jul 2021 22:32:50 +0000 (17:32 -0500)
The SM4250/6115 have 4 rpm power domains, ported from downstream DT.

Signed-off-by: Iskren Chernev <iskren.chernev@gmail.com>
Link: https://lore.kernel.org/r/20210627185927.695411-6-iskren.chernev@gmail.com
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
drivers/soc/qcom/rpmpd.c

index 0b532a892d608a122ac0bce47aee38fd42db22bd..dbf494e92574304551f6e1c986368abd4aec1657 100644 (file)
@@ -346,6 +346,33 @@ static const struct rpmpd_desc sdm660_desc = {
        .max_state = RPM_SMD_LEVEL_TURBO,
 };
 
+/* sm4250/6115 RPM Power domains */
+DEFINE_RPMPD_PAIR(sm6115, vddcx, vddcx_ao, RWCX, LEVEL, 0);
+DEFINE_RPMPD_VFL(sm6115, vddcx_vfl, RWCX, 0);
+
+DEFINE_RPMPD_PAIR(sm6115, vddmx, vddmx_ao, RWMX, LEVEL, 0);
+DEFINE_RPMPD_VFL(sm6115, vddmx_vfl, RWMX, 0);
+
+DEFINE_RPMPD_LEVEL(sm6115, vdd_lpi_cx, RWLC, 0);
+DEFINE_RPMPD_LEVEL(sm6115, vdd_lpi_mx, RWLM, 0);
+
+static struct rpmpd *sm6115_rpmpds[] = {
+       [SM6115_VDDCX] =                &sm6115_vddcx,
+       [SM6115_VDDCX_AO] =             &sm6115_vddcx_ao,
+       [SM6115_VDDCX_VFL] =            &sm6115_vddcx_vfl,
+       [SM6115_VDDMX] =                &sm6115_vddmx,
+       [SM6115_VDDMX_AO] =             &sm6115_vddmx_ao,
+       [SM6115_VDDMX_VFL] =            &sm6115_vddmx_vfl,
+       [SM6115_VDD_LPI_CX] =           &sm6115_vdd_lpi_cx,
+       [SM6115_VDD_LPI_MX] =           &sm6115_vdd_lpi_mx,
+};
+
+static const struct rpmpd_desc sm6115_desc = {
+       .rpmpds = sm6115_rpmpds,
+       .num_pds = ARRAY_SIZE(sm6115_rpmpds),
+       .max_state = RPM_SMD_LEVEL_TURBO_NO_CPR,
+};
+
 static const struct of_device_id rpmpd_match_table[] = {
        { .compatible = "qcom,mdm9607-rpmpd", .data = &mdm9607_desc },
        { .compatible = "qcom,msm8916-rpmpd", .data = &msm8916_desc },
@@ -356,6 +383,7 @@ static const struct of_device_id rpmpd_match_table[] = {
        { .compatible = "qcom,msm8998-rpmpd", .data = &msm8998_desc },
        { .compatible = "qcom,qcs404-rpmpd", .data = &qcs404_desc },
        { .compatible = "qcom,sdm660-rpmpd", .data = &sdm660_desc },
+       { .compatible = "qcom,sm6115-rpmpd", .data = &sm6115_desc },
        { }
 };
 MODULE_DEVICE_TABLE(of, rpmpd_match_table);