42 lines
1.5 KiB
Plaintext
42 lines
1.5 KiB
Plaintext
Resource Power Manager(RPM)
|
|
|
|
RPM is a dedicated hardware engine for managing shared SoC resources,
|
|
which includes buses, clocks, power rails, etc. The goal of RPM is
|
|
to achieve the maximum power savings while satisfying the SoC's
|
|
operational and performance requirements. RPM accepts resource
|
|
requests from multiple RPM masters. It arbitrates and aggregates the
|
|
requests, and configures the shared resources. The RPM masters are
|
|
the application processor, the modem processor, as well as hardware
|
|
accelerators. The RPM driver communicates with the hardware engine using
|
|
SMD.
|
|
|
|
The devicetree representation of the RPM block should be:
|
|
|
|
Required properties
|
|
|
|
- compatible: "qcom,rpm-smd"
|
|
- rpm-channel-name: The string corresponding to the channel name of the
|
|
peripheral subsystem. Required for both smd and
|
|
glink transports.
|
|
- rpm-channel-type: The interal SMD edge for this subsystem found in
|
|
<soc/qcom/smd.h>
|
|
- interrupts: The IRQ used by remote processor to inform APSS about
|
|
reception of response message packet.
|
|
|
|
Optional properties
|
|
- rpm-standalone: Allow RPM driver to run in standalone mode irrespective of RPM
|
|
channel presence.
|
|
- reg: Contains the memory address at which rpm messaging format version is
|
|
stored. If this field is not present, the target only supports v0 format.
|
|
|
|
Example:
|
|
|
|
qcom,rpm-smd@68150 {
|
|
compatible = "qcom,rpm-smd";
|
|
reg = <0x68150 0x3200>;
|
|
interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
|
|
qcom,rpm-channel-name = "rpm_requests";
|
|
qcom,rpm-channel-type = 15; /* SMD_APPS_RPM */
|
|
}
|
|
}
|