xref: /freebsd/sys/contrib/device-tree/Bindings/regulator/qcom,rpmh-regulator.txt (revision c66ec88fed842fbaad62c30d510644ceb7bd2d71)
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