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 PM8998: smps1 - smps13, ldo1 - ldo28, lvs1 - lvs2 30 PMI8998: bob 31 PM6150: smps1 - smps5, ldo1 - ldo19 32 PM6150L: smps1 - smps8, ldo1 - ldo11, bob 33 34======================== 35First Level Nodes - PMIC 36======================== 37 38- compatible 39 Usage: required 40 Value type: <string> 41 Definition: Must be one of below: 42 "qcom,pm8005-rpmh-regulators" 43 "qcom,pm8009-rpmh-regulators" 44 "qcom,pm8150-rpmh-regulators" 45 "qcom,pm8150l-rpmh-regulators" 46 "qcom,pm8998-rpmh-regulators" 47 "qcom,pmi8998-rpmh-regulators" 48 "qcom,pm6150-rpmh-regulators" 49 "qcom,pm6150l-rpmh-regulators" 50 51- qcom,pmic-id 52 Usage: required 53 Value type: <string> 54 Definition: RPMh resource name suffix used for the regulators found on 55 this PMIC. Typical values: "a", "b", "c", "d", "e", "f". 56 57- vdd-s1-supply 58- vdd-s2-supply 59- vdd-s3-supply 60- vdd-s4-supply 61 Usage: optional (PM8998 and PM8005 only) 62 Value type: <phandle> 63 Definition: phandle of the parent supply regulator of one or more of the 64 regulators for this PMIC. 65 66- vdd-s5-supply 67- vdd-s6-supply 68- vdd-s7-supply 69- vdd-s8-supply 70- vdd-s9-supply 71- vdd-s10-supply 72- vdd-s11-supply 73- vdd-s12-supply 74- vdd-s13-supply 75- vdd-l1-l27-supply 76- vdd-l2-l8-l17-supply 77- vdd-l3-l11-supply 78- vdd-l4-l5-supply 79- vdd-l6-supply 80- vdd-l7-l12-l14-l15-supply 81- vdd-l9-supply 82- vdd-l10-l23-l25-supply 83- vdd-l13-l19-l21-supply 84- vdd-l16-l28-supply 85- vdd-l18-l22-supply 86- vdd-l20-l24-supply 87- vdd-l26-supply 88- vin-lvs-1-2-supply 89 Usage: optional (PM8998 only) 90 Value type: <phandle> 91 Definition: phandle of the parent supply regulator of one or more of the 92 regulators for this PMIC. 93 94- vdd-bob-supply 95 Usage: optional (PMI8998 only) 96 Value type: <phandle> 97 Definition: BOB regulator parent supply phandle 98 99=============================== 100Second Level Nodes - Regulators 101=============================== 102 103- qcom,always-wait-for-ack 104 Usage: optional 105 Value type: <empty> 106 Definition: Boolean flag which indicates that the application processor 107 must wait for an ACK or a NACK from RPMh for every request 108 sent for this regulator including those which are for a 109 strictly lower power state. 110 111Other properties defined in Documentation/devicetree/bindings/regulator/regulator.txt 112may also be used. regulator-initial-mode and regulator-allowed-modes may be 113specified for VRM regulators using mode values from 114include/dt-bindings/regulator/qcom,rpmh-regulator.h. regulator-allow-bypass 115may be specified for BOB type regulators managed via VRM. 116regulator-allow-set-load may be specified for LDO type regulators managed via 117VRM. 118 119======== 120Examples 121======== 122 123#include <dt-bindings/regulator/qcom,rpmh-regulator.h> 124 125&apps_rsc { 126 pm8998-rpmh-regulators { 127 compatible = "qcom,pm8998-rpmh-regulators"; 128 qcom,pmic-id = "a"; 129 130 vdd-l7-l12-l14-l15-supply = <&pm8998_s5>; 131 132 smps2 { 133 regulator-min-microvolt = <1100000>; 134 regulator-max-microvolt = <1100000>; 135 }; 136 137 pm8998_s5: smps5 { 138 regulator-min-microvolt = <1904000>; 139 regulator-max-microvolt = <2040000>; 140 }; 141 142 ldo7 { 143 regulator-min-microvolt = <1800000>; 144 regulator-max-microvolt = <1800000>; 145 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 146 regulator-allowed-modes = 147 <RPMH_REGULATOR_MODE_LPM 148 RPMH_REGULATOR_MODE_HPM>; 149 regulator-allow-set-load; 150 }; 151 152 lvs1 { 153 regulator-min-microvolt = <1800000>; 154 regulator-max-microvolt = <1800000>; 155 }; 156 }; 157 158 pmi8998-rpmh-regulators { 159 compatible = "qcom,pmi8998-rpmh-regulators"; 160 qcom,pmic-id = "b"; 161 162 bob { 163 regulator-min-microvolt = <3312000>; 164 regulator-max-microvolt = <3600000>; 165 regulator-allowed-modes = 166 <RPMH_REGULATOR_MODE_AUTO 167 RPMH_REGULATOR_MODE_HPM>; 168 regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>; 169 }; 170 }; 171}; 172