regulator: qcom_spmi: Add PMA8084 regulators
authorStephan Gerhold <stephan@gerhold.net>
Tue, 12 Sep 2023 07:49:54 +0000 (09:49 +0200)
committerMark Brown <broonie@kernel.org>
Tue, 26 Sep 2023 15:42:35 +0000 (17:42 +0200)
Add the necessary definitions for the PMA8084 PMIC to the
qcom_spmi-regulator driver to allow reading the actual voltages applied
to the hardware at runtime. This is mainly intended for debugging since
the regulators are usually controlled through the RPM firmware (via
qcom_smd-regulator).

Signed-off-by: Stephan Gerhold <stephan@gerhold.net>
Link: https://lore.kernel.org/r/20230912-spmi-pm8909-v1-6-ba4b3bfaf87d@gerhold.net
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/regulator/qcom_spmi-regulator.c

index 13fe1c73a5471e403674710b0ad8afa4dbe88eaf..fe32fd53f683bddc35770f86b07add7f157f5a2b 100644 (file)
@@ -2359,6 +2359,54 @@ static const struct spmi_regulator_data pm8994_regulators[] = {
        { }
 };
 
+static const struct spmi_regulator_data pma8084_regulators[] = {
+       { "s1", 0x1400, "vdd_s1", },
+       { "s2", 0x1700, "vdd_s2", },
+       { "s3", 0x1a00, "vdd_s3", },
+       { "s4", 0x1d00, "vdd_s4", },
+       { "s5", 0x2000, "vdd_s5", },
+       { "s6", 0x2300, "vdd_s6", },
+       { "s7", 0x2600, "vdd_s7", },
+       { "s8", 0x2900, "vdd_s8", },
+       { "s9", 0x2c00, "vdd_s9", },
+       { "s10", 0x2f00, "vdd_s10", },
+       { "s11", 0x3200, "vdd_s11", },
+       { "s12", 0x3500, "vdd_s12", },
+       { "l1", 0x4000, "vdd_l1_l11", },
+       { "l2", 0x4100, "vdd_l2_l3_l4_l27", },
+       { "l3", 0x4200, "vdd_l2_l3_l4_l27", },
+       { "l4", 0x4300, "vdd_l2_l3_l4_l27", },
+       { "l5", 0x4400, "vdd_l5_l7", },
+       { "l6", 0x4500, "vdd_l6_l12_l14_l15_l26", },
+       { "l7", 0x4600, "vdd_l5_l7", },
+       { "l8", 0x4700, "vdd_l8", },
+       { "l9", 0x4800, "vdd_l9_l10_l13_l20_l23_l24", },
+       { "l10", 0x4900, "vdd_l9_l10_l13_l20_l23_l24", },
+       { "l11", 0x4a00, "vdd_l1_l11", },
+       { "l12", 0x4b00, "vdd_l6_l12_l14_l15_l26", },
+       { "l13", 0x4c00, "vdd_l9_l10_l13_l20_l23_l24", },
+       { "l14", 0x4d00, "vdd_l6_l12_l14_l15_l26", },
+       { "l15", 0x4e00, "vdd_l6_l12_l14_l15_l26", },
+       { "l16", 0x4f00, "vdd_l16_l25", },
+       { "l17", 0x5000, "vdd_l17", },
+       { "l18", 0x5100, "vdd_l18", },
+       { "l19", 0x5200, "vdd_l19", },
+       { "l20", 0x5300, "vdd_l9_l10_l13_l20_l23_l24", },
+       { "l21", 0x5400, "vdd_l21", },
+       { "l22", 0x5500, "vdd_l22", },
+       { "l23", 0x5600, "vdd_l9_l10_l13_l20_l23_l24", },
+       { "l24", 0x5700, "vdd_l9_l10_l13_l20_l23_l24", },
+       { "l25", 0x5800, "vdd_l16_l25", },
+       { "l26", 0x5900, "vdd_l6_l12_l14_l15_l26", },
+       { "l27", 0x5a00, "vdd_l2_l3_l4_l27", },
+       { "lvs1", 0x8000, "vdd_lvs1_2", },
+       { "lvs2", 0x8100, "vdd_lvs1_2", },
+       { "lvs3", 0x8200, "vdd_lvs3_4", },
+       { "lvs4", 0x8300, "vdd_lvs3_4", },
+       { "5vs1", 0x8400, "vdd_5vs1", },
+       { }
+};
+
 static const struct spmi_regulator_data pmi8994_regulators[] = {
        { "s1", 0x1400, "vdd_s1", },
        { "s2", 0x1700, "vdd_s2", },
@@ -2408,6 +2456,7 @@ static const struct of_device_id qcom_spmi_regulator_match[] = {
        { .compatible = "qcom,pm8941-regulators", .data = &pm8941_regulators },
        { .compatible = "qcom,pm8950-regulators", .data = &pm8950_regulators },
        { .compatible = "qcom,pm8994-regulators", .data = &pm8994_regulators },
+       { .compatible = "qcom,pma8084-regulators", .data = &pma8084_regulators },
        { .compatible = "qcom,pmi8994-regulators", .data = &pmi8994_regulators },
        { .compatible = "qcom,pmp8074-regulators", .data = &pmp8074_regulators },
        { .compatible = "qcom,pms405-regulators", .data = &pms405_regulators },