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

Configure Feed

Select the types of activity you want to include in your feed.

regulator: qcom-rpmh: Add support for PM8550

Merge series from Abel Vesa <abel.vesa@linaro.org>:

This patchset adds regulator support for the new Qualcomm PM8550 PMIC.

+105 -2
+24 -2
Documentation/devicetree/bindings/regulator/qcom,rpmh-regulator.yaml
··· 47 47 For PM8350, smps1 - smps12, ldo1 - ldo10 48 48 For PM8350C, smps1 - smps10, ldo1 - ldo13, bob 49 49 For PM8450, smps1 - smps6, ldo1 - ldo4 50 + For PM8550, smps1 - smps6, ldo1 - ldo17, bob1 - bob2 50 51 For PM8998, smps1 - smps13, ldo1 - ldo28, lvs1 - lvs2 51 52 For PMI8998, bob 52 53 For PMR735A, smps1 - smps3, ldo1 - ldo7 ··· 71 70 - qcom,pm8350-rpmh-regulators 72 71 - qcom,pm8350c-rpmh-regulators 73 72 - qcom,pm8450-rpmh-regulators 73 + - qcom,pm8550-rpmh-regulators 74 + - qcom,pm8550ve-rpmh-regulators 75 + - qcom,pm8550vs-rpmh-regulators 74 76 - qcom,pm8998-rpmh-regulators 75 77 - qcom,pmg1110-rpmh-regulators 76 78 - qcom,pmi8998-rpmh-regulators ··· 87 83 RPMh resource name suffix used for the regulators found 88 84 on this PMIC. 89 85 $ref: /schemas/types.yaml#/definitions/string 90 - enum: [a, b, c, d, e, f, h, k] 86 + enum: [a, b, c, d, e, f, g, h, k] 91 87 92 88 qcom,always-wait-for-ack: 93 89 description: | ··· 111 107 regulator-allow-set-load: ["regulator-allowed-modes"] 112 108 113 109 patternProperties: 114 - "^(smps|ldo|lvs)[0-9]+$": 110 + "^(smps|ldo|lvs|bob)[0-9]+$": 115 111 type: object 116 112 $ref: "regulator.yaml#" 117 113 description: smps/ldo regulator nodes(s). ··· 302 298 patternProperties: 303 299 "^vdd-l[1-4]-supply$": true 304 300 "^vdd-s[1-6]-supply$": true 301 + 302 + - if: 303 + properties: 304 + compatible: 305 + enum: 306 + - qcom,pm8550-rpmh-regulators 307 + - qcom,pm8550ve-rpmh-regulators 308 + - qcom,pm8550vs-rpmh-regulators 309 + then: 310 + properties: 311 + vdd-l2-l13-l14-supply: true 312 + vdd-l5-l16-supply: true 313 + vdd-l6-l7-supply: true 314 + vdd-l8-l9-supply: true 315 + patternProperties: 316 + "^vdd-l([1-4]|1[0-7])-supply$": true 317 + "^vdd-s[1-6]-supply$": true 318 + "^vdd-bob[1-2]-supply$": true 305 319 306 320 - if: 307 321 properties:
+81
drivers/regulator/qcom-rpmh-regulator.c
··· 731 731 .of_map_mode = rpmh_regulator_pmic4_smps_of_map_mode, 732 732 }; 733 733 734 + static const struct rpmh_vreg_hw_data pmic5_ftsmps525_lv = { 735 + .regulator_type = VRM, 736 + .ops = &rpmh_regulator_vrm_ops, 737 + .voltage_range = REGULATOR_LINEAR_RANGE(300000, 0, 267, 4000), 738 + .n_voltages = 268, 739 + .pmic_mode_map = pmic_mode_map_pmic5_smps, 740 + .of_map_mode = rpmh_regulator_pmic4_smps_of_map_mode, 741 + }; 742 + 743 + static const struct rpmh_vreg_hw_data pmic5_ftsmps525_mv = { 744 + .regulator_type = VRM, 745 + .ops = &rpmh_regulator_vrm_ops, 746 + .voltage_range = REGULATOR_LINEAR_RANGE(600000, 0, 267, 8000), 747 + .n_voltages = 268, 748 + .pmic_mode_map = pmic_mode_map_pmic5_smps, 749 + .of_map_mode = rpmh_regulator_pmic4_smps_of_map_mode, 750 + }; 751 + 734 752 static const struct rpmh_vreg_hw_data pmic5_hfsmps515 = { 735 753 .regulator_type = VRM, 736 754 .ops = &rpmh_regulator_vrm_ops, ··· 1002 984 RPMH_VREG("ldo2", "ldo%s2", &pmic5_nldo, "vdd-l2"), 1003 985 RPMH_VREG("ldo3", "ldo%s3", &pmic5_nldo, "vdd-l3"), 1004 986 RPMH_VREG("ldo4", "ldo%s4", &pmic5_pldo_lv, "vdd-l4"), 987 + {} 988 + }; 989 + 990 + static const struct rpmh_vreg_init_data pm8550_vreg_data[] = { 991 + RPMH_VREG("ldo1", "ldo%s1", &pmic5_pldo, "vdd-l1-l4-l10"), 992 + RPMH_VREG("ldo2", "ldo%s2", &pmic5_pldo, "vdd-l2-l13-l14"), 993 + RPMH_VREG("ldo3", "ldo%s3", &pmic5_nldo, "vdd-l3"), 994 + RPMH_VREG("ldo4", "ldo%s4", &pmic5_nldo, "vdd-l1-l4-l10"), 995 + RPMH_VREG("ldo5", "ldo%s5", &pmic5_pldo, "vdd-l5-l16"), 996 + RPMH_VREG("ldo6", "ldo%s6", &pmic5_pldo_lv, "vdd-l6-l7"), 997 + RPMH_VREG("ldo7", "ldo%s7", &pmic5_pldo_lv, "vdd-l6-l7"), 998 + RPMH_VREG("ldo8", "ldo%s8", &pmic5_pldo_lv, "vdd-l8-l9"), 999 + RPMH_VREG("ldo9", "ldo%s9", &pmic5_pldo, "vdd-l8-l9"), 1000 + RPMH_VREG("ldo10", "ldo%s10", &pmic5_nldo, "vdd-l1-l4-l10"), 1001 + RPMH_VREG("ldo11", "ldo%s11", &pmic5_pldo, "vdd-l11"), 1002 + RPMH_VREG("ldo12", "ldo%s12", &pmic5_pldo, "vdd-l12"), 1003 + RPMH_VREG("ldo13", "ldo%s13", &pmic5_pldo, "vdd-l2-l13-l14"), 1004 + RPMH_VREG("ldo14", "ldo%s14", &pmic5_pldo, "vdd-l2-l13-l14"), 1005 + RPMH_VREG("ldo15", "ldo%s15", &pmic5_pldo, "vdd-l15"), 1006 + RPMH_VREG("ldo16", "ldo%s16", &pmic5_pldo, "vdd-l5-l16"), 1007 + RPMH_VREG("ldo17", "ldo%s17", &pmic5_pldo, "vdd-l17"), 1008 + RPMH_VREG("bob1", "bob%s1", &pmic5_bob, "vdd-bob1"), 1009 + RPMH_VREG("bob2", "bob%s2", &pmic5_bob, "vdd-bob2"), 1010 + {} 1011 + }; 1012 + 1013 + static const struct rpmh_vreg_init_data pm8550vs_vreg_data[] = { 1014 + RPMH_VREG("smps1", "smp%s1", &pmic5_ftsmps525_lv, "vdd-s1"), 1015 + RPMH_VREG("smps2", "smp%s2", &pmic5_ftsmps525_lv, "vdd-s2"), 1016 + RPMH_VREG("smps3", "smp%s3", &pmic5_ftsmps525_lv, "vdd-s3"), 1017 + RPMH_VREG("smps4", "smp%s4", &pmic5_ftsmps525_lv, "vdd-s4"), 1018 + RPMH_VREG("smps5", "smp%s5", &pmic5_ftsmps525_lv, "vdd-s5"), 1019 + RPMH_VREG("smps6", "smp%s6", &pmic5_ftsmps525_mv, "vdd-s6"), 1020 + RPMH_VREG("ldo1", "ldo%s1", &pmic5_nldo, "vdd-l1"), 1021 + RPMH_VREG("ldo2", "ldo%s2", &pmic5_nldo, "vdd-l2"), 1022 + RPMH_VREG("ldo3", "ldo%s3", &pmic5_nldo, "vdd-l3"), 1023 + {} 1024 + }; 1025 + 1026 + static const struct rpmh_vreg_init_data pm8550ve_vreg_data[] = { 1027 + RPMH_VREG("smps1", "smp%s1", &pmic5_ftsmps525_lv, "vdd-s1"), 1028 + RPMH_VREG("smps2", "smp%s2", &pmic5_ftsmps525_lv, "vdd-s2"), 1029 + RPMH_VREG("smps3", "smp%s3", &pmic5_ftsmps525_lv, "vdd-s3"), 1030 + RPMH_VREG("smps4", "smp%s4", &pmic5_ftsmps525_lv, "vdd-s4"), 1031 + RPMH_VREG("smps5", "smp%s5", &pmic5_ftsmps525_lv, "vdd-s5"), 1032 + RPMH_VREG("smps6", "smp%s6", &pmic5_ftsmps525_lv, "vdd-s6"), 1033 + RPMH_VREG("smps7", "smp%s7", &pmic5_ftsmps525_lv, "vdd-s7"), 1034 + RPMH_VREG("smps8", "smp%s8", &pmic5_ftsmps525_lv, "vdd-s8"), 1035 + RPMH_VREG("ldo1", "ldo%s1", &pmic5_nldo, "vdd-l1"), 1036 + RPMH_VREG("ldo2", "ldo%s2", &pmic5_nldo, "vdd-l2"), 1037 + RPMH_VREG("ldo3", "ldo%s3", &pmic5_nldo, "vdd-l3"), 1005 1038 {} 1006 1039 }; 1007 1040 ··· 1382 1313 { 1383 1314 .compatible = "qcom,pm8450-rpmh-regulators", 1384 1315 .data = pm8450_vreg_data, 1316 + }, 1317 + { 1318 + .compatible = "qcom,pm8550-rpmh-regulators", 1319 + .data = pm8550_vreg_data, 1320 + }, 1321 + { 1322 + .compatible = "qcom,pm8550ve-rpmh-regulators", 1323 + .data = pm8550ve_vreg_data, 1324 + }, 1325 + { 1326 + .compatible = "qcom,pm8550vs-rpmh-regulators", 1327 + .data = pm8550vs_vreg_data, 1385 1328 }, 1386 1329 { 1387 1330 .compatible = "qcom,pm8998-rpmh-regulators",