2016-11-02 23:56:56 +08:00
|
|
|
Qualcomm RPM Clock Controller Binding
|
|
|
|
------------------------------------------------
|
|
|
|
The RPM is a dedicated hardware engine for managing the shared
|
|
|
|
SoC resources in order to keep the lowest power profile. It
|
|
|
|
communicates with other hardware subsystems via shared memory
|
|
|
|
and accepts clock requests, aggregates the requests and turns
|
|
|
|
the clocks on/off or scales them on demand.
|
|
|
|
|
|
|
|
Required properties :
|
|
|
|
- compatible : shall contain only one of the following. The generic
|
|
|
|
compatible "qcom,rpmcc" should be also included.
|
|
|
|
|
2021-08-06 06:23:59 +08:00
|
|
|
"qcom,rpmcc-mdm9607", "qcom,rpmcc"
|
2017-10-13 19:59:16 +08:00
|
|
|
"qcom,rpmcc-msm8660", "qcom,rpmcc"
|
|
|
|
"qcom,rpmcc-apq8060", "qcom,rpmcc"
|
2021-05-02 20:20:26 +08:00
|
|
|
"qcom,rpmcc-msm8226", "qcom,rpmcc"
|
2016-11-02 23:56:56 +08:00
|
|
|
"qcom,rpmcc-msm8916", "qcom,rpmcc"
|
2020-06-13 15:27:43 +08:00
|
|
|
"qcom,rpmcc-msm8936", "qcom,rpmcc"
|
2021-08-06 01:19:29 +08:00
|
|
|
"qcom,rpmcc-msm8953", "qcom,rpmcc"
|
2016-11-19 00:33:25 +08:00
|
|
|
"qcom,rpmcc-msm8974", "qcom,rpmcc"
|
2019-10-31 19:29:51 +08:00
|
|
|
"qcom,rpmcc-msm8976", "qcom,rpmcc"
|
2016-11-02 23:56:57 +08:00
|
|
|
"qcom,rpmcc-apq8064", "qcom,rpmcc"
|
2020-03-10 22:37:56 +08:00
|
|
|
"qcom,rpmcc-ipq806x", "qcom,rpmcc"
|
2020-06-24 07:00:18 +08:00
|
|
|
"qcom,rpmcc-msm8992",·"qcom,rpmcc"
|
|
|
|
"qcom,rpmcc-msm8994",·"qcom,rpmcc"
|
2017-10-10 16:57:13 +08:00
|
|
|
"qcom,rpmcc-msm8996", "qcom,rpmcc"
|
2018-12-18 10:15:36 +08:00
|
|
|
"qcom,rpmcc-msm8998", "qcom,rpmcc"
|
2018-11-03 15:00:02 +08:00
|
|
|
"qcom,rpmcc-qcs404", "qcom,rpmcc"
|
2020-06-22 17:02:52 +08:00
|
|
|
"qcom,rpmcc-sdm660", "qcom,rpmcc"
|
2021-06-28 02:59:24 +08:00
|
|
|
"qcom,rpmcc-sm6115", "qcom,rpmcc"
|
2021-06-29 18:26:22 +08:00
|
|
|
"qcom,rpmcc-sm6125", "qcom,rpmcc"
|
2016-11-02 23:56:56 +08:00
|
|
|
|
|
|
|
- #clock-cells : shall contain 1
|
|
|
|
|
2017-10-13 19:26:35 +08:00
|
|
|
The clock enumerators are defined in <dt-bindings/clock/qcom,rpmcc.h>
|
|
|
|
and come in pairs: FOO_CLK followed by FOO_A_CLK. The latter clock
|
|
|
|
is an "active" clock, which means that the consumer only care that the
|
|
|
|
clock is available when the apps CPU subsystem is active, i.e. not
|
|
|
|
suspended or in deep idle. If it is important that the clock keeps running
|
|
|
|
during system suspend, you need to specify the non-active clock, the one
|
|
|
|
not containing *_A_* in the enumerator name.
|
|
|
|
|
2016-11-02 23:56:56 +08:00
|
|
|
Example:
|
|
|
|
smd {
|
|
|
|
compatible = "qcom,smd";
|
|
|
|
|
|
|
|
rpm {
|
|
|
|
interrupts = <0 168 1>;
|
|
|
|
qcom,ipc = <&apcs 8 0>;
|
|
|
|
qcom,smd-edge = <15>;
|
|
|
|
|
|
|
|
rpm_requests {
|
|
|
|
compatible = "qcom,rpm-msm8916";
|
|
|
|
qcom,smd-channels = "rpm_requests";
|
|
|
|
|
|
|
|
rpmcc: clock-controller {
|
|
|
|
compatible = "qcom,rpmcc-msm8916", "qcom,rpmcc";
|
|
|
|
#clock-cells = <1>;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|