1Qualcomm Technologies, Inc. RPMh Regulators 2 3rpmh-regulator devices support PMIC regulator management via the Voltage 4Regulator Manager (VRM) and Oscillator Buffer (XOB) RPMh accelerators. The APPS 5processor communicates with these hardware blocks via a Resource State 6Coordinator (RSC) using command packets. The VRM allows changing three 7parameters for a given regulator: enable state, output voltage, and operating 8mode. The XOB allows changing only a single parameter for a given regulator: 9its enable state. Despite its name, the XOB is capable of controlling the 10enable state of any PMIC peripheral. It is used for clock buffers, low-voltage 11switches, and LDO/SMPS regulators which have a fixed voltage and mode. 12 13======================= 14Required Node Structure 15======================= 16 17RPMh regulators must be described in two levels of device nodes. The first 18level describes the PMIC containing the regulators and must reside within an 19RPMh device node. The second level describes each regulator within the PMIC 20which is to be used on the board. Each of these regulators maps to a single 21RPMh resource. 22 23The names used for regulator nodes must match those supported by a given PMIC. 24Supported regulator node names: 25 PM8005: smps1 - smps4 26 PM8009: smps1 - smps2, ldo1 - ldo7 27 PM8150: smps1 - smps10, ldo1 - ldo18 28 PM8150L: smps1 - smps8, ldo1 - ldo11, bob, flash, rgb 29 PM8350: smps1 - smps12, ldo1 - ldo10, 30 PM8350C: smps1 - smps10, ldo1 - ldo13, bob 31 PM8998: smps1 - smps13, ldo1 - ldo28, lvs1 - lvs2 32 PMI8998: bob 33 PM6150: smps1 - smps5, ldo1 - ldo19 34 PM6150L: smps1 - smps8, ldo1 - ldo11, bob 35 PMX55: smps1 - smps7, ldo1 - ldo16 36 37======================== 38First Level Nodes - PMIC 39======================== 40 41- compatible 42 Usage: required 43 Value type: <string> 44 Definition: Must be one of below: 45 "qcom,pm8005-rpmh-regulators" 46 "qcom,pm8009-rpmh-regulators" 47 "qcom,pm8009-1-rpmh-regulators" 48 "qcom,pm8150-rpmh-regulators" 49 "qcom,pm8150l-rpmh-regulators" 50 "qcom,pm8350-rpmh-regulators" 51 "qcom,pm8350c-rpmh-regulators" 52 "qcom,pm8998-rpmh-regulators" 53 "qcom,pmc8180-rpmh-regulators" 54 "qcom,pmc8180c-rpmh-regulators" 55 "qcom,pmi8998-rpmh-regulators" 56 "qcom,pm6150-rpmh-regulators" 57 "qcom,pm6150l-rpmh-regulators" 58 "qcom,pmx55-rpmh-regulators" 59 60- qcom,pmic-id 61 Usage: required 62 Value type: <string> 63 Definition: RPMh resource name suffix used for the regulators found on 64 this PMIC. Typical values: "a", "b", "c", "d", "e", "f". 65 66- vdd-s1-supply 67- vdd-s2-supply 68- vdd-s3-supply 69- vdd-s4-supply 70 Usage: optional (PM8998 and PM8005 only) 71 Value type: <phandle> 72 Definition: phandle of the parent supply regulator of one or more of the 73 regulators for this PMIC. 74 75- vdd-s5-supply 76- vdd-s6-supply 77- vdd-s7-supply 78- vdd-s8-supply 79- vdd-s9-supply 80- vdd-s10-supply 81- vdd-s11-supply 82- vdd-s12-supply 83- vdd-s13-supply 84- vdd-l1-l27-supply 85- vdd-l2-l8-l17-supply 86- vdd-l3-l11-supply 87- vdd-l4-l5-supply 88- vdd-l6-supply 89- vdd-l7-l12-l14-l15-supply 90- vdd-l9-supply 91- vdd-l10-l23-l25-supply 92- vdd-l13-l19-l21-supply 93- vdd-l16-l28-supply 94- vdd-l18-l22-supply 95- vdd-l20-l24-supply 96- vdd-l26-supply 97- vin-lvs-1-2-supply 98 Usage: optional (PM8998 only) 99 Value type: <phandle> 100 Definition: phandle of the parent supply regulator of one or more of the 101 regulators for this PMIC. 102 103- vdd-bob-supply 104 Usage: optional (PMI8998 only) 105 Value type: <phandle> 106 Definition: BOB regulator parent supply phandle 107 108=============================== 109Second Level Nodes - Regulators 110=============================== 111 112- qcom,always-wait-for-ack 113 Usage: optional 114 Value type: <empty> 115 Definition: Boolean flag which indicates that the application processor 116 must wait for an ACK or a NACK from RPMh for every request 117 sent for this regulator including those which are for a 118 strictly lower power state. 119 120Other properties defined in Documentation/devicetree/bindings/regulator/regulator.txt 121may also be used. regulator-initial-mode and regulator-allowed-modes may be 122specified for VRM regulators using mode values from 123include/dt-bindings/regulator/qcom,rpmh-regulator.h. regulator-allow-bypass 124may be specified for BOB type regulators managed via VRM. 125regulator-allow-set-load may be specified for LDO type regulators managed via 126VRM. 127 128======== 129Examples 130======== 131 132#include <dt-bindings/regulator/qcom,rpmh-regulator.h> 133 134&apps_rsc { 135 pm8998-rpmh-regulators { 136 compatible = "qcom,pm8998-rpmh-regulators"; 137 qcom,pmic-id = "a"; 138 139 vdd-l7-l12-l14-l15-supply = <&pm8998_s5>; 140 141 smps2 { 142 regulator-min-microvolt = <1100000>; 143 regulator-max-microvolt = <1100000>; 144 }; 145 146 pm8998_s5: smps5 { 147 regulator-min-microvolt = <1904000>; 148 regulator-max-microvolt = <2040000>; 149 }; 150 151 ldo7 { 152 regulator-min-microvolt = <1800000>; 153 regulator-max-microvolt = <1800000>; 154 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 155 regulator-allowed-modes = 156 <RPMH_REGULATOR_MODE_LPM 157 RPMH_REGULATOR_MODE_HPM>; 158 regulator-allow-set-load; 159 }; 160 161 lvs1 { 162 regulator-min-microvolt = <1800000>; 163 regulator-max-microvolt = <1800000>; 164 }; 165 }; 166 167 pmi8998-rpmh-regulators { 168 compatible = "qcom,pmi8998-rpmh-regulators"; 169 qcom,pmic-id = "b"; 170 171 bob { 172 regulator-min-microvolt = <3312000>; 173 regulator-max-microvolt = <3600000>; 174 regulator-allowed-modes = 175 <RPMH_REGULATOR_MODE_AUTO 176 RPMH_REGULATOR_MODE_HPM>; 177 regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>; 178 }; 179 }; 180}; 181