~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/devicetree/bindings/remoteproc/qcom,rpm-proc.yaml

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
  2 %YAML 1.2
  3 ---
  4 $id: http://devicetree.org/schemas/remoteproc/qcom,rpm-proc.yaml#
  5 $schema: http://devicetree.org/meta-schemas/core.yaml#
  6 
  7 title: Qualcomm Resource Power Manager (RPM) Processor/Subsystem
  8 
  9 maintainers:
 10   - Bjorn Andersson <andersson@kernel.org>
 11   - Konrad Dybcio <konradybcio@kernel.org>
 12   - Stephan Gerhold <stephan@gerhold.net>
 13 
 14 description: |
 15   Resource Power Manager (RPM) subsystem found in various Qualcomm platforms:
 16 
 17                   +--------------------------------------------+
 18                   |       RPM subsystem (qcom,rpm-proc)        |
 19                   |                                            |
 20             reset | +---------------+     +-----+  +-----+     |
 21           --------->|               |     | MPM |  | CPR | ... |
 22    IPC interrupts | | ARM Cortex-M3 |---  +-----+  +-----+     |
 23   ----------------->|               |  |     |        |        |
 24                   | +---------------+  |---------------------- |
 25                   | +---------------+  |                       |
 26                   | |   Code RAM    |--|  +------------------+ |
 27                   | +---------------+  |  |                  | |
 28                   | +---------------+  |--|   Message RAM    | |
 29                   | |   Data RAM    |--|  |                  | |
 30                   | +---------------+  |  +------------------+ |
 31                   +--------------------|-----------------------+
 32                                        v
 33                                       NoC
 34 
 35   The firmware running on the processor inside the RPM subsystem allows each
 36   component in the system to vote for state of the system resources, such as
 37   clocks, regulators and bus frequencies. It implements multiple separate
 38   communication interfaces that are described in subnodes, e.g. SMD and MPM:
 39 
 40              +------------------------------+
 41              |        ARM Cortex-M3         |
 42              |                              |   +------------------------------+
 43              | +--------------------------+ |   |          Message RAM         |
 44              | |  RPM firmware            | |   |                              |
 45    IPC IRQ 0 | | +----------------------+ | |   | +--------------------------+ |
 46   -------------->| SMD server           |<------->| SMD data structures      | |
 47              | | | +--------------+     | | |   | | +--------------+         | |
 48              | | | | rpm_requests | ... | | |   | | | rpm_requests |   ...   | |
 49              | | | +--------------+     | | |   | | +--------------+         | |
 50    IPC IRQ 1 | | +----------------------+ | |   | +--------------------------+ |
 51   -------------->| MPM virtualization   |<--------| MPM register copy (vMPM) | |
 52              | | +----------------------+ | |   | +--------------------------+ |
 53              | |           ...      |     | |   |              ...             |
 54              | +--------------------|-----+ |   +------------------------------+
 55              +----------------------|-------+
 56                                     v
 57                              +--------------+
 58                              | MPM Hardware |
 59                              +--------------+
 60 
 61   The services provided by the firmware are only available after the firmware
 62   has been loaded and the processor has been released from reset. Usually this
 63   happens early in the boot process before the operating system is started.
 64 
 65 properties:
 66   compatible:
 67     items:
 68       - enum:
 69           - qcom,apq8084-rpm-proc
 70           - qcom,ipq6018-rpm-proc
 71           - qcom,ipq9574-rpm-proc
 72           - qcom,mdm9607-rpm-proc
 73           - qcom,msm8226-rpm-proc
 74           - qcom,msm8610-rpm-proc
 75           - qcom,msm8909-rpm-proc
 76           - qcom,msm8916-rpm-proc
 77           - qcom,msm8917-rpm-proc
 78           - qcom,msm8936-rpm-proc
 79           - qcom,msm8937-rpm-proc
 80           - qcom,msm8952-rpm-proc
 81           - qcom,msm8953-rpm-proc
 82           - qcom,msm8974-rpm-proc
 83           - qcom,msm8976-rpm-proc
 84           - qcom,msm8994-rpm-proc
 85           - qcom,msm8996-rpm-proc
 86           - qcom,msm8998-rpm-proc
 87           - qcom,qcm2290-rpm-proc
 88           - qcom,qcs404-rpm-proc
 89           - qcom,sdm660-rpm-proc
 90           - qcom,sm6115-rpm-proc
 91           - qcom,sm6125-rpm-proc
 92           - qcom,sm6375-rpm-proc
 93       - const: qcom,rpm-proc
 94 
 95   smd-edge:
 96     $ref: /schemas/remoteproc/qcom,smd-edge.yaml#
 97     description:
 98       Qualcomm Shared Memory subnode which represents communication edge,
 99       channels and devices related to the RPM subsystem.
100 
101   glink-edge:
102     $ref: /schemas/remoteproc/qcom,glink-rpm-edge.yaml#
103     description:
104       Qualcomm G-Link subnode which represents communication edge,
105       channels and devices related to the RPM subsystem.
106 
107   interrupt-controller:
108     type: object
109     $ref: /schemas/interrupt-controller/qcom,mpm.yaml#
110     description:
111       MSM Power Manager (MPM) interrupt controller that monitors interrupts
112       when the system is asleep.
113 
114   master-stats:
115     $ref: /schemas/soc/qcom/qcom,rpm-master-stats.yaml#
116     description:
117       Subsystem-level low-power mode statistics provided by RPM.
118 
119 required:
120   - compatible
121 
122 oneOf:
123   - required:
124       - smd-edge
125   - required:
126       - glink-edge
127 
128 additionalProperties: false
129 
130 examples:
131   # SMD
132   - |
133     #include <dt-bindings/interrupt-controller/arm-gic.h>
134     #include <dt-bindings/interrupt-controller/irq.h>
135 
136     remoteproc {
137       compatible = "qcom,msm8916-rpm-proc", "qcom,rpm-proc";
138 
139       smd-edge {
140         interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
141         qcom,ipc = <&apcs 8 0>;
142         qcom,smd-edge = <15>;
143 
144         rpm-requests {
145           compatible = "qcom,rpm-msm8916", "qcom,smd-rpm";
146           qcom,smd-channels = "rpm_requests";
147           /* ... */
148         };
149       };
150     };
151   # GLINK
152   - |
153     #include <dt-bindings/interrupt-controller/arm-gic.h>
154     #include <dt-bindings/interrupt-controller/irq.h>
155 
156     remoteproc {
157       compatible = "qcom,qcm2290-rpm-proc", "qcom,rpm-proc";
158 
159       glink-edge {
160         compatible = "qcom,glink-rpm";
161         interrupts = <GIC_SPI 194 IRQ_TYPE_EDGE_RISING>;
162         qcom,rpm-msg-ram = <&rpm_msg_ram>;
163         mboxes = <&apcs_glb 0>;
164 
165         rpm-requests {
166           compatible = "qcom,rpm-qcm2290", "qcom,glink-smd-rpm";
167           qcom,glink-channels = "rpm_requests";
168           /* ... */
169         };
170       };
171     };

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php