1257486Sian/*
2257486Sian * Copyright (c) 2013 Ian Lepore
3257486Sian * Copyright (c) 2012 The FreeBSD Foundation
4257486Sian * All rights reserved.
5257486Sian *
6257486Sian * Redistribution and use in source and binary forms, with or without
7257486Sian * modification, are permitted provided that the following conditions
8257486Sian * are met:
9257486Sian * 1. Redistributions of source code must retain the above copyright
10257486Sian *    notice, this list of conditions and the following disclaimer.
11257486Sian * 2. Redistributions in binary form must reproduce the above copyright
12257486Sian *    notice, this list of conditions and the following disclaimer in the
13257486Sian *    documentation and/or other materials provided with the distribution.
14257486Sian *
15257486Sian * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
16257486Sian * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17257486Sian * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18257486Sian * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
19257486Sian * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
20257486Sian * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
21257486Sian * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
22257486Sian * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23257486Sian * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24257486Sian * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
25257486Sian * SUCH DAMAGE.
26257486Sian *
27257486Sian * Freescale i.MX6 Common Device Tree Source.
28257486Sian * There are enough differences between the Solo, Dual, Quad, and *-lite
29257486Sian * flavors of this SoC that eventually we will need a finer-grained breakdown
30257486Sian * of some of this stuff.  For now this file works for all of them.  I think.
31257486Sian *
32257486Sian * $FreeBSD: releng/10.3/sys/boot/fdt/dts/arm/imx6.dtsi 283500 2015-05-24 18:59:45Z ian $
33257486Sian */
34257486Sian
35257486Sian/ {
36257486Sian	cpus {
37257486Sian		#address-cells = <1>;
38257486Sian		#size-cells = <0>;
39257486Sian
40257486Sian		cpu@0 {
41257486Sian			device_type = "cpu";
42257486Sian			compatible = "ARM,MCIMX6";
43257486Sian			reg = <0x0>;
44257486Sian			d-cache-line-size = <32>;
45257486Sian			i-cache-line-size = <32>;
46257486Sian			d-cache-size = <0x8000>;
47257486Sian			i-cache-size = <0x8000>;
48257486Sian			/* TODO: describe L2 cache also */
49257486Sian			timebase-frequency = <0>;
50257486Sian			bus-frequency = <0>;
51257486Sian			clock-frequency = <0>;
52257486Sian		};
53257486Sian	};
54257486Sian
55257486Sian	aliases {
56257486Sian		soc = &SOC;
57257486Sian	};
58257486Sian
59257486Sian	SOC: soc@00000000 {
60257486Sian		compatible = "simple-bus";
61257486Sian		#address-cells = <1>;
62257486Sian		#size-cells = <1>;
63257486Sian		interrupt-parent = <&gic>;
64257486Sian		ranges = <0x00000000 0x00000000 0x10000000>;
65257486Sian
66257486Sian		gic: generic-interrupt-controller@00a00100 {
67257486Sian			compatible = "arm,gic";
68257486Sian			interrupt-controller;
69257486Sian			#interrupt-cells = <1>;
70257486Sian			reg = <0x00a01000 0x00001000
71257486Sian			       0x00a00100 0x00000100>;
72257486Sian		};
73257486Sian
74266348Sian		mp_tmr0@00a00200 {
75266348Sian			compatible = "arm,mpcore-timers";
76266348Sian			reg = <0x00a00200 0x100
77266348Sian			       0x00a00600 0x100>;
78266348Sian			interrupts = <27 29>;
79266348Sian			interrupt-parent = <&gic>;
80266348Sian		};
81266348Sian
82257486Sian		l2-cache@00a02000 {
83257486Sian			compatible = "arm,pl310-cache", "arm,pl310";
84257486Sian			reg = <0xa02000 0x1000>;
85257486Sian			interrupts = <124>;
86257486Sian			cache-level = <0x2>;
87257486Sian			interrupt-parent = < &gic >;
88257486Sian		};
89257486Sian
90257486Sian		aips@02000000 { /* AIPS1 */
91257486Sian			compatible = "fsl,aips-bus", "simple-bus";
92257486Sian			#address-cells = <1>;
93257486Sian			#size-cells = <1>;
94257486Sian			interrupt-parent = <&gic>;
95257486Sian			reg = <0x02000000 0x00100000>;
96257486Sian			ranges;
97257486Sian
98257486Sian			/* Required by many devices, so better to stay first */
99257486Sian			clks: ccm@020c4000 {
100257486Sian				compatible = "fsl,imx6q-ccm";
101257486Sian				reg = <0x020c4000 0x4000>;
102257486Sian				interrupts = <119 120>;
103257486Sian			};
104257486Sian
105273661Sian			/* System Reset Controller */
106273661Sian			src: src@4006E000 {
107273661Sian				compatible = "fsl,imx6-src";
108273661Sian				reg = <0x020D8000 0x100>;
109273661Sian			};
110273661Sian
111273661Sian			sdma: sdma@020ec000 {
112273661Sian				compatible = "fsl,imx6q-sdma";
113273661Sian				reg = <0x020ec000 0x4000>;
114273661Sian				interrupt-parent = <&gic>;
115273661Sian				interrupts = <34>;
116273661Sian				status = "disabled";
117273661Sian			};
118273661Sian
119257486Sian			anatop: anatop@020c8000 {
120257486Sian				compatible = "fsl,imx6q-anatop";
121257486Sian				reg = <0x020c8000 0x1000>;
122262280Sian				interrupt-parent = <&gic>;
123262280Sian				interrupts = <49>;
124266251Sian			};
125257486Sian
126257486Sian			gpt: timer@02098000 {
127257486Sian				compatible = "fsl,imx6q-gpt", "fsl,imx51-gpt";
128257486Sian				reg = <0x02098000 0x4000>;
129283500Sian				interrupt-parent = <&gic>;
130283500Sian				interrupts = <87>;
131257486Sian			};
132257486Sian
133273661Sian			iomux@020e0000 {
134283500Sian				compatible = "fsl,imx6q-iomuxc";
135273661Sian				reg = <0x020e0000 0x4000>;
136273661Sian				interrupt-parent = <&gic>;
137273661Sian				interrupts = <32>;
138273661Sian			};
139257486Sian
140261816Sian			gpio1: gpio@0209c000 {
141261816Sian				compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
142261816Sian				reg = <0x0209c000 0x4000>;
143273661Sian				interrupts = < 98 99 >;
144261816Sian				gpio-controller;
145261816Sian				#gpio-cells = <2>;
146261816Sian				interrupt-controller;
147261816Sian				#interrupt-cells = <2>;
148273661Sian				status = "disabled";
149261816Sian			};
150273661Sian
151261816Sian			gpio2: gpio@020a0000 {
152261816Sian				compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
153261816Sian				reg = <0x020a0000 0x4000>;
154273661Sian				interrupts = < 100 101 >;
155261816Sian				gpio-controller;
156261816Sian				#gpio-cells = <2>;
157261816Sian				interrupt-controller;
158261816Sian				#interrupt-cells = <2>;
159273661Sian				status = "disabled";
160261816Sian			};
161273661Sian
162261816Sian			gpio3: gpio@020a4000 {
163261816Sian				compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
164261816Sian				reg = <0x020a4000 0x4000>;
165273661Sian				interrupts = < 102 103 >;
166261816Sian				gpio-controller;
167261816Sian				#gpio-cells = <2>;
168261816Sian				interrupt-controller;
169261816Sian				#interrupt-cells = <2>;
170273661Sian				status = "disabled";
171261816Sian			};
172273661Sian
173261816Sian			gpio4: gpio@020a8000 {
174261816Sian				compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
175261816Sian				reg = <0x020a8000 0x4000>;
176273661Sian				interrupts = < 104 105 >;
177261816Sian				gpio-controller;
178261816Sian				#gpio-cells = <2>;
179261816Sian				interrupt-controller;
180261816Sian				#interrupt-cells = <2>;
181273661Sian				status = "disabled";
182261816Sian			};
183273661Sian
184261816Sian			gpio5: gpio@020ac000 {
185261816Sian				compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
186261816Sian				reg = <0x020ac000 0x4000>;
187273661Sian				interrupts = < 106 107 >;
188261816Sian				gpio-controller;
189261816Sian				#gpio-cells = <2>;
190261816Sian				interrupt-controller;
191261816Sian				#interrupt-cells = <2>;
192273661Sian				status = "disabled";
193261816Sian			};
194273661Sian
195261816Sian			gpio6: gpio@020b0000 {
196261816Sian				compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
197261816Sian				reg = <0x020b0000 0x4000>;
198273661Sian				interrupts = < 108 109 >;
199261816Sian				gpio-controller;
200261816Sian				#gpio-cells = <2>;
201261816Sian				interrupt-controller;
202261816Sian				#interrupt-cells = <2>;
203273661Sian				status = "disabled";
204261816Sian			};
205273661Sian
206261816Sian			gpio7: gpio@020b4000 {
207261816Sian				compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
208261816Sian				reg = <0x020b4000 0x4000>;
209273661Sian				interrupts = < 110 111 >;
210261816Sian				gpio-controller;
211261816Sian				#gpio-cells = <2>;
212261816Sian				interrupt-controller;
213261816Sian				#interrupt-cells = <2>;
214273661Sian				status = "disabled";
215261816Sian			};
216257486Sian
217257486Sian			uart1: serial@02020000 {
218257486Sian				compatible = "fsl,imx6q-uart";
219257486Sian				reg = <0x02020000 0x4000>;
220273661Sian				interrupt-parent = <&gic>;
221257486Sian				interrupts = <58>;
222257486Sian				clock-frequency = <80000000>;
223257486Sian				status = "disabled";
224257486Sian			};
225257486Sian
226257486Sian			uart2: serial@021e8000 {
227257486Sian				compatible = "fsl,imx6q-uart";
228257486Sian				reg = <0x021e8000 0x4000>;
229273661Sian				interrupt-parent = <&gic>;
230257486Sian				interrupts = <59>;
231257486Sian				clock-frequency = <80000000>;
232257486Sian				status = "disabled";
233257486Sian			};
234257486Sian
235257486Sian			uart3: serial@021ec000 {
236257486Sian				compatible = "fsl,imx6q-uart";
237257486Sian				reg = <0x021ec000 0x4000>;
238273661Sian				interrupt-parent = <&gic>;
239257486Sian				interrupts = <60>;
240257486Sian				clock-frequency = <80000000>;
241257486Sian				status = "disabled";
242257486Sian			};
243257486Sian
244257486Sian			uart4: serial@021f0000 {
245257486Sian				compatible = "fsl,imx6q-uart";
246257486Sian				reg = <0x021f0000 0x4000>;
247273661Sian				interrupt-parent = <&gic>;
248257486Sian				interrupts = <61>;
249257486Sian				clock-frequency = <80000000>;
250257486Sian				status = "disabled";
251257486Sian			};
252257486Sian
253257486Sian			uart5: serial@021f4000 {
254257486Sian				compatible = "fsl,imx6q-uart";
255257486Sian				reg = <0x021f4000 0x4000>;
256273661Sian				interrupt-parent = <&gic>;
257257486Sian				interrupts = <62>;
258257486Sian				clock-frequency = <80000000>;
259257486Sian				status = "disabled";
260257486Sian			};
261257486Sian
262257486Sian			usbphy1: usbphy@020c9000 {
263257486Sian				compatible = "fsl,imx6q-usbphy", "fsl,imx23-usbphy";
264257486Sian				reg = <0x020c9000 0x1000>;
265257486Sian				interrupts = <44>;
266257486Sian				status = "disabled";
267257486Sian			};
268273661Sian
269257486Sian			usbphy2: usbphy@020ca000 {
270257486Sian				compatible = "fsl,imx6q-usbphy", "fsl,imx23-usbphy";
271257486Sian				reg = <0x020ca000 0x1000>;
272257486Sian				interrupts = <45>;
273257486Sian				status = "disabled";
274257486Sian			};
275273661Sian
276273661Sian			ecspi1: ecspi@02008000 {
277273661Sian				compatible = "fsl,imx6q-ecspi";
278273661Sian				reg = <0x02008000 0x4000>;
279273661Sian				interrupts = < 63 >;
280273661Sian				status = "disabled";
281273661Sian			};
282273661Sian
283273661Sian			ecspi2: ecspi@0200C000 {
284273661Sian				compatible = "fsl,imx6q-ecspi";
285273661Sian				reg = <0x0200C000 0x4000>;
286273661Sian				interrupts = < 64 >;
287273661Sian				status = "disabled";
288273661Sian			};
289273661Sian
290273661Sian			ecspi3: ecspi@02010000 {
291273661Sian				compatible = "fsl,imx6q-ecspi";
292273661Sian				reg = <0x02010000 0x4000>;
293273661Sian				interrupts = < 65 >;
294273661Sian				status = "disabled";
295273661Sian			};
296273661Sian
297273661Sian			ecspi4: ecspi@02014000 {
298273661Sian				compatible = "fsl,imx6q-ecspi";
299273661Sian				reg = <0x02014000 0x4000>;
300273661Sian				interrupts = < 66 >;
301273661Sian				status = "disabled";
302273661Sian			};
303273661Sian
304273661Sian			ecspi5: ecspi@02018000 {
305273661Sian				compatible = "fsl,imx6q-ecspi";
306273661Sian				reg = <0x02018000 0x4000>;
307273661Sian				interrupts = < 67 >;
308273661Sian				status = "disabled";
309273661Sian			};
310273661Sian
311273661Sian			ssi1: ssi@02028000 {
312273661Sian				compatible = "fsl,imx6q-ssi";
313273661Sian				reg = <0x02028000 0x4000>;
314273661Sian				interrupts = < 78 >;
315283500Sian				dmas = <&sdma 37 1 0>,
316283500Sian				       <&sdma 38 1 0>;
317283500Sian				dma-names = "rx", "tx";
318273661Sian				status = "disabled";
319273661Sian			};
320273661Sian
321273661Sian			ssi2: ssi@0202C000 {
322273661Sian				compatible = "fsl,imx6q-ssi";
323273661Sian				reg = <0x0202C000 0x4000>;
324273661Sian				interrupts = < 79 >;
325273661Sian				status = "disabled";
326273661Sian			};
327273661Sian
328273661Sian			ssi3: ssi@02030000 {
329273661Sian				compatible = "fsl,imx6q-ssi";
330273661Sian				reg = <0x02030000 0x4000>;
331273661Sian				interrupts = < 80 >;
332273661Sian				status = "disabled";
333273661Sian			};
334257486Sian		};
335257486Sian
336257486Sian		aips@02100000 { /* AIPS2 */
337257486Sian			compatible = "fsl,aips-bus", "simple-bus";
338257486Sian			#address-cells = <1>;
339257486Sian			#size-cells = <1>;
340257486Sian			interrupt-parent = <&gic>;
341257486Sian			reg = <0x02100000 0x00100000>;
342257486Sian			ranges;
343257486Sian
344273662Sian			i2c1: i2c@021a0000 {
345273662Sian				compatible = "fsl,imx6q-i2c";
346273662Sian				reg = <0x021a0000 0x4000>;
347273662Sian				interrupts = < 68 >;
348273662Sian				status = "disabled";
349273662Sian			};
350273662Sian
351273662Sian			i2c2: i2c@021a4000 {
352273662Sian				compatible = "fsl,imx6q-i2c";
353273662Sian				reg = <0x021a4000 0x4000>;
354273662Sian				interrupts = < 69 >;
355273662Sian				status = "disabled";
356273662Sian			};
357273662Sian
358273662Sian			i2c3: i2c@021ac000 {
359273662Sian				compatible = "fsl,imx6q-i2c";
360273662Sian				reg = <0x021a8000 0x4000>;
361273662Sian				interrupts = < 70 >;
362273662Sian				status = "disabled";
363273662Sian			};
364273662Sian
365257486Sian			fec1: ethernet@02188000 {
366257486Sian				compatible = "fsl,imx6q-fec";
367257486Sian				reg = <0x02188000 0x4000>;
368257486Sian				interrupts = <150 151>;
369257486Sian				status = "disabled";
370257486Sian			};
371273661Sian
372257486Sian			usbotg1: usb@02184000 {
373257486Sian				compatible = "fsl,imx6q-usb", "fsl,imx27-usb";
374257486Sian				reg = <0x02184000 0x200>;
375257486Sian				interrupts = <75>;
376257486Sian				fsl,usbphy = <&usbphy1>;
377257486Sian				fsl,usbmisc = <&usbmisc 0>;
378257486Sian				status = "disabled";
379257486Sian			};
380273661Sian
381257486Sian			usbh1: usb@02184200 {
382257486Sian				compatible = "fsl,imx6q-usb", "fsl,imx27-usb";
383257486Sian				reg = <0x02184200 0x200>;
384257486Sian				interrupts = <72>;
385257486Sian				fsl,usbphy = <&usbphy2>;
386257486Sian				fsl,usbmisc = <&usbmisc 1>;
387257486Sian				status = "disabled";
388257486Sian			};
389273661Sian
390257486Sian			usbh2: usb@02184400 {
391257486Sian				compatible = "fsl,imx6q-usb", "fsl,imx27-usb";
392257486Sian				reg = <0x02184400 0x200>;
393257486Sian				interrupts = <73>;
394257486Sian				fsl,usbmisc = <&usbmisc 2>;
395257486Sian				status = "disabled";
396257486Sian			};
397273661Sian
398257486Sian			usbh3: usb@02184600 {
399257486Sian				compatible = "fsl,imx6q-usb", "fsl,imx27-usb";
400257486Sian				reg = <0x02184600 0x200>;
401257486Sian				interrupts = <74>;
402257486Sian				fsl,usbmisc = <&usbmisc 3>;
403257486Sian				status = "disabled";
404257486Sian			};
405273661Sian
406257486Sian			usbmisc: usbmisc@02184800 {
407257486Sian				#index-cells = <1>;
408257486Sian				compatible = "fsl,imx6q-usbmisc";
409257486Sian				reg = <0x02184800 0x200>;
410257486Sian				// Not disabled on purpose.
411257486Sian			};
412257486Sian
413257486Sian			usdhc1: usdhc@02190000 {
414257486Sian				compatible = "fsl,imx6q-usdhc";
415257486Sian				reg = <0x02190000 0x4000>;
416257486Sian				interrupt-parent = <&gic>;
417257486Sian				interrupts = <54>;
418261816Sian				cd-gpios = <&gpio1 2 0>;
419257486Sian				bus-width = <0x4>;
420257486Sian				status ="disabled";
421257486Sian			};
422257486Sian
423257486Sian			usdhc2: usdhc@02194000 {
424257486Sian				compatible = "fsl,imx6q-usdhc";
425257486Sian				reg = <0x02194000 0x4000>;
426257486Sian				interrupt-parent = <&gic>;
427257486Sian				interrupts = <55>;
428261816Sian				non-removable;
429257486Sian				bus-width = <0x4>;
430257486Sian				status ="disabled";
431257486Sian			};
432257486Sian
433257486Sian			usdhc3: usdhc@02198000 {
434257486Sian				compatible = "fsl,imx6q-usdhc";
435257486Sian				reg = <0x02198000 0x4000>;
436257486Sian				interrupt-parent = <&gic>;
437257486Sian				interrupts = <56>;
438261816Sian				cd-gpios = <&gpio3 9 0>;
439257486Sian				bus-width = <0x4>;
440257486Sian				status ="disabled";
441257486Sian			};
442257486Sian
443257486Sian			usdhc4: usdhc@0219c000 {
444257486Sian				compatible = "fsl,imx6q-usdhc";
445257486Sian				reg = <0x0219c000 0x4000>;
446257486Sian				interrupt-parent = <&gic>;
447257486Sian				interrupts = <57>;
448257486Sian				bus-width = <0x4>;
449257486Sian				status ="disabled";
450257486Sian			};
451261938Sian
452261938Sian			ocotp0: ocotp@021bc000 {
453261938Sian				compatible = "fsl,imx6q-ocotp";
454261938Sian				reg = <0x021bc000 0x4000>;
455266251Sian			};
456273661Sian
457273661Sian			audmux: audmux@021d8000 {
458273661Sian				compatible = "fsl,imx6q-audmux";
459273661Sian				reg = <0x021d8000 0x4000>;
460273661Sian				status = "disabled";
461273661Sian			};
462257486Sian		};
463257486Sian	};
464257486Sian};
465