2 * Copyright (c) 2013 Ian Lepore
3 * Copyright (c) 2012 The FreeBSD Foundation
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer.
11 * 2. Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in the
13 * documentation and/or other materials provided with the distribution.
15 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
16 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
19 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
20 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
21 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
22 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27 * Freescale i.MX6 Common Device Tree Source.
28 * There are enough differences between the Solo, Dual, Quad, and *-lite
29 * flavors of this SoC that eventually we will need a finer-grained breakdown
30 * of some of this stuff. For now this file works for all of them. I think.
42 compatible = "ARM,MCIMX6";
44 d-cache-line-size = <32>;
45 i-cache-line-size = <32>;
46 d-cache-size = <0x8000>;
47 i-cache-size = <0x8000>;
48 /* TODO: describe L2 cache also */
49 timebase-frequency = <0>;
51 clock-frequency = <0>;
60 compatible = "simple-bus";
63 interrupt-parent = <&gic>;
64 ranges = <0x00000000 0x00000000 0x10000000>;
66 gic: generic-interrupt-controller@00a00100 {
67 compatible = "arm,gic";
69 #interrupt-cells = <1>;
70 reg = <0x00a01000 0x00001000
71 0x00a00100 0x00000100>;
75 compatible = "arm,mpcore-timers";
76 reg = <0x00a00200 0x100
79 interrupt-parent = <&gic>;
83 compatible = "arm,pl310-cache", "arm,pl310";
84 reg = <0xa02000 0x1000>;
87 interrupt-parent = < &gic >;
90 aips@02000000 { /* AIPS1 */
91 compatible = "fsl,aips-bus", "simple-bus";
94 interrupt-parent = <&gic>;
95 reg = <0x02000000 0x00100000>;
98 /* Required by many devices, so better to stay first */
100 compatible = "fsl,imx6q-ccm";
101 reg = <0x020c4000 0x4000>;
102 interrupts = <119 120>;
105 /* System Reset Controller */
107 compatible = "fsl,imx6-src";
108 reg = <0x020D8000 0x100>;
111 sdma: sdma@020ec000 {
112 compatible = "fsl,imx6q-sdma";
113 reg = <0x020ec000 0x4000>;
114 interrupt-parent = <&gic>;
119 anatop: anatop@020c8000 {
120 compatible = "fsl,imx6q-anatop";
121 reg = <0x020c8000 0x1000>;
122 interrupt-parent = <&gic>;
126 gpt: timer@02098000 {
127 compatible = "fsl,imx6q-gpt", "fsl,imx51-gpt";
128 reg = <0x02098000 0x4000>;
129 interrupt-parent = <&gic>;
134 compatible = "fsl,imx6q-iomuxc";
135 reg = <0x020e0000 0x4000>;
136 interrupt-parent = <&gic>;
140 gpio1: gpio@0209c000 {
141 compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
142 reg = <0x0209c000 0x4000>;
143 interrupts = < 98 99 >;
146 interrupt-controller;
147 #interrupt-cells = <2>;
151 gpio2: gpio@020a0000 {
152 compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
153 reg = <0x020a0000 0x4000>;
154 interrupts = < 100 101 >;
157 interrupt-controller;
158 #interrupt-cells = <2>;
162 gpio3: gpio@020a4000 {
163 compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
164 reg = <0x020a4000 0x4000>;
165 interrupts = < 102 103 >;
168 interrupt-controller;
169 #interrupt-cells = <2>;
173 gpio4: gpio@020a8000 {
174 compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
175 reg = <0x020a8000 0x4000>;
176 interrupts = < 104 105 >;
179 interrupt-controller;
180 #interrupt-cells = <2>;
184 gpio5: gpio@020ac000 {
185 compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
186 reg = <0x020ac000 0x4000>;
187 interrupts = < 106 107 >;
190 interrupt-controller;
191 #interrupt-cells = <2>;
195 gpio6: gpio@020b0000 {
196 compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
197 reg = <0x020b0000 0x4000>;
198 interrupts = < 108 109 >;
201 interrupt-controller;
202 #interrupt-cells = <2>;
206 gpio7: gpio@020b4000 {
207 compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
208 reg = <0x020b4000 0x4000>;
209 interrupts = < 110 111 >;
212 interrupt-controller;
213 #interrupt-cells = <2>;
217 uart1: serial@02020000 {
218 compatible = "fsl,imx6q-uart";
219 reg = <0x02020000 0x4000>;
220 interrupt-parent = <&gic>;
222 clock-frequency = <80000000>;
226 uart2: serial@021e8000 {
227 compatible = "fsl,imx6q-uart";
228 reg = <0x021e8000 0x4000>;
229 interrupt-parent = <&gic>;
231 clock-frequency = <80000000>;
235 uart3: serial@021ec000 {
236 compatible = "fsl,imx6q-uart";
237 reg = <0x021ec000 0x4000>;
238 interrupt-parent = <&gic>;
240 clock-frequency = <80000000>;
244 uart4: serial@021f0000 {
245 compatible = "fsl,imx6q-uart";
246 reg = <0x021f0000 0x4000>;
247 interrupt-parent = <&gic>;
249 clock-frequency = <80000000>;
253 uart5: serial@021f4000 {
254 compatible = "fsl,imx6q-uart";
255 reg = <0x021f4000 0x4000>;
256 interrupt-parent = <&gic>;
258 clock-frequency = <80000000>;
262 usbphy1: usbphy@020c9000 {
263 compatible = "fsl,imx6q-usbphy", "fsl,imx23-usbphy";
264 reg = <0x020c9000 0x1000>;
269 usbphy2: usbphy@020ca000 {
270 compatible = "fsl,imx6q-usbphy", "fsl,imx23-usbphy";
271 reg = <0x020ca000 0x1000>;
276 ecspi1: ecspi@02008000 {
277 compatible = "fsl,imx6q-ecspi";
278 reg = <0x02008000 0x4000>;
283 ecspi2: ecspi@0200C000 {
284 compatible = "fsl,imx6q-ecspi";
285 reg = <0x0200C000 0x4000>;
290 ecspi3: ecspi@02010000 {
291 compatible = "fsl,imx6q-ecspi";
292 reg = <0x02010000 0x4000>;
297 ecspi4: ecspi@02014000 {
298 compatible = "fsl,imx6q-ecspi";
299 reg = <0x02014000 0x4000>;
304 ecspi5: ecspi@02018000 {
305 compatible = "fsl,imx6q-ecspi";
306 reg = <0x02018000 0x4000>;
312 compatible = "fsl,imx6q-ssi";
313 reg = <0x02028000 0x4000>;
315 dmas = <&sdma 37 1 0>,
317 dma-names = "rx", "tx";
322 compatible = "fsl,imx6q-ssi";
323 reg = <0x0202C000 0x4000>;
329 compatible = "fsl,imx6q-ssi";
330 reg = <0x02030000 0x4000>;
336 aips@02100000 { /* AIPS2 */
337 compatible = "fsl,aips-bus", "simple-bus";
338 #address-cells = <1>;
340 interrupt-parent = <&gic>;
341 reg = <0x02100000 0x00100000>;
345 compatible = "fsl,imx6q-i2c";
346 reg = <0x021a0000 0x4000>;
352 compatible = "fsl,imx6q-i2c";
353 reg = <0x021a4000 0x4000>;
359 compatible = "fsl,imx6q-i2c";
360 reg = <0x021a8000 0x4000>;
365 fec1: ethernet@02188000 {
366 compatible = "fsl,imx6q-fec";
367 reg = <0x02188000 0x4000>;
368 interrupts = <150 151>;
372 usbotg1: usb@02184000 {
373 compatible = "fsl,imx6q-usb", "fsl,imx27-usb";
374 reg = <0x02184000 0x200>;
376 fsl,usbphy = <&usbphy1>;
377 fsl,usbmisc = <&usbmisc 0>;
381 usbh1: usb@02184200 {
382 compatible = "fsl,imx6q-usb", "fsl,imx27-usb";
383 reg = <0x02184200 0x200>;
385 fsl,usbphy = <&usbphy2>;
386 fsl,usbmisc = <&usbmisc 1>;
390 usbh2: usb@02184400 {
391 compatible = "fsl,imx6q-usb", "fsl,imx27-usb";
392 reg = <0x02184400 0x200>;
394 fsl,usbmisc = <&usbmisc 2>;
398 usbh3: usb@02184600 {
399 compatible = "fsl,imx6q-usb", "fsl,imx27-usb";
400 reg = <0x02184600 0x200>;
402 fsl,usbmisc = <&usbmisc 3>;
406 usbmisc: usbmisc@02184800 {
408 compatible = "fsl,imx6q-usbmisc";
409 reg = <0x02184800 0x200>;
410 // Not disabled on purpose.
413 usdhc1: usdhc@02190000 {
414 compatible = "fsl,imx6q-usdhc";
415 reg = <0x02190000 0x4000>;
416 interrupt-parent = <&gic>;
418 cd-gpios = <&gpio1 2 0>;
423 usdhc2: usdhc@02194000 {
424 compatible = "fsl,imx6q-usdhc";
425 reg = <0x02194000 0x4000>;
426 interrupt-parent = <&gic>;
433 usdhc3: usdhc@02198000 {
434 compatible = "fsl,imx6q-usdhc";
435 reg = <0x02198000 0x4000>;
436 interrupt-parent = <&gic>;
438 cd-gpios = <&gpio3 9 0>;
443 usdhc4: usdhc@0219c000 {
444 compatible = "fsl,imx6q-usdhc";
445 reg = <0x0219c000 0x4000>;
446 interrupt-parent = <&gic>;
452 ocotp0: ocotp@021bc000 {
453 compatible = "fsl,imx6q-ocotp";
454 reg = <0x021bc000 0x4000>;
457 audmux: audmux@021d8000 {
458 compatible = "fsl,imx6q-audmux";
459 reg = <0x021d8000 0x4000>;