imx6.dtsi revision 273662
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: stable/10/sys/boot/fdt/dts/arm/imx6.dtsi 273662 2014-10-26 02:40:34Z 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>;
129257486Sian				interrupt-parent = <&gic>; interrupts = <87>;
130257486Sian			};
131257486Sian
132273661Sian			iomux@020e0000 {
133273661Sian				compatible = "fsl,imx6q-iomux";
134273661Sian				reg = <0x020e0000 0x4000>;
135273661Sian				interrupt-parent = <&gic>;
136273661Sian				interrupts = <32>;
137273661Sian				status = "disabled";
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 >;
315273661Sian				status = "disabled";
316273661Sian			};
317273661Sian
318273661Sian			ssi2: ssi@0202C000 {
319273661Sian				compatible = "fsl,imx6q-ssi";
320273661Sian				reg = <0x0202C000 0x4000>;
321273661Sian				interrupts = < 79 >;
322273661Sian				status = "disabled";
323273661Sian			};
324273661Sian
325273661Sian			ssi3: ssi@02030000 {
326273661Sian				compatible = "fsl,imx6q-ssi";
327273661Sian				reg = <0x02030000 0x4000>;
328273661Sian				interrupts = < 80 >;
329273661Sian				status = "disabled";
330273661Sian			};
331257486Sian		};
332257486Sian
333257486Sian		aips@02100000 { /* AIPS2 */
334257486Sian			compatible = "fsl,aips-bus", "simple-bus";
335257486Sian			#address-cells = <1>;
336257486Sian			#size-cells = <1>;
337257486Sian			interrupt-parent = <&gic>;
338257486Sian			reg = <0x02100000 0x00100000>;
339257486Sian			ranges;
340257486Sian
341273662Sian			i2c1: i2c@021a0000 {
342273662Sian				compatible = "fsl,imx6q-i2c";
343273662Sian				reg = <0x021a0000 0x4000>;
344273662Sian				interrupts = < 68 >;
345273662Sian				status = "disabled";
346273662Sian			};
347273662Sian
348273662Sian			i2c2: i2c@021a4000 {
349273662Sian				compatible = "fsl,imx6q-i2c";
350273662Sian				reg = <0x021a4000 0x4000>;
351273662Sian				interrupts = < 69 >;
352273662Sian				status = "disabled";
353273662Sian			};
354273662Sian
355273662Sian			i2c3: i2c@021ac000 {
356273662Sian				compatible = "fsl,imx6q-i2c";
357273662Sian				reg = <0x021a8000 0x4000>;
358273662Sian				interrupts = < 70 >;
359273662Sian				status = "disabled";
360273662Sian			};
361273662Sian
362257486Sian			fec1: ethernet@02188000 {
363257486Sian				compatible = "fsl,imx6q-fec";
364257486Sian				reg = <0x02188000 0x4000>;
365257486Sian				interrupts = <150 151>;
366257486Sian				status = "disabled";
367257486Sian			};
368273661Sian
369257486Sian			usbotg1: usb@02184000 {
370257486Sian				compatible = "fsl,imx6q-usb", "fsl,imx27-usb";
371257486Sian				reg = <0x02184000 0x200>;
372257486Sian				interrupts = <75>;
373257486Sian				fsl,usbphy = <&usbphy1>;
374257486Sian				fsl,usbmisc = <&usbmisc 0>;
375257486Sian				status = "disabled";
376257486Sian			};
377273661Sian
378257486Sian			usbh1: usb@02184200 {
379257486Sian				compatible = "fsl,imx6q-usb", "fsl,imx27-usb";
380257486Sian				reg = <0x02184200 0x200>;
381257486Sian				interrupts = <72>;
382257486Sian				fsl,usbphy = <&usbphy2>;
383257486Sian				fsl,usbmisc = <&usbmisc 1>;
384257486Sian				status = "disabled";
385257486Sian			};
386273661Sian
387257486Sian			usbh2: usb@02184400 {
388257486Sian				compatible = "fsl,imx6q-usb", "fsl,imx27-usb";
389257486Sian				reg = <0x02184400 0x200>;
390257486Sian				interrupts = <73>;
391257486Sian				fsl,usbmisc = <&usbmisc 2>;
392257486Sian				status = "disabled";
393257486Sian			};
394273661Sian
395257486Sian			usbh3: usb@02184600 {
396257486Sian				compatible = "fsl,imx6q-usb", "fsl,imx27-usb";
397257486Sian				reg = <0x02184600 0x200>;
398257486Sian				interrupts = <74>;
399257486Sian				fsl,usbmisc = <&usbmisc 3>;
400257486Sian				status = "disabled";
401257486Sian			};
402273661Sian
403257486Sian			usbmisc: usbmisc@02184800 {
404257486Sian				#index-cells = <1>;
405257486Sian				compatible = "fsl,imx6q-usbmisc";
406257486Sian				reg = <0x02184800 0x200>;
407257486Sian				// Not disabled on purpose.
408257486Sian			};
409257486Sian
410257486Sian			usdhc1: usdhc@02190000 {
411257486Sian				compatible = "fsl,imx6q-usdhc";
412257486Sian				reg = <0x02190000 0x4000>;
413257486Sian				interrupt-parent = <&gic>;
414257486Sian				interrupts = <54>;
415261816Sian				cd-gpios = <&gpio1 2 0>;
416257486Sian				bus-width = <0x4>;
417257486Sian				status ="disabled";
418257486Sian			};
419257486Sian
420257486Sian			usdhc2: usdhc@02194000 {
421257486Sian				compatible = "fsl,imx6q-usdhc";
422257486Sian				reg = <0x02194000 0x4000>;
423257486Sian				interrupt-parent = <&gic>;
424257486Sian				interrupts = <55>;
425261816Sian				non-removable;
426257486Sian				bus-width = <0x4>;
427257486Sian				status ="disabled";
428257486Sian			};
429257486Sian
430257486Sian			usdhc3: usdhc@02198000 {
431257486Sian				compatible = "fsl,imx6q-usdhc";
432257486Sian				reg = <0x02198000 0x4000>;
433257486Sian				interrupt-parent = <&gic>;
434257486Sian				interrupts = <56>;
435261816Sian				cd-gpios = <&gpio3 9 0>;
436257486Sian				bus-width = <0x4>;
437257486Sian				status ="disabled";
438257486Sian			};
439257486Sian
440257486Sian			usdhc4: usdhc@0219c000 {
441257486Sian				compatible = "fsl,imx6q-usdhc";
442257486Sian				reg = <0x0219c000 0x4000>;
443257486Sian				interrupt-parent = <&gic>;
444257486Sian				interrupts = <57>;
445257486Sian				bus-width = <0x4>;
446257486Sian				status ="disabled";
447257486Sian			};
448261938Sian
449261938Sian			ocotp0: ocotp@021bc000 {
450261938Sian				compatible = "fsl,imx6q-ocotp";
451261938Sian				reg = <0x021bc000 0x4000>;
452266251Sian			};
453273661Sian
454273661Sian			audmux: audmux@021d8000 {
455273661Sian				compatible = "fsl,imx6q-audmux";
456273661Sian				reg = <0x021d8000 0x4000>;
457273661Sian				status = "disabled";
458273661Sian			};
459257486Sian		};
460257486Sian	};
461257486Sian};
462