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) 3910f003b4SKishon Vijay Abraham I - ti,am5728-pru # for AM57xx SoC family 40*ca63e3d8SKishon Vijay Abraham I - ti,am625-pru # for PRUs in K3 AM62x SoC family 41bfc24512SSuman Anna - ti,am642-pru # for PRUs in K3 AM64x SoC family 42bfc24512SSuman Anna - ti,am642-rtu # for RTUs in K3 AM64x SoC family 43bfc24512SSuman Anna - ti,am642-tx-pru # for Tx_PRUs in K3 AM64x 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 5010f003b4SKishon Vijay Abraham I - ti,k2g-pru # for 66AK2G SoC family 51d570d05eSSuman Anna 52d570d05eSSuman Anna reg: 53d570d05eSSuman Anna items: 54d570d05eSSuman Anna - description: Address and Size of the PRU Instruction RAM 55d570d05eSSuman Anna - description: Address and Size of the PRU CTRL sub-module registers 56d570d05eSSuman Anna - description: Address and Size of the PRU Debug sub-module registers 57d570d05eSSuman Anna 58d570d05eSSuman Anna reg-names: 59d570d05eSSuman Anna items: 60d570d05eSSuman Anna - const: iram 61d570d05eSSuman Anna - const: control 62d570d05eSSuman Anna - const: debug 63d570d05eSSuman Anna 64d570d05eSSuman Anna firmware-name: 65d570d05eSSuman Anna description: | 66d570d05eSSuman Anna Should contain the name of the default firmware image 67d570d05eSSuman Anna file located on the firmware search path. 68d570d05eSSuman Anna 69d570d05eSSuman Annaif: 70d570d05eSSuman Anna properties: 71d570d05eSSuman Anna compatible: 72d570d05eSSuman Anna enum: 73d570d05eSSuman Anna - ti,am654-rtu 74d570d05eSSuman Anna - ti,j721e-rtu 75bfc24512SSuman Anna - ti,am642-rtu 76d570d05eSSuman Annathen: 77d570d05eSSuman Anna properties: 78d570d05eSSuman Anna $nodename: 79d570d05eSSuman Anna pattern: "^rtu@[0-9a-f]+$" 80d570d05eSSuman Annaelse: 81d570d05eSSuman Anna if: 82d570d05eSSuman Anna properties: 83d570d05eSSuman Anna compatible: 84d570d05eSSuman Anna enum: 85d570d05eSSuman Anna - ti,am654-tx-pru 86d570d05eSSuman Anna - ti,j721e-tx-pru 87bfc24512SSuman Anna - ti,am642-tx-pru 88d570d05eSSuman Anna then: 89d570d05eSSuman Anna properties: 90d570d05eSSuman Anna $nodename: 91d570d05eSSuman Anna pattern: "^txpru@[0-9a-f]+" 92d570d05eSSuman Anna else: 93d570d05eSSuman Anna properties: 94d570d05eSSuman Anna $nodename: 95d570d05eSSuman Anna pattern: "^pru@[0-9a-f]+$" 96d570d05eSSuman Anna 97d570d05eSSuman Annarequired: 98d570d05eSSuman Anna - compatible 99d570d05eSSuman Anna - reg 100d570d05eSSuman Anna - reg-names 101d570d05eSSuman Anna - firmware-name 102d570d05eSSuman Anna 103d570d05eSSuman AnnaadditionalProperties: false 104d570d05eSSuman Anna 105d570d05eSSuman Annaexamples: 106d570d05eSSuman Anna - | 107d570d05eSSuman Anna /* AM33xx PRU-ICSS */ 108d570d05eSSuman Anna pruss_tm: target-module@300000 { /* 0x4a300000, ap 9 04.0 */ 109d570d05eSSuman Anna compatible = "ti,sysc-pruss", "ti,sysc"; 110d570d05eSSuman Anna #address-cells = <1>; 111d570d05eSSuman Anna #size-cells = <1>; 112d570d05eSSuman Anna ranges = <0x0 0x300000 0x80000>; 113d570d05eSSuman Anna 114d570d05eSSuman Anna pruss: pruss@0 { 115d570d05eSSuman Anna compatible = "ti,am3356-pruss"; 116d570d05eSSuman Anna reg = <0x0 0x80000>; 117d570d05eSSuman Anna #address-cells = <1>; 118d570d05eSSuman Anna #size-cells = <1>; 119d570d05eSSuman Anna ranges; 120d570d05eSSuman Anna 121d570d05eSSuman Anna pruss_mem: memories@0 { 122d570d05eSSuman Anna reg = <0x0 0x2000>, 123d570d05eSSuman Anna <0x2000 0x2000>, 124d570d05eSSuman Anna <0x10000 0x3000>; 125d570d05eSSuman Anna reg-names = "dram0", "dram1", "shrdram2"; 126d570d05eSSuman Anna }; 127d570d05eSSuman Anna 128d570d05eSSuman Anna pru0: pru@34000 { 129d570d05eSSuman Anna compatible = "ti,am3356-pru"; 130d570d05eSSuman Anna reg = <0x34000 0x2000>, 131d570d05eSSuman Anna <0x22000 0x400>, 132d570d05eSSuman Anna <0x22400 0x100>; 133d570d05eSSuman Anna reg-names = "iram", "control", "debug"; 134d570d05eSSuman Anna firmware-name = "am335x-pru0-fw"; 135d570d05eSSuman Anna }; 136d570d05eSSuman Anna 137d570d05eSSuman Anna pru1: pru@38000 { 138d570d05eSSuman Anna compatible = "ti,am3356-pru"; 139d570d05eSSuman Anna reg = <0x38000 0x2000>, 140d570d05eSSuman Anna <0x24000 0x400>, 141d570d05eSSuman Anna <0x24400 0x100>; 142d570d05eSSuman Anna reg-names = "iram", "control", "debug"; 143d570d05eSSuman Anna firmware-name = "am335x-pru1-fw"; 144d570d05eSSuman Anna }; 145d570d05eSSuman Anna }; 146d570d05eSSuman Anna }; 147d570d05eSSuman Anna 148d570d05eSSuman Anna - | 149d570d05eSSuman Anna /* AM65x SR2.0 ICSSG */ 150d570d05eSSuman Anna #include <dt-bindings/soc/ti,sci_pm_domain.h> 151d570d05eSSuman Anna 152d570d05eSSuman Anna icssg0: icssg@b000000 { 153d570d05eSSuman Anna compatible = "ti,am654-icssg"; 154d570d05eSSuman Anna reg = <0xb000000 0x80000>; 155d570d05eSSuman Anna power-domains = <&k3_pds 62 TI_SCI_PD_EXCLUSIVE>; 156d570d05eSSuman Anna #address-cells = <1>; 157d570d05eSSuman Anna #size-cells = <1>; 158d570d05eSSuman Anna ranges = <0x0 0xb000000 0x80000>; 159d570d05eSSuman Anna 160d570d05eSSuman Anna icssg0_mem: memories@0 { 161d570d05eSSuman Anna reg = <0x0 0x2000>, 162d570d05eSSuman Anna <0x2000 0x2000>, 163d570d05eSSuman Anna <0x10000 0x10000>; 164d570d05eSSuman Anna reg-names = "dram0", "dram1", "shrdram2"; 165d570d05eSSuman Anna }; 166d570d05eSSuman Anna 167d570d05eSSuman Anna pru0_0: pru@34000 { 168d570d05eSSuman Anna compatible = "ti,am654-pru"; 169d570d05eSSuman Anna reg = <0x34000 0x4000>, 170d570d05eSSuman Anna <0x22000 0x100>, 171d570d05eSSuman Anna <0x22400 0x100>; 172d570d05eSSuman Anna reg-names = "iram", "control", "debug"; 173d570d05eSSuman Anna firmware-name = "am65x-pru0_0-fw"; 174d570d05eSSuman Anna }; 175d570d05eSSuman Anna 176d570d05eSSuman Anna rtu0_0: rtu@4000 { 177d570d05eSSuman Anna compatible = "ti,am654-rtu"; 178d570d05eSSuman Anna reg = <0x4000 0x2000>, 179d570d05eSSuman Anna <0x23000 0x100>, 180d570d05eSSuman Anna <0x23400 0x100>; 181d570d05eSSuman Anna reg-names = "iram", "control", "debug"; 182d570d05eSSuman Anna firmware-name = "am65x-rtu0_0-fw"; 183d570d05eSSuman Anna }; 184d570d05eSSuman Anna 185d570d05eSSuman Anna tx_pru0_0: txpru@a000 { 186d570d05eSSuman Anna compatible = "ti,am654-tx-pru"; 187d570d05eSSuman Anna reg = <0xa000 0x1800>, 188d570d05eSSuman Anna <0x25000 0x100>, 189d570d05eSSuman Anna <0x25400 0x100>; 190d570d05eSSuman Anna reg-names = "iram", "control", "debug"; 191d570d05eSSuman Anna firmware-name = "am65x-txpru0_0-fw"; 192d570d05eSSuman Anna }; 193d570d05eSSuman Anna 194d570d05eSSuman Anna pru0_1: pru@38000 { 195d570d05eSSuman Anna compatible = "ti,am654-pru"; 196d570d05eSSuman Anna reg = <0x38000 0x4000>, 197d570d05eSSuman Anna <0x24000 0x100>, 198d570d05eSSuman Anna <0x24400 0x100>; 199d570d05eSSuman Anna reg-names = "iram", "control", "debug"; 200d570d05eSSuman Anna firmware-name = "am65x-pru0_1-fw"; 201d570d05eSSuman Anna }; 202d570d05eSSuman Anna 203d570d05eSSuman Anna rtu0_1: rtu@6000 { 204d570d05eSSuman Anna compatible = "ti,am654-rtu"; 205d570d05eSSuman Anna reg = <0x6000 0x2000>, 206d570d05eSSuman Anna <0x23800 0x100>, 207d570d05eSSuman Anna <0x23c00 0x100>; 208d570d05eSSuman Anna reg-names = "iram", "control", "debug"; 209d570d05eSSuman Anna firmware-name = "am65x-rtu0_1-fw"; 210d570d05eSSuman Anna }; 211d570d05eSSuman Anna 212d570d05eSSuman Anna tx_pru0_1: txpru@c000 { 213d570d05eSSuman Anna compatible = "ti,am654-tx-pru"; 214d570d05eSSuman Anna reg = <0xc000 0x1800>, 215d570d05eSSuman Anna <0x25800 0x100>, 216d570d05eSSuman Anna <0x25c00 0x100>; 217d570d05eSSuman Anna reg-names = "iram", "control", "debug"; 218d570d05eSSuman Anna firmware-name = "am65x-txpru0_1-fw"; 219d570d05eSSuman Anna }; 220d570d05eSSuman Anna }; 221