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

TOMOYO Linux Cross Reference
Linux/Documentation/devicetree/bindings/remoteproc/ti,pru-rproc.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-only OR BSD-2-Clause)
  2 %YAML 1.2
  3 ---
  4 $id: http://devicetree.org/schemas/remoteproc/ti,pru-rproc.yaml#
  5 $schema: http://devicetree.org/meta-schemas/core.yaml#
  6 
  7 title: TI Programmable Realtime Unit (PRU) cores
  8 
  9 maintainers:
 10   - Suman Anna <s-anna@ti.com>
 11 
 12 description: |
 13   Each Programmable Real-Time Unit and Industrial Communication Subsystem
 14   (PRU-ICSS or PRUSS) has two 32-bit load/store RISC CPU cores called
 15   Programmable Real-Time Units (PRUs), each represented by a node. Each PRU
 16   core has a dedicated Instruction RAM, Control and Debug register sets, and
 17   use the Data RAMs present within the PRU-ICSS for code execution.
 18 
 19   The K3 SoCs containing ICSSG v1.0 (eg: AM65x SR1.0) also have two Auxiliary
 20   PRU cores called RTUs with slightly different IP integration. The K3 SoCs
 21   containing the revised ICSSG v1.1 (eg: J721E, AM65x SR2.0) have an extra two
 22   auxiliary Transmit PRU cores called Tx_PRUs that augment the PRUs. Each RTU
 23   or Tx_PRU core can also be used independently like a PRU, or alongside a
 24   corresponding PRU core to provide/implement auxiliary functionality/support.
 25 
 26   Each PRU, RTU or Tx_PRU core node should be defined as a child node of the
 27   corresponding PRU-ICSS node. Each node can optionally be rendered inactive by
 28   using the standard DT string property, "status".
 29 
 30   Please see the overall PRU-ICSS bindings document for additional details
 31   including a complete example,
 32     Documentation/devicetree/bindings/soc/ti/ti,pruss.yaml
 33 
 34 properties:
 35   compatible:
 36     enum:
 37       - ti,am3356-pru   # for AM335x SoC family (AM3356+ SoCs only)
 38       - ti,am4376-pru   # for AM437x SoC family (AM4376+ SoCs only)
 39       - ti,am5728-pru   # for AM57xx SoC family
 40       - ti,am625-pru    # for PRUs in K3 AM62x SoC family
 41       - ti,am642-pru    # for PRUs in K3 AM64x SoC family
 42       - ti,am642-rtu    # for RTUs in K3 AM64x SoC family
 43       - ti,am642-tx-pru # for Tx_PRUs in K3 AM64x SoC family
 44       - ti,am654-pru    # for PRUs in K3 AM65x SoC family
 45       - ti,am654-rtu    # for RTUs in K3 AM65x SoC family
 46       - ti,am654-tx-pru # for Tx_PRUs in K3 AM65x SR2.0 SoCs
 47       - ti,j721e-pru    # for PRUs in K3 J721E SoC family
 48       - ti,j721e-rtu    # for RTUs in K3 J721E SoC family
 49       - ti,j721e-tx-pru # for Tx_PRUs in K3 J721E SoC family
 50       - ti,k2g-pru      # for 66AK2G SoC family
 51 
 52   reg:
 53     items:
 54       - description: Address and Size of the PRU Instruction RAM
 55       - description: Address and Size of the PRU CTRL sub-module registers
 56       - description: Address and Size of the PRU Debug sub-module registers
 57 
 58   reg-names:
 59     items:
 60       - const: iram
 61       - const: control
 62       - const: debug
 63 
 64   firmware-name:
 65     description: |
 66       Should contain the name of the default firmware image
 67       file located on the firmware search path.
 68 
 69   interrupts:
 70     maxItems: 1
 71     description:
 72       Interrupt specifiers enable the virtio/rpmsg communication between MPU
 73       and the PRU/RTU cores. For the values of the interrupt cells please refer
 74       to interrupt-controller/ti,pruss-intc.yaml schema.
 75 
 76   interrupt-names:
 77     items:
 78       - const: vring
 79 
 80 if:
 81   properties:
 82     compatible:
 83       enum:
 84         - ti,am654-rtu
 85         - ti,j721e-rtu
 86         - ti,am642-rtu
 87 then:
 88   properties:
 89     $nodename:
 90       pattern: "^rtu@[0-9a-f]+$"
 91 else:
 92   if:
 93     properties:
 94       compatible:
 95         enum:
 96           - ti,am654-tx-pru
 97           - ti,j721e-tx-pru
 98           - ti,am642-tx-pru
 99   then:
