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