xref: /freebsd/sys/contrib/device-tree/Bindings/clock/qcom,rpmcc.txt (revision e32fecd0c2c3ee37c47ee100f169e7eb0282a873)
1Qualcomm RPM Clock Controller Binding
2------------------------------------------------
3The RPM is a dedicated hardware engine for managing the shared
4SoC resources in order to keep the lowest power profile. It
5communicates with other hardware subsystems via shared memory
6and accepts clock requests, aggregates the requests and turns
7the clocks on/off or scales them on demand.
8
9Required properties :
10- compatible : shall contain only one of the following. The generic
11               compatible "qcom,rpmcc" should be also included.
12
13			"qcom,rpmcc-mdm9607", "qcom,rpmcc"
14			"qcom,rpmcc-msm8660", "qcom,rpmcc"
15			"qcom,rpmcc-apq8060", "qcom,rpmcc"
16			"qcom,rpmcc-msm8226", "qcom,rpmcc"
17			"qcom,rpmcc-msm8916", "qcom,rpmcc"
18			"qcom,rpmcc-msm8936", "qcom,rpmcc"
19			"qcom,rpmcc-msm8953", "qcom,rpmcc"
20			"qcom,rpmcc-msm8974", "qcom,rpmcc"
21			"qcom,rpmcc-msm8976", "qcom,rpmcc"
22			"qcom,rpmcc-apq8064", "qcom,rpmcc"
23			"qcom,rpmcc-ipq806x", "qcom,rpmcc"
24			"qcom,rpmcc-msm8992",·"qcom,rpmcc"
25			"qcom,rpmcc-msm8994",·"qcom,rpmcc"
26			"qcom,rpmcc-msm8996", "qcom,rpmcc"
27			"qcom,rpmcc-msm8998", "qcom,rpmcc"
28			"qcom,rpmcc-qcm2290", "qcom,rpmcc"
29			"qcom,rpmcc-qcs404", "qcom,rpmcc"
30			"qcom,rpmcc-sdm660", "qcom,rpmcc"
31			"qcom,rpmcc-sm6115", "qcom,rpmcc"
32			"qcom,rpmcc-sm6125", "qcom,rpmcc"
33
34- #clock-cells : shall contain 1
35
36The clock enumerators are defined in <dt-bindings/clock/qcom,rpmcc.h>
37and come in pairs: FOO_CLK followed by FOO_A_CLK. The latter clock
38is an "active" clock, which means that the consumer only care that the
39clock is available when the apps CPU subsystem is active, i.e. not
40suspended or in deep idle. If it is important that the clock keeps running
41during system suspend, you need to specify the non-active clock, the one
42not containing *_A_* in the enumerator name.
43
44Example:
45	smd {
46		compatible = "qcom,smd";
47
48		rpm {
49			interrupts = <0 168 1>;
50			qcom,ipc = <&apcs 8 0>;
51			qcom,smd-edge = <15>;
52
53			rpm_requests {
54				compatible = "qcom,rpm-msm8916";
55				qcom,smd-channels = "rpm_requests";
56
57				rpmcc: clock-controller {
58					compatible = "qcom,rpmcc-msm8916", "qcom,rpmcc";
59					#clock-cells = <1>;
60				};
61			};
62		};
63	};
64