|
| 1 | +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) |
| 2 | +%YAML 1.2 |
| 3 | +--- |
| 4 | +$id: http://devicetree.org/schemas/regulator/qcom,rpmh-regulator.yaml# |
| 5 | +$schema: http://devicetree.org/meta-schemas/core.yaml# |
| 6 | + |
| 7 | +title: Qualcomm Technologies, Inc. RPMh Regulators |
| 8 | + |
| 9 | +maintainers: |
| 10 | + - David Collins <collinsd@codeaurora.org> |
| 11 | + |
| 12 | +description: | |
| 13 | + rpmh-regulator devices support PMIC regulator management via the Voltage |
| 14 | + Regulator Manager (VRM) and Oscillator Buffer (XOB) RPMh accelerators. |
| 15 | + The APPS processor communicates with these hardware blocks via a |
| 16 | + Resource State Coordinator (RSC) using command packets. The VRM allows |
| 17 | + changing three parameters for a given regulator, enable state, output |
| 18 | + voltage, and operating mode. The XOB allows changing only a single |
| 19 | + parameter for a given regulator, its enable state. Despite its name, |
| 20 | + the XOB is capable of controlling the enable state of any PMIC peripheral. |
| 21 | + It is used for clock buffers, low-voltage switches, and LDO/SMPS regulators |
| 22 | + which have a fixed voltage and mode. |
| 23 | +
|
| 24 | + ======================= |
| 25 | + Required Node Structure |
| 26 | + ======================= |
| 27 | +
|
| 28 | + RPMh regulators must be described in two levels of device nodes. The first |
| 29 | + level describes the PMIC containing the regulators and must reside within an |
| 30 | + RPMh device node. The second level describes each regulator within the PMIC |
| 31 | + which is to be used on the board. Each of these regulators maps to a single |
| 32 | + RPMh resource. |
| 33 | +
|
| 34 | + The names used for regulator nodes must match those supported by a given |
| 35 | + PMIC. Supported regulator node names are |
| 36 | + For PM8005, smps1 - smps4 |
| 37 | + For PM8009, smps1 - smps2, ldo1 - ldo7 |
| 38 | + For PM8150, smps1 - smps10, ldo1 - ldo18 |
| 39 | + For PM8150L, smps1 - smps8, ldo1 - ldo11, bob, flash, rgb |
| 40 | + For PM8350, smps1 - smps12, ldo1 - ldo10 |
| 41 | + For PM8350C, smps1 - smps10, ldo1 - ldo13, bob |
| 42 | + For PM8998, smps1 - smps13, ldo1 - ldo28, lvs1 - lvs2 |
| 43 | + For PMI8998, bob |
| 44 | + For PM6150, smps1 - smps5, ldo1 - ldo19 |
| 45 | + For PM6150L, smps1 - smps8, ldo1 - ldo11, bob |
| 46 | + For PMX55, smps1 - smps7, ldo1 - ldo16 |
| 47 | + For PM7325, smps1 - smps8, ldo1 - ldo19 |
| 48 | + For PMR735A, smps1 - smps3, ldo1 - ldo7 |
| 49 | +
|
| 50 | +properties: |
| 51 | + compatible: |
| 52 | + enum: |
| 53 | + - qcom,pm8005-rpmh-regulators |
| 54 | + - qcom,pm8009-rpmh-regulators |
| 55 | + - qcom,pm8009-1-rpmh-regulators |
| 56 | + - qcom,pm8150-rpmh-regulators |
| 57 | + - qcom,pm8150l-rpmh-regulators |
| 58 | + - qcom,pm8350-rpmh-regulators |
| 59 | + - qcom,pm8350c-rpmh-regulators |
| 60 | + - qcom,pm8998-rpmh-regulators |
| 61 | + - qcom,pmi8998-rpmh-regulators |
| 62 | + - qcom,pm6150-rpmh-regulators |
| 63 | + - qcom,pm6150l-rpmh-regulators |
| 64 | + - qcom,pmx55-rpmh-regulators |
| 65 | + - qcom,pm7325-rpmh-regulators |
| 66 | + - qcom,pmr735a-rpmh-regulators |
| 67 | + |
| 68 | + qcom,pmic-id: |
| 69 | + description: | |
| 70 | + RPMh resource name suffix used for the regulators found |
| 71 | + on this PMIC. |
| 72 | + $ref: /schemas/types.yaml#/definitions/string |
| 73 | + enum: [a, b, c, d, e, f] |
| 74 | + |
| 75 | + qcom,always-wait-for-ack: |
| 76 | + description: | |
| 77 | + Boolean flag which indicates that the application processor |
| 78 | + must wait for an ACK or a NACK from RPMh for every request |
| 79 | + sent for this regulator including those which are for a |
| 80 | + strictly lower power state. |
| 81 | + $ref: /schemas/types.yaml#/definitions/flag |
| 82 | + |
| 83 | + vdd-flash-supply: |
| 84 | + description: Input supply phandle of flash. |
| 85 | + |
| 86 | + vdd-rgb-supply: |
| 87 | + description: Input supply phandle of rgb. |
| 88 | + |
| 89 | + vin-lvs-1-2-supply: |
| 90 | + description: Input supply phandle of one or more regulators. |
| 91 | + |
| 92 | + vdd-bob-supply: |
| 93 | + description: BOB regulator parent supply phandle. |
| 94 | + |
| 95 | + bob: |
| 96 | + type: object |
| 97 | + $ref: "regulator.yaml#" |
| 98 | + description: BOB regulator node. |
| 99 | + |
| 100 | +patternProperties: |
| 101 | + "^vdd-s([0-9]+)-supply$": |
| 102 | + description: Input supply phandle(s) of one or more regulators. |
| 103 | + |
| 104 | + "^vdd-(l[0-9]+[-]){1,5}supply$": |
| 105 | + description: Input supply phandle(s) of one or more regulators. |
| 106 | + |
| 107 | + "^(smps|ldo|lvs)[0-9]+$": |
| 108 | + type: object |
| 109 | + $ref: "regulator.yaml#" |
| 110 | + description: smps/ldo regulator nodes(s). |
| 111 | + |
| 112 | +additionalProperties: false |
| 113 | + |
| 114 | +required: |
| 115 | + - compatible |
| 116 | + - qcom,pmic-id |
| 117 | + |
| 118 | +examples: |
| 119 | + - | |
| 120 | + #include <dt-bindings/regulator/qcom,rpmh-regulator.h> |
| 121 | +
|
| 122 | + pm8998-rpmh-regulators { |
| 123 | + compatible = "qcom,pm8998-rpmh-regulators"; |
| 124 | + qcom,pmic-id = "a"; |
| 125 | +
|
| 126 | + vdd-l7-l12-l14-l15-supply = <&pm8998_s5>; |
| 127 | +
|
| 128 | + smps2 { |
| 129 | + regulator-min-microvolt = <1100000>; |
| 130 | + regulator-max-microvolt = <1100000>; |
| 131 | + }; |
| 132 | +
|
| 133 | + ldo7 { |
| 134 | + regulator-min-microvolt = <1800000>; |
| 135 | + regulator-max-microvolt = <1800000>; |
| 136 | + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; |
| 137 | + regulator-allowed-modes = |
| 138 | + <RPMH_REGULATOR_MODE_LPM |
| 139 | + RPMH_REGULATOR_MODE_HPM>; |
| 140 | + regulator-allow-set-load; |
| 141 | + }; |
| 142 | +
|
| 143 | + lvs1 { |
| 144 | + regulator-min-microvolt = <1800000>; |
| 145 | + regulator-max-microvolt = <1800000>; |
| 146 | + }; |
| 147 | + }; |
| 148 | +
|
| 149 | + pmi8998-rpmh-regulators { |
| 150 | + compatible = "qcom,pmi8998-rpmh-regulators"; |
| 151 | + qcom,pmic-id = "b"; |
| 152 | +
|
| 153 | + bob { |
| 154 | + regulator-min-microvolt = <3312000>; |
| 155 | + regulator-max-microvolt = <3600000>; |
| 156 | + regulator-allowed-modes = |
| 157 | + <RPMH_REGULATOR_MODE_AUTO |
| 158 | + RPMH_REGULATOR_MODE_HPM>; |
| 159 | + regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>; |
| 160 | + }; |
| 161 | + }; |
| 162 | +... |
0 commit comments