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 SPM block should be:
|
|
|
|
Required properties
|
|
|
|
- compatible: "qcom,rpm-smd"
|
|
- rpm-channel-name: The string corresponding to the channel name of the
|
|
peripheral subsystem
|
|
- rpm-channel-type: The interal SMD edge for this subsystem found in
|
|
<mach/msm_smd.h>
|
|
|
|
Optional properties
|
|
- rpm-standlone: Allow the driver to run in standalone mode. This is a
|
|
suggestion to the RPM driver and if the SMD
|
|
channel is made available for RPM, the driver
|
|
would continue to send requests to RPM processor,
|
|
but if the SMD channel is unavailable, driver will
|
|
return success even though the data is not sent
|
|
to the RPM processor. In the absence of this
|
|
option, the driver will fail if the SMD channel
|
|
is unavailable.
|
|
|
|
Example:
|
|
|
|
qcom,rpm-smd {
|
|
compatible = "qcom,rpm-smd"
|
|
qcom,rpm-channel-name = "rpm_requests";
|
|
qcom,rpm-channel-type = 15; /* SMD_APPS_RPM */
|
|
}
|
|
}
|