1// SPDX-License-Identifier: GPL-2.0-only
2/*
3 * Copyright (C) 2020-2021 Texas Instruments Incorporated - https://www.ti.com/
4 *
5 * Common PRUSS data for TI AM57xx platforms
6 */
7
8&ocp {
9	pruss1_tm: target-module@4b226000 {
10		compatible = "ti,sysc-pruss", "ti,sysc";
11		reg = <0x4b226000 0x4>,
12		      <0x4b226004 0x4>;
13		reg-names = "rev", "sysc";
14		ti,sysc-mask = <(SYSC_PRUSS_STANDBY_INIT |
15				 SYSC_PRUSS_SUB_MWAIT)>;
16		ti,sysc-midle = <SYSC_IDLE_FORCE>,
17				<SYSC_IDLE_NO>,
18				<SYSC_IDLE_SMART>;
19		ti,sysc-sidle = <SYSC_IDLE_FORCE>,
20				<SYSC_IDLE_NO>,
21				<SYSC_IDLE_SMART>;
22		/* Domains (P, C): coreaon_pwrdm, l4per2_clkdm */
23		clocks = <&l4per2_clkctrl DRA7_L4PER2_PRUSS1_CLKCTRL 0>;
24		clock-names = "fck";
25		#address-cells = <1>;
26		#size-cells = <1>;
27		ranges = <0x00000000 0x4b200000 0x80000>;
28
29		pruss1: pruss@0 {
30			compatible = "ti,am5728-pruss";
31			reg = <0x0 0x80000>;
32			#address-cells = <1>;
33			#size-cells = <1>;
34			ranges;
35
36			pruss1_mem: memories@0 {
37				reg = <0x0 0x2000>,
38				      <0x2000 0x2000>,
39				      <0x10000 0x8000>;
40				reg-names = "dram0", "dram1",
41					    "shrdram2";
42			};
43
44			pruss1_cfg: cfg@26000 {
45				compatible = "ti,pruss-cfg", "syscon";
46				reg = <0x26000 0x2000>;
47				#address-cells = <1>;
48				#size-cells = <1>;
49				ranges = <0x0 0x26000 0x2000>;
50
51				clocks {
52					#address-cells = <1>;
53					#size-cells = <0>;
54
55					pruss1_iepclk_mux: iepclk-mux@30 {
56						reg = <0x30>;
57						#clock-cells = <0>;
58						clocks = <&dpll_gmac_m3x2_ck>,  /* icss_iep_clk */
59							 <&dpll_gmac_h13x2_ck>; /* icss_clk */
60					};
61				};
62			};
63
64			pruss1_mii_rt: mii-rt@32000 {
65				compatible = "ti,pruss-mii", "syscon";
66				reg = <0x32000 0x58>;
67			};
68
69			pruss1_intc: interrupt-controller@20000 {
70				compatible = "ti,pruss-intc";
71				reg = <0x20000 0x2000>;
72				interrupt-controller;
73				#interrupt-cells = <3>;
74				interrupts = <GIC_SPI 186 IRQ_TYPE_LEVEL_HIGH>,
75					     <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH>,
76					     <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>,
77					     <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>,
78					     <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>,
79					     <GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH>,
80					     <GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH>,
81					     <GIC_SPI 193 IRQ_TYPE_LEVEL_HIGH>;
82				interrupt-names = "host_intr0", "host_intr1",
83						  "host_intr2", "host_intr3",
84						  "host_intr4", "host_intr5",
85						  "host_intr6", "host_intr7";
86			};
87
88			pru1_0: pru@34000 {
89				compatible = "ti,am5728-pru";
90				reg = <0x34000 0x3000>,
91				      <0x22000 0x400>,
92				      <0x22400 0x100>;
93				reg-names = "iram", "control", "debug";
94				firmware-name = "am57xx-pru1_0-fw";
95			};
96
97			pru1_1: pru@38000 {
98				compatible = "ti,am5728-pru";
99				reg = <0x38000 0x3000>,
100				      <0x24000 0x400>,
101				      <0x24400 0x100>;
102				reg-names = "iram", "control", "debug";
103				firmware-name = "am57xx-pru1_1-fw";
104			};
105
106			pruss1_mdio: mdio@32400 {
107				compatible = "ti,davinci_mdio";
108				#address-cells = <1>;
109				#size-cells = <0>;
110				clocks = <&dpll_gmac_h13x2_ck>;
111				clock-names = "fck";
112				bus_freq = <1000000>;
113				reg = <0x32400 0x90>;
114			};
115		};
116	};
117
118	pruss2_tm: target-module@4b2a6000 {
119		compatible = "ti,sysc-pruss", "ti,sysc";
120		reg = <0x4b2a6000 0x4>,
121		      <0x4b2a6004 0x4>;
122		reg-names = "rev", "sysc";
123		ti,sysc-mask = <(SYSC_PRUSS_STANDBY_INIT |
124				 SYSC_PRUSS_SUB_MWAIT)>;
125		ti,sysc-midle = <SYSC_IDLE_FORCE>,
126				<SYSC_IDLE_NO>,
127				<SYSC_IDLE_SMART>;
128		ti,sysc-sidle = <SYSC_IDLE_FORCE>,
129				<SYSC_IDLE_NO>,
130				<SYSC_IDLE_SMART>;
131		/* Domains (P, C): coreaon_pwrdm, l4per2_clkdm */
132		clocks = <&l4per2_clkctrl DRA7_L4PER2_PRUSS2_CLKCTRL 0>;
133		clock-names = "fck";
134		#address-cells = <1>;
135		#size-cells = <1>;
136		ranges = <0x00000000 0x4b280000 0x80000>;
137
138		pruss2: pruss@0 {
139			compatible = "ti,am5728-pruss";
140			reg = <0x0 0x80000>;
141			#address-cells = <1>;
142			#size-cells = <1>;
143			ranges;
144
145			pruss2_mem: memories@0 {
146				reg = <0x0 0x2000>,
147				      <0x2000 0x2000>,
148				      <0x10000 0x8000>;
149				reg-names = "dram0", "dram1",
150					    "shrdram2";
151			};
152
153			pruss2_cfg: cfg@26000 {
154				compatible = "ti,pruss-cfg", "syscon";
155				reg = <0x26000 0x2000>;
156				#address-cells = <1>;
157				#size-cells = <1>;
158				ranges = <0x0 0x26000 0x2000>;
159
160				clocks {
161					#address-cells = <1>;
162					#size-cells = <0>;
163
164					pruss2_iepclk_mux: iepclk-mux@30 {
165						reg = <0x30>;
166						#clock-cells = <0>;
167						clocks = <&dpll_gmac_m3x2_ck>,  /* icss_iep_clk */
168							 <&dpll_gmac_h13x2_ck>; /* icss_clk */
169					};
170				};
171			};
172
173			pruss2_mii_rt: mii-rt@32000 {
174				compatible = "ti,pruss-mii", "syscon";
175				reg = <0x32000 0x58>;
176			};
177
178			pruss2_intc: interrupt-controller@20000 {
179				compatible = "ti,pruss-intc";
180				reg = <0x20000 0x2000>;
181				interrupt-controller;
182				#interrupt-cells = <3>;
183				interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>,
184					     <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH>,
185					     <GIC_SPI 198 IRQ_TYPE_LEVEL_HIGH>,
186					     <GIC_SPI 199 IRQ_TYPE_LEVEL_HIGH>,
187					     <GIC_SPI 200 IRQ_TYPE_LEVEL_HIGH>,
188					     <GIC_SPI 201 IRQ_TYPE_LEVEL_HIGH>,
189					     <GIC_SPI 202 IRQ_TYPE_LEVEL_HIGH>,
190					     <GIC_SPI 203 IRQ_TYPE_LEVEL_HIGH>;
191				interrupt-names = "host_intr0", "host_intr1",
192						  "host_intr2", "host_intr3",
193						  "host_intr4", "host_intr5",
194						  "host_intr6", "host_intr7";
195			};
196
197			pru2_0: pru@34000 {
198				compatible = "ti,am5728-pru";
199				reg = <0x34000 0x3000>,
200				      <0x22000 0x400>,
201				      <0x22400 0x100>;
202				reg-names = "iram", "control", "debug";
203				firmware-name = "am57xx-pru2_0-fw";
204			};
205
206			pru2_1: pru@38000 {
207				compatible = "ti,am5728-pru";
208				reg = <0x38000 0x3000>,
209				      <0x24000 0x400>,
210				      <0x24400 0x100>;
211				reg-names = "iram", "control", "debug";
212				firmware-name = "am57xx-pru2_1-fw";
213			};
214
215			pruss2_mdio: mdio@32400 {
216				compatible = "ti,davinci_mdio";
217				#address-cells = <1>;
218				#size-cells = <0>;
219				clocks = <&dpll_gmac_h13x2_ck>;
220				clock-names = "fck";
221				bus_freq = <1000000>;
222				reg = <0x32400 0x90>;
223			};
224		};
225	};
226};
227