Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Add PM8937 PMIC support

Merge series from Dang Huynh <danct12@riseup.net>:

PM8937 is a power management IC. It is used in various boards with
MSM8917, MSM8937, MSM8940 and APQ variants.

+91
+4
Documentation/devicetree/bindings/regulator/qcom,smd-rpm-regulator.yaml
··· 47 47 For pm8916, s1, s2, s3, s4, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, 48 48 l12, l13, l14, l15, l16, l17, l18 49 49 50 + For pm8937, s1, s2, s3, s4, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, 51 + l11, l12, l13, l14, l15, l16, l17, l18, l19, l20, l21, l22, l23 52 + 50 53 For pm8941, s1, s2, s3, s4, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, 51 54 l12, l13, l14, l15, l16, l17, l18, l19, l20, l21, l22, l23, l24, lvs1, lvs2, 52 55 lvs3, 5vs1, 5vs2 ··· 95 92 - qcom,rpm-pm8841-regulators 96 93 - qcom,rpm-pm8909-regulators 97 94 - qcom,rpm-pm8916-regulators 95 + - qcom,rpm-pm8937-regulators 98 96 - qcom,rpm-pm8941-regulators 99 97 - qcom,rpm-pm8950-regulators 100 98 - qcom,rpm-pm8953-regulators
+19
Documentation/devicetree/bindings/regulator/qcom,spmi-regulator.yaml
··· 22 22 - qcom,pm8841-regulators 23 23 - qcom,pm8909-regulators 24 24 - qcom,pm8916-regulators 25 + - qcom,pm8937-regulators 25 26 - qcom,pm8941-regulators 26 27 - qcom,pm8950-regulators 27 28 - qcom,pm8994-regulators ··· 291 290 vin_5vs-supply: true 292 291 patternProperties: 293 292 "^vdd_s[1-3]-supply$": true 293 + 294 + - if: 295 + properties: 296 + compatible: 297 + contains: 298 + enum: 299 + - qcom,pm8937-regulators 300 + then: 301 + properties: 302 + vdd_l1_l19-supply: true 303 + vdd_l20_l21-supply: true 304 + vdd_l2_l23-supply: true 305 + vdd_l3-supply: true 306 + vdd_l4_l5_l6_l7_l16-supply: true 307 + vdd_l8_l11_l12_l17_l22-supply: true 308 + vdd_l9_l10_l13_l14_l15_l18-supply: true 309 + patternProperties: 310 + "^vdd_s[1-6]-supply$": true 294 311 295 312 - if: 296 313 properties:
+34
drivers/regulator/qcom_smd-regulator.c
··· 1012 1012 {} 1013 1013 }; 1014 1014 1015 + static const struct rpm_regulator_data rpm_pm8937_regulators[] = { 1016 + { "s1", QCOM_SMD_RPM_SMPA, 1, &pm8994_hfsmps, "vdd_s1" }, 1017 + { "s2", QCOM_SMD_RPM_SMPA, 2, &pm8994_hfsmps, "vdd_s2" }, 1018 + { "s3", QCOM_SMD_RPM_SMPA, 3, &pm8994_hfsmps, "vdd_s3" }, 1019 + { "s4", QCOM_SMD_RPM_SMPA, 4, &pm8994_hfsmps, "vdd_s4" }, 1020 + /* S5 - S6 are managed by SPMI */ 1021 + 1022 + { "l1", QCOM_SMD_RPM_LDOA, 1, &pm8953_ult_nldo, "vdd_l1_l19" }, 1023 + { "l2", QCOM_SMD_RPM_LDOA, 2, &pm8953_ult_nldo, "vdd_l2_l23" }, 1024 + { "l3", QCOM_SMD_RPM_LDOA, 3, &pm8953_ult_nldo, "vdd_l3" }, 1025 + { "l4", QCOM_SMD_RPM_LDOA, 4, &pm8950_ult_pldo, "vdd_l4_l5_l6_l7_l16" }, 1026 + { "l5", QCOM_SMD_RPM_LDOA, 5, &pm8950_ult_pldo, "vdd_l4_l5_l6_l7_l16" }, 1027 + { "l6", QCOM_SMD_RPM_LDOA, 6, &pm8950_ult_pldo, "vdd_l4_l5_l6_l7_l16" }, 1028 + { "l7", QCOM_SMD_RPM_LDOA, 7, &pm8950_ult_pldo, "vdd_l4_l5_l6_l7_l16" }, 1029 + { "l8", QCOM_SMD_RPM_LDOA, 8, &pm8950_ult_pldo, "vdd_l8_l11_l12_l17_l22" }, 1030 + { "l9", QCOM_SMD_RPM_LDOA, 9, &pm8950_ult_pldo, "vdd_l9_l10_l13_l14_l15_l18" }, 1031 + { "l10", QCOM_SMD_RPM_LDOA, 10, &pm8950_ult_pldo, "vdd_l9_l10_l13_l14_l15_l18"}, 1032 + { "l11", QCOM_SMD_RPM_LDOA, 11, &pm8950_ult_pldo, "vdd_l8_l11_l12_l17_l22" }, 1033 + { "l12", QCOM_SMD_RPM_LDOA, 12, &pm8950_ult_pldo, "vdd_l8_l11_l12_l17_l22" }, 1034 + { "l13", QCOM_SMD_RPM_LDOA, 13, &pm8950_ult_pldo, "vdd_l9_l10_l13_l14_l15_l18" }, 1035 + { "l14", QCOM_SMD_RPM_LDOA, 14, &pm8950_ult_pldo, "vdd_l9_l10_l13_l14_l15_l18" }, 1036 + { "l15", QCOM_SMD_RPM_LDOA, 15, &pm8950_ult_pldo, "vdd_l9_l10_l13_l14_l15_l18" }, 1037 + { "l16", QCOM_SMD_RPM_LDOA, 16, &pm8950_ult_pldo, "vdd_l4_l5_l6_l7_l16" }, 1038 + { "l17", QCOM_SMD_RPM_LDOA, 17, &pm8950_ult_pldo, "vdd_l8_l11_l12_l17_l22" }, 1039 + { "l18", QCOM_SMD_RPM_LDOA, 18, &pm8950_ult_pldo, "vdd_l9_l10_l13_l14_l15_l18" }, 1040 + { "l19", QCOM_SMD_RPM_LDOA, 19, &pm8953_ult_nldo, "vdd_l1_l19" }, 1041 + { "l20", QCOM_SMD_RPM_LDOA, 20, &pm8953_lnldo, "vdd_l20_l21" }, 1042 + { "l21", QCOM_SMD_RPM_LDOA, 21, &pm8953_lnldo, "vdd_l20_l21" }, 1043 + { "l22", QCOM_SMD_RPM_LDOA, 22, &pm8950_ult_pldo, "vdd_l8_l11_l12_l17_l22" }, 1044 + { "l23", QCOM_SMD_RPM_LDOA, 23, &pm8994_nldo, "vdd_l2_l23" }, 1045 + {} 1046 + }; 1047 + 1015 1048 static const struct rpm_regulator_data rpm_pm8941_regulators[] = { 1016 1049 { "s1", QCOM_SMD_RPM_SMPA, 1, &pm8x41_hfsmps, "vdd_s1" }, 1017 1050 { "s2", QCOM_SMD_RPM_SMPA, 2, &pm8x41_hfsmps, "vdd_s2" }, ··· 1362 1329 { .compatible = "qcom,rpm-pm8841-regulators", .data = &rpm_pm8841_regulators }, 1363 1330 { .compatible = "qcom,rpm-pm8909-regulators", .data = &rpm_pm8909_regulators }, 1364 1331 { .compatible = "qcom,rpm-pm8916-regulators", .data = &rpm_pm8916_regulators }, 1332 + { .compatible = "qcom,rpm-pm8937-regulators", .data = &rpm_pm8937_regulators }, 1365 1333 { .compatible = "qcom,rpm-pm8941-regulators", .data = &rpm_pm8941_regulators }, 1366 1334 { .compatible = "qcom,rpm-pm8950-regulators", .data = &rpm_pm8950_regulators }, 1367 1335 { .compatible = "qcom,rpm-pm8953-regulators", .data = &rpm_pm8953_regulators },
+34
drivers/regulator/qcom_spmi-regulator.c
··· 2239 2239 { } 2240 2240 }; 2241 2241 2242 + static const struct spmi_regulator_data pm8937_regulators[] = { 2243 + { "s1", 0x1400, "vdd_s1", }, 2244 + { "s2", 0x1700, "vdd_s2", }, 2245 + { "s3", 0x1a00, "vdd_s3", }, 2246 + { "s4", 0x1d00, "vdd_s4", }, 2247 + { "s5", 0x2000, "vdd_s5", }, 2248 + { "s6", 0x2300, "vdd_s6", }, 2249 + { "l1", 0x4000, "vdd_l1_l19", }, 2250 + { "l2", 0x4100, "vdd_l2_l23", }, 2251 + { "l3", 0x4200, "vdd_l3", }, 2252 + { "l4", 0x4300, "vdd_l4_l5_l6_l7_l16", }, 2253 + { "l5", 0x4400, "vdd_l4_l5_l6_l7_l16", }, 2254 + { "l6", 0x4500, "vdd_l4_l5_l6_l7_l16", }, 2255 + { "l7", 0x4600, "vdd_l4_l5_l6_l7_l16", }, 2256 + { "l8", 0x4700, "vdd_l8_l11_l12_l17_l22", }, 2257 + { "l9", 0x4800, "vdd_l9_l10_l13_l14_l15_l18", }, 2258 + { "l10", 0x4900, "vdd_l9_l10_l13_l14_l15_l18", }, 2259 + { "l11", 0x4a00, "vdd_l8_l11_l12_l17_l22", }, 2260 + { "l12", 0x4b00, "vdd_l8_l11_l12_l17_l22", }, 2261 + { "l13", 0x4c00, "vdd_l9_l10_l13_l14_l15_l18", }, 2262 + { "l14", 0x4d00, "vdd_l9_l10_l13_l14_l15_l18", }, 2263 + { "l15", 0x4e00, "vdd_l9_l10_l13_l14_l15_l18", }, 2264 + { "l16", 0x4f00, "vdd_l4_l5_l6_l7_l16", }, 2265 + { "l17", 0x5000, "vdd_l8_l11_l12_l17_l22", }, 2266 + { "l18", 0x5100, "vdd_l9_l10_l13_l14_l15_l18", }, 2267 + { "l19", 0x5200, "vdd_l1_l19", }, 2268 + { "l20", 0x5300, "vdd_l20_l21", }, 2269 + { "l21", 0x5400, "vdd_l21_l21", }, 2270 + { "l22", 0x5500, "vdd_l8_l11_l12_l17_l22", }, 2271 + { "l23", 0x5600, "vdd_l2_l23", }, 2272 + { } 2273 + }; 2274 + 2242 2275 static const struct spmi_regulator_data pm8941_regulators[] = { 2243 2276 { "s1", 0x1400, "vdd_s1", }, 2244 2277 { "s2", 0x1700, "vdd_s2", }, ··· 2486 2453 { .compatible = "qcom,pm8841-regulators", .data = &pm8841_regulators }, 2487 2454 { .compatible = "qcom,pm8909-regulators", .data = &pm8909_regulators }, 2488 2455 { .compatible = "qcom,pm8916-regulators", .data = &pm8916_regulators }, 2456 + { .compatible = "qcom,pm8937-regulators", .data = &pm8937_regulators }, 2489 2457 { .compatible = "qcom,pm8941-regulators", .data = &pm8941_regulators }, 2490 2458 { .compatible = "qcom,pm8950-regulators", .data = &pm8950_regulators }, 2491 2459 { .compatible = "qcom,pm8994-regulators", .data = &pm8994_regulators },