xref: /freebsd/sys/contrib/device-tree/Bindings/soc/qcom/qcom,smd-rpm.txt (revision c66ec88fed842fbaad62c30d510644ceb7bd2d71)
1*c66ec88fSEmmanuel VadotQualcomm Resource Power Manager (RPM) over SMD
2*c66ec88fSEmmanuel Vadot
3*c66ec88fSEmmanuel VadotThis driver is used to interface with the Resource Power Manager (RPM) found in
4*c66ec88fSEmmanuel Vadotvarious Qualcomm platforms. The RPM allows each component in the system to vote
5*c66ec88fSEmmanuel Vadotfor state of the system resources, such as clocks, regulators and bus
6*c66ec88fSEmmanuel Vadotfrequencies.
7*c66ec88fSEmmanuel Vadot
8*c66ec88fSEmmanuel VadotThe SMD information for the RPM edge should be filled out.  See qcom,smd.txt for
9*c66ec88fSEmmanuel Vadotthe required edge properties.  All SMD related properties will reside within the
10*c66ec88fSEmmanuel VadotRPM node itself.
11*c66ec88fSEmmanuel Vadot
12*c66ec88fSEmmanuel Vadot= SUBDEVICES
13*c66ec88fSEmmanuel Vadot
14*c66ec88fSEmmanuel VadotThe RPM exposes resources to its subnodes.  The rpm_requests node must be
15*c66ec88fSEmmanuel Vadotpresent and this subnode may contain children that designate regulator
16*c66ec88fSEmmanuel Vadotresources.
17*c66ec88fSEmmanuel Vadot
18*c66ec88fSEmmanuel Vadot- compatible:
19*c66ec88fSEmmanuel Vadot	Usage: required
20*c66ec88fSEmmanuel Vadot	Value type: <string>
21*c66ec88fSEmmanuel Vadot	Definition: must be one of:
22*c66ec88fSEmmanuel Vadot		    "qcom,rpm-apq8084"
23*c66ec88fSEmmanuel Vadot		    "qcom,rpm-msm8916"
24*c66ec88fSEmmanuel Vadot		    "qcom,rpm-msm8974"
25*c66ec88fSEmmanuel Vadot		    "qcom,rpm-msm8976"
26*c66ec88fSEmmanuel Vadot		    "qcom,rpm-msm8998"
27*c66ec88fSEmmanuel Vadot		    "qcom,rpm-sdm660"
28*c66ec88fSEmmanuel Vadot		    "qcom,rpm-qcs404"
29*c66ec88fSEmmanuel Vadot
30*c66ec88fSEmmanuel Vadot- qcom,smd-channels:
31*c66ec88fSEmmanuel Vadot	Usage: required
32*c66ec88fSEmmanuel Vadot	Value type: <string>
33*c66ec88fSEmmanuel Vadot	Definition: must be "rpm_requests"
34*c66ec88fSEmmanuel Vadot
35*c66ec88fSEmmanuel VadotRefer to Documentation/devicetree/bindings/regulator/qcom,smd-rpm-regulator.txt
36*c66ec88fSEmmanuel Vadotfor information on the regulator subnodes that can exist under the rpm_requests.
37*c66ec88fSEmmanuel Vadot
38*c66ec88fSEmmanuel VadotExample:
39*c66ec88fSEmmanuel Vadot
40*c66ec88fSEmmanuel Vadot	soc {
41*c66ec88fSEmmanuel Vadot		apcs: syscon@f9011000 {
42*c66ec88fSEmmanuel Vadot			compatible = "syscon";
43*c66ec88fSEmmanuel Vadot			reg = <0xf9011000 0x1000>;
44*c66ec88fSEmmanuel Vadot		};
45*c66ec88fSEmmanuel Vadot	};
46*c66ec88fSEmmanuel Vadot
47*c66ec88fSEmmanuel Vadot	smd {
48*c66ec88fSEmmanuel Vadot		compatible = "qcom,smd";
49*c66ec88fSEmmanuel Vadot
50*c66ec88fSEmmanuel Vadot		rpm {
51*c66ec88fSEmmanuel Vadot			interrupts = <0 168 1>;
52*c66ec88fSEmmanuel Vadot			qcom,ipc = <&apcs 8 0>;
53*c66ec88fSEmmanuel Vadot			qcom,smd-edge = <15>;
54*c66ec88fSEmmanuel Vadot
55*c66ec88fSEmmanuel Vadot			rpm_requests {
56*c66ec88fSEmmanuel Vadot				compatible = "qcom,rpm-msm8974";
57*c66ec88fSEmmanuel Vadot				qcom,smd-channels = "rpm_requests";
58*c66ec88fSEmmanuel Vadot
59*c66ec88fSEmmanuel Vadot				...
60*c66ec88fSEmmanuel Vadot			};
61*c66ec88fSEmmanuel Vadot		};
62*c66ec88fSEmmanuel Vadot	};
63