1// SPDX-License-Identifier: GPL-2.0
2/*
3 * Keystone 2 Kepler/Hawking soc specific device tree
4 *
5 * Copyright (C) 2013-2017 Texas Instruments Incorporated - https://www.ti.com/
6 */
7
8#include <dt-bindings/reset/ti-syscon.h>
9
10/ {
11	compatible = "ti,k2hk", "ti,keystone";
12	model = "Texas Instruments Keystone 2 Kepler/Hawking SoC";
13
14	cpus {
15		#address-cells = <1>;
16		#size-cells = <0>;
17
18		interrupt-parent = <&gic>;
19
20		cpu@0 {
21			compatible = "arm,cortex-a15";
22			device_type = "cpu";
23			reg = <0>;
24		};
25
26		cpu@1 {
27			compatible = "arm,cortex-a15";
28			device_type = "cpu";
29			reg = <1>;
30		};
31
32		cpu@2 {
33			compatible = "arm,cortex-a15";
34			device_type = "cpu";
35			reg = <2>;
36		};
37
38		cpu@3 {
39			compatible = "arm,cortex-a15";
40			device_type = "cpu";
41			reg = <3>;
42		};
43	};
44
45	aliases {
46		rproc0 = &dsp0;
47		rproc1 = &dsp1;
48		rproc2 = &dsp2;
49		rproc3 = &dsp3;
50		rproc4 = &dsp4;
51		rproc5 = &dsp5;
52		rproc6 = &dsp6;
53		rproc7 = &dsp7;
54	};
55};
56
57&soc0 {
58		/include/ "keystone-k2hk-clocks.dtsi"
59
60		msm_ram: sram@c000000 {
61			compatible = "mmio-sram";
62			reg = <0x0c000000 0x600000>;
63			ranges = <0x0 0x0c000000 0x600000>;
64			#address-cells = <1>;
65			#size-cells = <1>;
66
67			bm-sram@5f0000 {
68				reg = <0x5f0000 0x8000>;
69			};
70		};
71
72		psc: power-sleep-controller@2350000 {
73			pscrst: reset-controller {
74				compatible = "ti,k2hk-pscrst", "ti,syscon-reset";
75				#reset-cells = <1>;
76
77				ti,reset-bits = <
78					0xa3c 8 0xa3c 8 0x83c 8 (ASSERT_CLEAR | DEASSERT_SET | STATUS_CLEAR) /* 0: dsp0 */
79					0xa40 8 0xa40 8 0x840 8 (ASSERT_CLEAR | DEASSERT_SET | STATUS_CLEAR) /* 1: dsp1 */
80					0xa44 8 0xa44 8 0x844 8 (ASSERT_CLEAR | DEASSERT_SET | STATUS_CLEAR) /* 2: dsp2 */
81					0xa48 8 0xa48 8 0x848 8 (ASSERT_CLEAR | DEASSERT_SET | STATUS_CLEAR) /* 3: dsp3 */
82					0xa4c 8 0xa4c 8 0x84c 8 (ASSERT_CLEAR | DEASSERT_SET | STATUS_CLEAR) /* 4: dsp4 */
83					0xa50 8 0xa50 8 0x850 8 (ASSERT_CLEAR | DEASSERT_SET | STATUS_CLEAR) /* 5: dsp5 */
84					0xa54 8 0xa54 8 0x854 8 (ASSERT_CLEAR | DEASSERT_SET | STATUS_CLEAR) /* 6: dsp6 */
85					0xa58 8 0xa58 8 0x858 8 (ASSERT_CLEAR | DEASSERT_SET | STATUS_CLEAR) /* 7: dsp7 */
86				>;
87			};
88		};
89
90		devctrl: device-state-control@2620000 {
91			dspgpio0: keystone_dsp_gpio@240 {
92				compatible = "ti,keystone-dsp-gpio";
93				reg = <0x240 0x4>;
94				gpio-controller;
95				#gpio-cells = <2>;
96				gpio,syscon-dev = <&devctrl 0x240>;
97			};
98
99			dspgpio1: keystone_dsp_gpio@244 {
100				compatible = "ti,keystone-dsp-gpio";
101				reg = <0x244 0x4>;
102				gpio-controller;
103				#gpio-cells = <2>;
104				gpio,syscon-dev = <&devctrl 0x244>;
105			};
106
107			dspgpio2: keystone_dsp_gpio@248 {
108				compatible = "ti,keystone-dsp-gpio";
109				reg = <0x248 0x4>;
110				gpio-controller;
111				#gpio-cells = <2>;
112				gpio,syscon-dev = <&devctrl 0x248>;
113			};
114
115			dspgpio3: keystone_dsp_gpio@24c {
116				compatible = "ti,keystone-dsp-gpio";
117				reg = <0x24c 0x4>;
118				gpio-controller;
119				#gpio-cells = <2>;
120				gpio,syscon-dev = <&devctrl 0x24c>;
121			};
122
123			dspgpio4: keystone_dsp_gpio@250 {
124				compatible = "ti,keystone-dsp-gpio";
125				reg = <0x250 0x4>;
126				gpio-controller;
127				#gpio-cells = <2>;
128				gpio,syscon-dev = <&devctrl 0x250>;
129			};
130
131			dspgpio5: keystone_dsp_gpio@254 {
132				compatible = "ti,keystone-dsp-gpio";
133				reg = <0x254 0x4>;
134				gpio-controller;
135				#gpio-cells = <2>;
136				gpio,syscon-dev = <&devctrl 0x254>;
137			};
138
139			dspgpio6: keystone_dsp_gpio@258 {
140				compatible = "ti,keystone-dsp-gpio";
141				reg = <0x258 0x4>;
142				gpio-controller;
143				#gpio-cells = <2>;
144				gpio,syscon-dev = <&devctrl 0x258>;
145			};
146
147			dspgpio7: keystone_dsp_gpio@25c {
148				compatible = "ti,keystone-dsp-gpio";
149				reg = <0x25c 0x4>;
150				gpio-controller;
151				#gpio-cells = <2>;
152				gpio,syscon-dev = <&devctrl 0x25c>;
153			};
154		};
155
156		dsp0: dsp@10800000 {
157			compatible = "ti,k2hk-dsp";
158			reg = <0x10800000 0x00100000>,
159			      <0x10e00000 0x00008000>,
160			      <0x10f00000 0x00008000>;
161			reg-names = "l2sram", "l1pram", "l1dram";
162			clocks = <&clkgem0>;
163			ti,syscon-dev = <&devctrl 0x40>;
164			resets = <&pscrst 0>;
165			interrupt-parent = <&kirq0>;
166			interrupts = <0 8>;
167			interrupt-names = "vring", "exception";
168			kick-gpios = <&dspgpio0 27 0>;
169			status = "disabled";
170		};
171
172		dsp1: dsp@11800000 {
173			compatible = "ti,k2hk-dsp";
174			reg = <0x11800000 0x00100000>,
175			      <0x11e00000 0x00008000>,
176			      <0x11f00000 0x00008000>;
177			reg-names = "l2sram", "l1pram", "l1dram";
178			clocks = <&clkgem1>;
179			ti,syscon-dev = <&devctrl 0x44>;
180			resets = <&pscrst 1>;
181			interrupt-parent = <&kirq0>;
182			interrupts = <1 9>;
183			interrupt-names = "vring", "exception";
184			kick-gpios = <&dspgpio1 27 0>;
185			status = "disabled";
186		};
187
188		dsp2: dsp@12800000 {
189			compatible = "ti,k2hk-dsp";
190			reg = <0x12800000 0x00100000>,
191			      <0x12e00000 0x00008000>,
192			      <0x12f00000 0x00008000>;
193			reg-names = "l2sram", "l1pram", "l1dram";
194			clocks = <&clkgem2>;
195			ti,syscon-dev = <&devctrl 0x48>;
196			resets = <&pscrst 2>;
197			interrupt-parent = <&kirq0>;
198			interrupts = <2 10>;
199			interrupt-names = "vring", "exception";
200			kick-gpios = <&dspgpio2 27 0>;
201			status = "disabled";
202		};
203
204		dsp3: dsp@13800000 {
205			compatible = "ti,k2hk-dsp";
206			reg = <0x13800000 0x00100000>,
207			      <0x13e00000 0x00008000>,
208			      <0x13f00000 0x00008000>;
209			reg-names = "l2sram", "l1pram", "l1dram";
210			clocks = <&clkgem3>;
211			ti,syscon-dev = <&devctrl 0x4c>;
212			resets = <&pscrst 3>;
213			interrupt-parent = <&kirq0>;
214			interrupts = <3 11>;
215			interrupt-names = "vring", "exception";
216			kick-gpios = <&dspgpio3 27 0>;
217			status = "disabled";
218		};
219
220		dsp4: dsp@14800000 {
221			compatible = "ti,k2hk-dsp";
222			reg = <0x14800000 0x00100000>,
223			      <0x14e00000 0x00008000>,
224			      <0x14f00000 0x00008000>;
225			reg-names = "l2sram", "l1pram", "l1dram";
226			clocks = <&clkgem4>;
227			ti,syscon-dev = <&devctrl 0x50>;
228			resets = <&pscrst 4>;
229			interrupt-parent = <&kirq0>;
230			interrupts = <4 12>;
231			interrupt-names = "vring", "exception";
232			kick-gpios = <&dspgpio4 27 0>;
233			status = "disabled";
234		};
235
236		dsp5: dsp@15800000 {
237			compatible = "ti,k2hk-dsp";
238			reg = <0x15800000 0x00100000>,
239			      <0x15e00000 0x00008000>,
240			      <0x15f00000 0x00008000>;
241			reg-names = "l2sram", "l1pram", "l1dram";
242			clocks = <&clkgem5>;
243			ti,syscon-dev = <&devctrl 0x54>;
244			resets = <&pscrst 5>;
245			interrupt-parent = <&kirq0>;
246			interrupts = <5 13>;
247			interrupt-names = "vring", "exception";
248			kick-gpios = <&dspgpio5 27 0>;
249			status = "disabled";
250		};
251
252		dsp6: dsp@16800000 {
253			compatible = "ti,k2hk-dsp";
254			reg = <0x16800000 0x00100000>,
255			      <0x16e00000 0x00008000>,
256			      <0x16f00000 0x00008000>;
257			reg-names = "l2sram", "l1pram", "l1dram";
258			clocks = <&clkgem6>;
259			ti,syscon-dev = <&devctrl 0x58>;
260			resets = <&pscrst 6>;
261			interrupt-parent = <&kirq0>;
262			interrupts = <6 14>;
263			interrupt-names = "vring", "exception";
264			kick-gpios = <&dspgpio6 27 0>;
265			status = "disabled";
266		};
267
268		dsp7: dsp@17800000 {
269			compatible = "ti,k2hk-dsp";
270			reg = <0x17800000 0x00100000>,
271			      <0x17e00000 0x00008000>,
272			      <0x17f00000 0x00008000>;
273			reg-names = "l2sram", "l1pram", "l1dram";
274			clocks = <&clkgem7>;
275			ti,syscon-dev = <&devctrl 0x5c>;
276			resets = <&pscrst 7>;
277			interrupt-parent = <&kirq0>;
278			interrupts = <7 15>;
279			interrupt-names = "vring", "exception";
280			kick-gpios = <&dspgpio7 27 0>;
281			status = "disabled";
282		};
283
284		mdio: mdio@2090300 {
285			compatible = "ti,keystone_mdio", "ti,davinci_mdio";
286			#address-cells = <1>;
287			#size-cells = <0>;
288			reg = <0x02090300 0x100>;
289			status = "disabled";
290			clocks = <&clkcpgmac>;
291			clock-names = "fck";
292			bus_freq = <2500000>;
293		};
294		/include/ "keystone-k2hk-netcp.dtsi"
295};
296