]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - rpmsg/rpmsg.git/commitdiff
ARM: dts: AM4372: Add the PRU-ICSS1 DT node
authorSuman Anna <s-anna@ti.com>
Mon, 18 Feb 2019 19:42:05 +0000 (13:42 -0600)
committerSuman Anna <s-anna@ti.com>
Sun, 24 Feb 2019 01:20:49 +0000 (19:20 -0600)
Add the DT node for the PRU-ICSS1 instance on the AM437x family
of SoCs. Each PRU-ICSS instance is represented by the pruss-soc-bus
node and a child PRUSS subsystem node. The PRU-ICSS instances are
not supported on AM4372 SoC though in the AM437x family, so the
nodes are added in disabled state in the common am4372 dtsi file.
They should be enabled in only those derivative board files that
use a SoC containing PRU-ICSS.

The PRU-ICSS1 on AM437x is very similar to the PRUSS in AM33xx,
except for variations in the RAM sizes, bus addresses and the
number of interrupts coming into the MPU INTC (host interrupt
7 is routed to the other PRUSS instead of MPU).

The PRUSS subsystem node contains the entire address space and
the various interrupts generated towards the main MPU. The various
sub-modules of the PRU-ICSS are represented as individual child
nodes (so platform devices themselves) of the PRUSS subsystem node.
These include the two PRU cores and the interrupt controller. The
Industrial Ethernet Peripheral (IEP), the Real Time Media Independent
Interface controller (MII_RT), and the CFG sub-module are represented
as syscon nodes. All the Data RAMs are represented within a child node
of its own named 'memories' without any compatible.

The DT nodes use all standard properties. The regs property in the
PRU nodes define the addresses for the Instruction RAM, the Debug
and Control sub-modules for that PRU core. The firmware for each
PRU core is defined through a 'firmware-name' property.

The default names for the firmware images for each PRU core are
defined as follows (these can be adjusted either in derivative
board dts files or through sysfs at runtime if required):
     PRU-ICSS1 PRU0 Core: am437x-pru1_0-fw
     PRU-ICSS1 PRU1 Core: am437x-pru1_1-fw

Signed-off-by: Suman Anna <s-anna@ti.com>
arch/arm/boot/dts/am4372.dtsi

index d4b7c59eec6853f2f836b5b3ffd686988ad0f6b1..3724b89c186707616598e417f65d1bfac620cd4e 100644 (file)
                        interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
                };
 
+               pruss_soc_bus: pruss-soc-bus@54426004 {
+                       compatible = "ti,am4376-pruss-soc-bus";
+                       reg = <0x54426004 0x4>;
+                       ti,hwmods = "pruss";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges;
+                       status = "disabled";
+
+                       pruss1: pruss@54400000 {
+                               compatible = "ti,am4376-pruss";
+                               reg = <0x54400000 0x40000>;
+                               interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH
+                                             GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH
+                                             GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH
+                                             GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH
+                                             GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH
+                                             GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH
+                                             GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupt-names = "host2", "host3", "host4",
+                                                 "host5", "host6", "host8",
+                                                 "host9";
+                               #address-cells = <1>;
+                               #size-cells = <1>;
+                               ranges;
+                               status = "disabled";
+
+                               pruss1_mem: memories@54400000 {
+                                       reg = <0x54400000 0x2000>,
+                                             <0x54402000 0x2000>,
+                                             <0x54410000 0x8000>;
+                                       reg-names = "dram0", "dram1",
+                                                   "shrdram2";
+                               };
+
+                               pruss1_cfg: cfg@54426000 {
+                                       compatible = "syscon";
+                                       reg = <0x54426000 0x2000>;
+                               };
+
+                               pruss1_iep: iep@5442e000 {
+                                       compatible = "syscon";
+                                       reg = <0x5442e000 0x31c>;
+                               };
+
+                               pruss1_mii_rt: mii-rt@54432000 {
+                                       compatible = "syscon";
+                                       reg = <0x54432000 0x58>;
+                               };
+
+                               pruss1_intc: interrupt-controller@54420000 {
+                                       compatible = "ti,am4376-pruss-intc";
+                                       reg = <0x54420000 0x2000>;
+                                       interrupt-controller;
+                                       #interrupt-cells = <1>;
+                               };
+
+                               pru1_0: pru@54434000 {
+                                       compatible = "ti,am4376-pru";
+                                       reg = <0x54434000 0x3000>,
+                                             <0x54422000 0x400>,
+                                             <0x54422400 0x100>;
+                                       reg-names = "iram", "control", "debug";
+                                       firmware-name = "am437x-pru1_0-fw";
+                               };
+
+                               pru1_1: pru@54438000 {
+                                       compatible = "ti,am4376-pru";
+                                       reg = <0x54438000 0x3000>,
+                                             <0x54424000 0x400>,
+                                             <0x54424400 0x100>;
+                                       reg-names = "iram", "control", "debug";
+                                       firmware-name = "am437x-pru1_1-fw";
+                               };
+                       };
+               };
+
                mcasp0: mcasp@48038000 {
                        compatible = "ti,am33xx-mcasp-audio";
                        ti,hwmods = "mcasp0";