blob: 4cba3ecaeb90bf244975b460dc1610dcf8b947fc [file] [log] [blame]
Raju P.L.S.S.S.N43c1be72017-10-31 16:50:30 +05301Resource Power Manager(RPM)
2
3RPM is a dedicated hardware engine for managing shared SoC resources,
4which includes buses, clocks, power rails, etc. The goal of RPM is
5to achieve the maximum power savings while satisfying the SoC's
6operational and performance requirements. RPM accepts resource
7requests from multiple RPM masters. It arbitrates and aggregates the
8requests, and configures the shared resources. The RPM masters are
9the application processor, the modem processor, as well as hardware
10accelerators. The RPM driver communicates with the hardware engine using
11SMD.
12
13The devicetree representation of the SPM block should be:
14
15Required properties
16
17- compatible: "qcom,rpm-smd" or "qcom,rpm-glink"
18- rpm-channel-name: The string corresponding to the channel name of the
19 peripheral subsystem. Required for both smd and
20 glink transports.
21- rpm-channel-type: The interal SMD edge for this subsystem found in
22 <soc/qcom/smd.h>
23- qcom,glink-edge: Logical name of the remote subsystem. This is a required
24 property when rpm-smd driver using glink as trasport.
25
26Optional properties
27- rpm-standalone: Allow RPM driver to run in standalone mode irrespective of RPM
28 channel presence.
29- reg: Contains the memory address at which rpm messaging format version is
30 stored. If this field is not present, the target only supports v0 format.
31
32Example:
33
34 qcom,rpm-smd@68150 {
35 compatible = "qcom,rpm-smd", "qcom,rpm-glink";
36 reg = <0x68150 0x3200>;
37 qcom,rpm-channel-name = "rpm_requests";
38 qcom,rpm-channel-type = 15; /* SMD_APPS_RPM */
39 qcom,glink-edge = "rpm";
40 }
41}