1// SPDX-License-Identifier: GPL-2.0
2//
3// Copyright 2012 Steffen Trumtrar, Pengutronix
4//
5// based on imx27.dtsi
6
7#include "imx35-pinfunc.h"
8
9/ {
10	#address-cells = <1>;
11	#size-cells = <1>;
12	/*
13	 * The decompressor and also some bootloaders rely on a
14	 * pre-existing /chosen node to be available to insert the
15	 * command line and merge other ATAGS info.
16	 */
17	chosen {};
18
19	aliases {
20		ethernet0 = &fec;
21		gpio0 = &gpio1;
22		gpio1 = &gpio2;
23		gpio2 = &gpio3;
24		i2c0 = &i2c1;
25		i2c1 = &i2c2;
26		i2c2 = &i2c3;
27		mmc0 = &esdhc1;
28		mmc1 = &esdhc2;
29		mmc2 = &esdhc3;
30		serial0 = &uart1;
31		serial1 = &uart2;
32		serial2 = &uart3;
33		spi0 = &spi1;
34		spi1 = &spi2;
35	};
36
37	cpus {
38		#address-cells = <1>;
39		#size-cells = <0>;
40
41		cpu@0 {
42			compatible = "arm,arm1136jf-s";
43			device_type = "cpu";
44			reg = <0>;
45		};
46	};
47
48	avic: avic-interrupt-controller@68000000 {
49		compatible = "fsl,imx35-avic", "fsl,avic";
50		interrupt-controller;
51		#interrupt-cells = <1>;
52		reg = <0x68000000 0x10000000>;
53	};
54
55	soc {
56		#address-cells = <1>;
57		#size-cells = <1>;
58		compatible = "simple-bus";
59		interrupt-parent = <&avic>;
60		ranges;
61
62		L2: cache-controller@30000000 {
63			compatible = "arm,l210-cache";
64			reg = <0x30000000 0x1000>;
65			cache-unified;
66			cache-level = <2>;
67		};
68
69		aips1: bus@43f00000 {
70			compatible = "fsl,aips", "simple-bus";
71			#address-cells = <1>;
72			#size-cells = <1>;
73			reg = <0x43f00000 0x100000>;
74			ranges;
75
76			i2c1: i2c@43f80000 {
77				#address-cells = <1>;
78				#size-cells = <0>;
79				compatible = "fsl,imx35-i2c", "fsl,imx1-i2c";
80				reg = <0x43f80000 0x4000>;
81				clocks = <&clks 51>;
82				clock-names = "ipg_per";
83				interrupts = <10>;
84				status = "disabled";
85			};
86
87			i2c3: i2c@43f84000 {
88				#address-cells = <1>;
89				#size-cells = <0>;
90				compatible = "fsl,imx35-i2c", "fsl,imx1-i2c";
91				reg = <0x43f84000 0x4000>;
92				clocks = <&clks 53>;
93				clock-names = "ipg_per";
94				interrupts = <3>;
95				status = "disabled";
96			};
97
98			uart1: serial@43f90000 {
99				compatible = "fsl,imx35-uart", "fsl,imx21-uart";
100				reg = <0x43f90000 0x4000>;
101				clocks = <&clks 9>, <&clks 70>;
102				clock-names = "ipg", "per";
103				interrupts = <45>;
104				status = "disabled";
105			};
106
107			uart2: serial@43f94000 {
108				compatible = "fsl,imx35-uart", "fsl,imx21-uart";
109				reg = <0x43f94000 0x4000>;
110				clocks = <&clks 9>, <&clks 71>;
111				clock-names = "ipg", "per";
112				interrupts = <32>;
113				status = "disabled";
114			};
115
116			i2c2: i2c@43f98000 {
117				#address-cells = <1>;
118				#size-cells = <0>;
119				compatible = "fsl,imx35-i2c", "fsl,imx1-i2c";
120				reg = <0x43f98000 0x4000>;
121				clocks = <&clks 52>;
122				clock-names = "ipg_per";
123				interrupts = <4>;
124				status = "disabled";
125			};
126
127			ssi1: ssi@43fa0000 {
128				#sound-dai-cells = <0>;
129				compatible = "fsl,imx35-ssi", "fsl,imx21-ssi";
130				reg = <0x43fa0000 0x4000>;
131				interrupts = <11>;
132				clocks = <&clks 68>;
133				dmas = <&sdma 28 0 0>,
134				       <&sdma 29 0 0>;
135				dma-names = "rx", "tx";
136				fsl,fifo-depth = <15>;
137				status = "disabled";
138			};
139
140			spi1: spi@43fa4000 {
141				#address-cells = <1>;
142				#size-cells = <0>;
143				compatible = "fsl,imx35-cspi";
144				reg = <0x43fa4000 0x4000>;
145				clocks = <&clks 35 &clks 35>;
146				clock-names = "ipg", "per";
147				interrupts = <14>;
148				status = "disabled";
149			};
150
151			kpp: kpp@43fa8000 {
152				compatible = "fsl,imx35-kpp", "fsl,imx21-kpp";
153				reg = <0x43fa8000 0x4000>;
154				interrupts = <24>;
155				clocks = <&clks 56>;
156				status = "disabled";
157			};
158
159			iomuxc: iomuxc@43fac000 {
160				compatible = "fsl,imx35-iomuxc";
161				reg = <0x43fac000 0x4000>;
162			};
163		};
164
165		spba: spba-bus@50000000 {
166			compatible = "fsl,spba-bus", "simple-bus";
167			#address-cells = <1>;
168			#size-cells = <1>;
169			reg = <0x50000000 0x100000>;
170			ranges;
171
172			uart3: serial@5000c000 {
173				compatible = "fsl,imx35-uart", "fsl,imx21-uart";
174				reg = <0x5000c000 0x4000>;
175				clocks = <&clks 9>, <&clks 72>;
176				clock-names = "ipg", "per";
177				interrupts = <18>;
178				status = "disabled";
179			};
180
181			spi2: spi@50010000 {
182				#address-cells = <1>;
183				#size-cells = <0>;
184				compatible = "fsl,imx35-cspi";
185				reg = <0x50010000 0x4000>;
186				interrupts = <13>;
187				clocks = <&clks 36 &clks 36>;
188				clock-names = "ipg", "per";
189				status = "disabled";
190			};
191
192			fec: ethernet@50038000 {
193				compatible = "fsl,imx35-fec", "fsl,imx27-fec";
194				reg = <0x50038000 0x4000>;
195				clocks = <&clks 46>, <&clks 8>;
196				clock-names = "ipg", "ahb";
197				interrupts = <57>;
198				status = "disabled";
199			};
200		};
201
202		aips2: bus@53f00000 {
203			compatible = "fsl,aips", "simple-bus";
204			#address-cells = <1>;
205			#size-cells = <1>;
206			reg = <0x53f00000 0x100000>;
207			ranges;
208
209			clks: ccm@53f80000 {
210				compatible = "fsl,imx35-ccm";
211				reg = <0x53f80000 0x4000>;
212				interrupts = <31>;
213				#clock-cells = <1>;
214			};
215
216			gpt: timer@53f90000 {
217				compatible = "fsl,imx35-gpt", "fsl,imx31-gpt";
218				reg = <0x53f90000 0x4000>;
219				interrupts = <29>;
220				clocks = <&clks 9>, <&clks 50>;
221				clock-names = "ipg", "per";
222			};
223
224			gpio3: gpio@53fa4000 {
225				compatible = "fsl,imx35-gpio", "fsl,imx31-gpio";
226				reg = <0x53fa4000 0x4000>;
227				interrupts = <56>;
228				gpio-controller;
229				#gpio-cells = <2>;
230				interrupt-controller;
231				#interrupt-cells = <2>;
232			};
233
234			esdhc1: mmc@53fb4000 {
235				compatible = "fsl,imx35-esdhc";
236				reg = <0x53fb4000 0x4000>;
237				interrupts = <7>;
238				clocks = <&clks 9>, <&clks 8>, <&clks 43>;
239				clock-names = "ipg", "ahb", "per";
240				status = "disabled";
241			};
242
243			esdhc2: mmc@53fb8000 {
244				compatible = "fsl,imx35-esdhc";
245				reg = <0x53fb8000 0x4000>;
246				interrupts = <8>;
247				clocks = <&clks 9>, <&clks 8>, <&clks 44>;
248				clock-names = "ipg", "ahb", "per";
249				status = "disabled";
250			};
251
252			esdhc3: mmc@53fbc000 {
253				compatible = "fsl,imx35-esdhc";
254				reg = <0x53fbc000 0x4000>;
255				interrupts = <9>;
256				clocks = <&clks 9>, <&clks 8>, <&clks 45>;
257				clock-names = "ipg", "ahb", "per";
258				status = "disabled";
259			};
260
261			audmux: audmux@53fc4000 {
262				compatible = "fsl,imx35-audmux", "fsl,imx31-audmux";
263				reg = <0x53fc4000 0x4000>;
264				status = "disabled";
265			};
266
267			gpio1: gpio@53fcc000 {
268				compatible = "fsl,imx35-gpio", "fsl,imx31-gpio";
269				reg = <0x53fcc000 0x4000>;
270				interrupts = <52>;
271				gpio-controller;
272				#gpio-cells = <2>;
273				interrupt-controller;
274				#interrupt-cells = <2>;
275			};
276
277			gpio2: gpio@53fd0000 {
278				compatible = "fsl,imx35-gpio", "fsl,imx31-gpio";
279				reg = <0x53fd0000 0x4000>;
280				interrupts = <51>;
281				gpio-controller;
282				#gpio-cells = <2>;
283				interrupt-controller;
284				#interrupt-cells = <2>;
285			};
286
287			sdma: sdma@53fd4000 {
288				compatible = "fsl,imx35-sdma";
289				reg = <0x53fd4000 0x4000>;
290				clocks = <&clks 9>, <&clks 65>;
291				clock-names = "ipg", "ahb";
292				#dma-cells = <3>;
293				interrupts = <34>;
294				fsl,sdma-ram-script-name = "imx/sdma/sdma-imx35.bin";
295			};
296
297			wdog: watchdog@53fdc000 {
298				compatible = "fsl,imx35-wdt", "fsl,imx21-wdt";
299				reg = <0x53fdc000 0x4000>;
300				clocks = <&clks 74>;
301				clock-names = "";
302				interrupts = <55>;
303			};
304
305			can1: can@53fe4000 {
306				compatible = "fsl,imx35-flexcan", "fsl,imx25-flexcan";
307				reg = <0x53fe4000 0x1000>;
308				clocks = <&clks 33>, <&clks 33>;
309				clock-names = "ipg", "per";
310				interrupts = <43>;
311				status = "disabled";
312			};
313
314			can2: can@53fe8000 {
315				compatible = "fsl,imx35-flexcan", "fsl,imx25-flexcan";
316				reg = <0x53fe8000 0x1000>;
317				clocks = <&clks 34>, <&clks 34>;
318				clock-names = "ipg", "per";
319				interrupts = <44>;
320				status = "disabled";
321			};
322
323			efuse@53ff0000 {
324				compatible = "fsl,imx35-iim";
325				reg = <0x53ff0000 0x4000>;
326				interrupts = <19>;
327				clocks = <&clks 80>;
328			};
329
330			usbotg: usb@53ff4000 {
331				compatible = "fsl,imx35-usb", "fsl,imx27-usb";
332				reg = <0x53ff4000 0x0200>;
333				interrupts = <37>;
334				clocks = <&clks 9>, <&clks 73>, <&clks 28>;
335				clock-names = "ipg", "ahb", "per";
336				fsl,usbmisc = <&usbmisc 0>;
337				fsl,usbphy = <&usbphy0>;
338				status = "disabled";
339			};
340
341			usbhost1: usb@53ff4400 {
342				compatible = "fsl,imx35-usb", "fsl,imx27-usb";
343				reg = <0x53ff4400 0x0200>;
344				interrupts = <35>;
345				clocks = <&clks 9>, <&clks 73>, <&clks 28>;
346				clock-names = "ipg", "ahb", "per";
347				fsl,usbmisc = <&usbmisc 1>;
348				fsl,usbphy = <&usbphy1>;
349				dr_mode = "host";
350				status = "disabled";
351			};
352
353			usbmisc: usbmisc@53ff4600 {
354				#index-cells = <1>;
355				compatible = "fsl,imx35-usbmisc";
356				reg = <0x53ff4600 0x00f>;
357			};
358		};
359
360		emi@80000000 { /* External Memory Interface */
361			compatible = "fsl,emi", "simple-bus";
362			#address-cells = <1>;
363			#size-cells = <1>;
364			reg = <0x80000000 0x40000000>;
365			ranges;
366
367			nfc: nand@bb000000 {
368				#address-cells = <1>;
369				#size-cells = <1>;
370				compatible = "fsl,imx35-nand", "fsl,imx25-nand";
371				reg = <0xbb000000 0x2000>;
372				clocks = <&clks 29>;
373				clock-names = "";
374				interrupts = <33>;
375				status = "disabled";
376			};
377
378			weim: weim@b8002000 {
379				#address-cells = <2>;
380				#size-cells = <1>;
381				clocks = <&clks 0>;
382				compatible = "fsl,imx35-weim", "fsl,imx27-weim";
383				reg = <0xb8002000 0x1000>;
384				ranges = <
385					0 0 0xa0000000 0x8000000
386					1 0 0xa8000000 0x8000000
387					2 0 0xb0000000 0x2000000
388					3 0 0xb2000000 0x2000000
389					4 0 0xb4000000 0x2000000
390					5 0 0xb6000000 0x2000000
391				>;
392				status = "disabled";
393			};
394		};
395	};
396
397	usbphy {
398		compatible = "simple-bus";
399		#address-cells = <1>;
400		#size-cells = <0>;
401
402		usbphy0: usb-phy@0 {
403			reg = <0>;
404			compatible = "usb-nop-xceiv";
405			#phy-cells = <0>;
406		};
407
408		usbphy1: usb-phy@1 {
409			reg = <1>;
410			compatible = "usb-nop-xceiv";
411			#phy-cells = <0>;
412		};
413	};
414};
415