100     properties:
101       $nodename:
102         pattern: "^txpru@[0-9a-f]+"
103   else:
104     properties:
105       $nodename:
106         pattern: "^pru@[0-9a-f]+$"
107 
108 required:
109   - compatible
110   - reg
111   - reg-names
112   - firmware-name
113 
114 additionalProperties: false
115 
116 examples:
117   - |
118     /* AM33xx PRU-ICSS */
119     pruss_tm: target-module@300000 {  /* 0x4a300000, ap 9 04.0 */
120       compatible = "ti,sysc-pruss", "ti,sysc";
121       #address-cells = <1>;
122       #size-cells = <1>;
123       ranges = <0x0 0x300000 0x80000>;
124 
125       pruss: pruss@0 {
126         compatible = "ti,am3356-pruss";
127         reg = <0x0 0x80000>;
128         #address-cells = <1>;
129         #size-cells = <1>;
130         ranges;
131 
132         pruss_mem: memories@0 {
133           reg = <0x0 0x2000>,
134                 <0x2000 0x2000>,
135                 <0x10000 0x3000>;
136           reg-names = "dram0", "dram1", "shrdram2";
137         };
138 
139         pru0: pru@34000 {
140           compatible = "ti,am3356-pru";
141           reg = <0x34000 0x2000>,
142                 <0x22000 0x400>,
143                 <0x22400 0x100>;
144           reg-names = "iram", "control", "debug";
145           firmware-name = "am335x-pru0-fw";
146         };
147 
148         pru1: pru@38000 {
149           compatible = "ti,am3356-pru";
150           reg = <0x38000 0x2000>,
151                 <0x24000 0x400>,
152                 <0x24400 0x100>;
153           reg-names = "iram", "control", "debug";
154           firmware-name = "am335x-pru1-fw";
155         };
156       };
157     };
158 
159   - |
160     /* AM65x SR2.0 ICSSG */
161     #include <dt-bindings/soc/ti,sci_pm_domain.h>
162 
163     icssg0: icssg@b000000 {
164       compatible = "ti,am654-icssg";
165       reg = <0xb000000 0x80000>;
166       power-domains = <&k3_pds 62 TI_SCI_PD_EXCLUSIVE>;
167       #address-cells = <1>;
168       #size-cells = <1>;
169       ranges = <0x0 0xb000000 0x80000>;
170 
171       icssg0_mem: memories@0 {
172         reg = <0x0 0x2000>,
173               <0x2000 0x2000>,
174               <0x10000 0x10000>;
175         reg-names = "dram0", "dram1", "shrdram2";
176       };
177 
178       pru0_0: pru@34000 {
179         compatible = "ti,am654-pru";
180         reg = <0x34000 0x4000>,
181               <0x22000 0x100>,
182               <0x22400 0x100>;
183         reg-names = "iram", "control", "debug";
184         firmware-name = "am65x-pru0_0-fw";
185         interrupt-parent = <&icssg0_intc>;
186         interrupts = <16 2 2>;
187         interrupt-names = "vring";
188       };
189 
190       rtu0_0: rtu@4000 {
191         compatible = "ti,am654-rtu";
192         reg = <0x4000 0x2000>,
193               <0x23000 0x100>,
194               <0x23400 0x100>;
195         reg-names = "iram", "control", "debug";
196         firmware-name = "am65x-rtu0_0-fw";
197         interrupt-parent = <&icssg0_intc>;
198         interrupts = <20 4 4>;
199         interrupt-names = "vring";
200       };
201 
202       tx_pru0_0: txpru@a000 {
203         compatible = "ti,am654-tx-pru";
204         reg = <0xa000 0x1800>,
205               <0x25000 0x100>,
206               <0x25400 0x100>;
207         reg-names = "iram", "control", "debug";
208         firmware-name = "am65x-txpru0_0-fw";
209       };
210 
211       pru0_1: pru@38000 {
212         compatible = "ti,am654-pru";
213         reg = <0x38000 0x4000>,
214               <0x24000 0x100>,
215               <0x24400 0x100>;
216         reg-names = "iram", "control", "debug";
217         firmware-name = "am65x-pru0_1-fw";
218         interrupt-parent = <&icssg0_intc>;
219         interrupts = <18 3 3>;
220         interrupt-names = "vring";
221       };
222 
223       rtu0_1: rtu@6000 {
224         compatible = "ti,am654-rtu";
225         reg = <0x6000 0x2000>,
226               <0x23800 0x100>,
227               <0x23c00 0x100>;
228         reg-names = "iram", "control", "debug";
229         firmware-name = "am65x-rtu0_1-fw";
230         interrupt-parent = <&icssg0_intc>;
231         interrupts = <22 5 5>;
232         interrupt-names = "vring";
233       };
234 
235       tx_pru0_1: txpru@c000 {
236         compatible = "ti,am654-tx-pru";
237         reg = <0xc000 0x1800>,
238               <0x25800 0x100>,
239               <0x25c00 0x100>;
240         reg-names = "iram", "control", "debug";
241         firmware-name = "am65x-txpru0_1-fw";
242       };
243     };

~ [ 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