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