1Qualcomm Resource Power Manager (RPM) over SMD
2
3This driver is used to interface with the Resource Power Manager (RPM) found in
4various Qualcomm platforms. The RPM allows each component in the system to vote
5for state of the system resources, such as clocks, regulators and bus
6frequencies.
7
8- compatible:
9	Usage: required
10	Value type: <string>
11	Definition: must be one of:
12		    "qcom,rpm-msm8974"
13
14- qcom,smd-channels:
15	Usage: required
16	Value type: <stringlist>
17	Definition: Shared Memory channel used for communication with the RPM
18
19= SUBDEVICES
20
21The RPM exposes resources to its subnodes. The below bindings specify the set
22of valid subnodes that can operate on these resources.
23
24== Regulators
25
26Regulator nodes are identified by their compatible:
27
28- compatible:
29	Usage: required
30	Value type: <string>
31	Definition: must be one of:
32		    "qcom,rpm-pm8841-regulators"
33		    "qcom,rpm-pm8941-regulators"
34
35- vdd_s1-supply:
36- vdd_s2-supply:
37- vdd_s3-supply:
38- vdd_s4-supply:
39- vdd_s5-supply:
40- vdd_s6-supply:
41- vdd_s7-supply:
42- vdd_s8-supply:
43	Usage: optional (pm8841 only)
44	Value type: <phandle>
45	Definition: reference to regulator supplying the input pin, as
46		    described in the data sheet
47
48- vdd_s1-supply:
49- vdd_s2-supply:
50- vdd_s3-supply:
51- vdd_l1_l3-supply:
52- vdd_l2_lvs1_2_3-supply:
53- vdd_l4_l11-supply:
54- vdd_l5_l7-supply:
55- vdd_l6_l12_l14_l15-supply:
56- vdd_l8_l16_l18_l19-supply:
57- vdd_l9_l10_l17_l22-supply:
58- vdd_l13_l20_l23_l24-supply:
59- vdd_l21-supply:
60- vin_5vs-supply:
61	Usage: optional (pm8941 only)
62	Value type: <phandle>
63	Definition: reference to regulator supplying the input pin, as
64		    described in the data sheet
65
66The regulator node houses sub-nodes for each regulator within the device. Each
67sub-node is identified using the node's name, with valid values listed for each
68of the pmics below.
69
70pm8841:
71	s1, s2, s3, s4, s5, s6, s7, s8
72
73pm8941:
74	s1, s2, s3, s4, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13,
75	l14, l15, l16, l17, l18, l19, l20, l21, l22, l23, l24, lvs1, lvs2,
76	lvs3, 5vs1, 5vs2
77
78The content of each sub-node is defined by the standard binding for regulators -
79see regulator.txt.
80
81= EXAMPLE
82
83	smd {
84		compatible = "qcom,smd";
85
86		rpm {
87			interrupts = <0 168 1>;
88			qcom,ipc = <&apcs 8 0>;
89			qcom,smd-edge = <15>;
90
91			rpm_requests {
92				compatible = "qcom,rpm-msm8974";
93				qcom,smd-channels = "rpm_requests";
94
95				pm8941-regulators {
96					compatible = "qcom,rpm-pm8941-regulators";
97					vdd_l13_l20_l23_l24-supply = <&pm8941_boost>;
98
99					pm8941_s3: s3 {
100						regulator-min-microvolt = <1800000>;
101						regulator-max-microvolt = <1800000>;
102					};
103
104					pm8941_boost: s4 {
105						regulator-min-microvolt = <5000000>;
106						regulator-max-microvolt = <5000000>;
107					};
108
109					pm8941_l20: l20 {
110						regulator-min-microvolt = <2950000>;
111						regulator-max-microvolt = <2950000>;
112					};
113				};
114			};
115		};
116	};
117
118