| 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" or "qcom,rpm-glink" |
| - 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> |
| - qcom,glink-edge: Logical name of the remote subsystem. This is a required |
| property when rpm-smd driver using glink as trasport. |
| |
| 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", "qcom,rpm-glink"; |
| reg = <0x68150 0x3200>; |
| qcom,rpm-channel-name = "rpm_requests"; |
| qcom,rpm-channel-type = 15; /* SMD_APPS_RPM */ |
| qcom,glink-edge = "rpm"; |
| } |
| } |