ARM: dts: dra7: Add PRU-ICSS interconnect target-module nodes
authorSuman Anna <s-anna@ti.com>
Thu, 27 Feb 2020 22:28:37 +0000 (16:28 -0600)
committerTony Lindgren <tony@atomide.com>
Wed, 4 Mar 2020 16:16:34 +0000 (08:16 -0800)
The AM57xx family of SoCs contains two identical PRU-ICSS instances
that have a very unique SYSC register. The IPs do not have any
PRCM reset lines unlike those on AM33xx/AM437x SoCs. Add the PRUSS
interconnect target-module nodes with all the required properties.

Each of the PRUSS devices themselves shall be added as child nodes
to the corresponding interconnect node in the future. The PRU-ICSS
instances are only available on AM57xx family of SoCs and are not
supported on DRA7xx family of SoCs in general, so the target module
nodes are added in a separate dtsi file. This new dtsi file is
included in all the AM57xx SoC dtsi files, so the nodes are
automatically inherited and enabled on all AM57xx boards.

Signed-off-by: Suman Anna <s-anna@ti.com>
Signed-off-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
arch/arm/boot/dts/am57-pruss.dtsi [new file with mode: 0644]
arch/arm/boot/dts/am5718.dtsi
arch/arm/boot/dts/am5728.dtsi
arch/arm/boot/dts/am5748.dtsi
arch/arm/boot/dts/dra7.dtsi

diff --git a/arch/arm/boot/dts/am57-pruss.dtsi b/arch/arm/boot/dts/am57-pruss.dtsi
new file mode 100644 (file)
index 0000000..b1c583d
--- /dev/null
@@ -0,0 +1,50 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * Copyright (C) 2020 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ * Common PRUSS data for TI AM57xx platforms
+ */
+
+&ocp {
+       pruss1_tm: target-module@4b226000 {
+               compatible = "ti,sysc-pruss", "ti,sysc";
+               reg = <0x4b226000 0x4>,
+                     <0x4b226004 0x4>;
+               reg-names = "rev", "sysc";
+               ti,sysc-mask = <(SYSC_PRUSS_STANDBY_INIT |
+                                SYSC_PRUSS_SUB_MWAIT)>;
+               ti,sysc-midle = <SYSC_IDLE_FORCE>,
+                               <SYSC_IDLE_NO>,
+                               <SYSC_IDLE_SMART>;
+               ti,sysc-sidle = <SYSC_IDLE_FORCE>,
+                               <SYSC_IDLE_NO>,
+                               <SYSC_IDLE_SMART>;
+               /* Domains (P, C): coreaon_pwrdm, l4per2_clkdm */
+               clocks = <&l4per2_clkctrl DRA7_L4PER2_PRUSS1_CLKCTRL 0>;
+               clock-names = "fck";
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges = <0x00000000 0x4b200000 0x80000>;
+       };
+
+       pruss2_tm: target-module@4b2a6000 {
+               compatible = "ti,sysc-pruss", "ti,sysc";
+               reg = <0x4b2a6000 0x4>,
+                     <0x4b2a6004 0x4>;
+               reg-names = "rev", "sysc";
+               ti,sysc-mask = <(SYSC_PRUSS_STANDBY_INIT |
+                                SYSC_PRUSS_SUB_MWAIT)>;
+               ti,sysc-midle = <SYSC_IDLE_FORCE>,
+                               <SYSC_IDLE_NO>,
+                               <SYSC_IDLE_SMART>;
+               ti,sysc-sidle = <SYSC_IDLE_FORCE>,
+                               <SYSC_IDLE_NO>,
+                               <SYSC_IDLE_SMART>;
+               /* Domains (P, C): coreaon_pwrdm, l4per2_clkdm */
+               clocks = <&l4per2_clkctrl DRA7_L4PER2_PRUSS2_CLKCTRL 0>;
+               clock-names = "fck";
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges = <0x00000000 0x4b280000 0x80000>;
+       };
+};
index d51007c..a80c2e3 100644 (file)
@@ -4,6 +4,7 @@
  */
 
 #include "dra72x.dtsi"
+#include "am57-pruss.dtsi"
 
 / {
        compatible = "ti,am5718", "ti,dra7";
index 82e5427..9a3810f 100644 (file)
@@ -4,6 +4,7 @@
  */
 
 #include "dra74x.dtsi"
+#include "am57-pruss.dtsi"
 
 / {
        compatible = "ti,am5728", "ti,dra7";
index 5e12975..2b65317 100644 (file)
@@ -4,6 +4,7 @@
  */
 
 #include "dra76x.dtsi"
+#include "am57-pruss.dtsi"
 
 / {
        compatible = "ti,am5748", "ti,dra762", "ti,dra7";
index 4be7f22..9f87580 100644 (file)
         * the moment, just use a fake OCP bus entry to represent the whole bus
         * hierarchy.
         */
-       ocp {
+       ocp: ocp {
                compatible = "ti,dra7-l3-noc", "simple-bus";
                #address-cells = <1>;
                #size-cells = <1>;