Raju P.L.S.S.S.N | 43c1be7 | 2017-10-31 16:50:30 +0530 | [diff] [blame] | 1 | Resource Power Manager(RPM) |
| 2 | |
| 3 | RPM is a dedicated hardware engine for managing shared SoC resources, |
| 4 | which includes buses, clocks, power rails, etc. The goal of RPM is |
| 5 | to achieve the maximum power savings while satisfying the SoC's |
| 6 | operational and performance requirements. RPM accepts resource |
| 7 | requests from multiple RPM masters. It arbitrates and aggregates the |
| 8 | requests, and configures the shared resources. The RPM masters are |
| 9 | the application processor, the modem processor, as well as hardware |
| 10 | accelerators. The RPM driver communicates with the hardware engine using |
| 11 | SMD. |
| 12 | |
| 13 | The devicetree representation of the SPM block should be: |
| 14 | |
| 15 | Required 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 | |
| 26 | Optional 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 | |
| 32 | Example: |
| 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 | } |