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,pl310-cache", "arm,pl310";
76 reg = <0xa02000 0x1000>;
79 interrupt-parent = < &gic >;
82 aips@02000000 { /* AIPS1 */
83 compatible = "fsl,aips-bus", "simple-bus";
86 interrupt-parent = <&gic>;
87 reg = <0x02000000 0x00100000>;
90 /* Required by many devices, so better to stay first */
92 compatible = "fsl,imx6q-ccm";
93 reg = <0x020c4000 0x4000>;
94 interrupts = <119 120>;
97 anatop: anatop@020c8000 {
98 compatible = "fsl,imx6q-anatop";
99 reg = <0x020c8000 0x1000>;
100 interrupt-parent = <&gic>;
104 gpt: timer@02098000 {
105 compatible = "fsl,imx6q-gpt", "fsl,imx51-gpt";
106 reg = <0x02098000 0x4000>;
107 interrupt-parent = <&gic>; interrupts = <87>;
111 // compatible = "fsl,imx51-iomux";
112 // reg = <0x73fa8000 0x4000>;
113 // interrupt-parent = <&gic>; interrupts = <7>;
114 // status = "disabled";
117 gpio1: gpio@0209c000 {
118 compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
119 reg = <0x0209c000 0x4000>;
120 interrupts = <0 66 0x04 0 67 0x04>;
123 interrupt-controller;
124 #interrupt-cells = <2>;
127 gpio2: gpio@020a0000 {
128 compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
129 reg = <0x020a0000 0x4000>;
130 interrupts = <0 68 0x04 0 69 0x04>;
133 interrupt-controller;
134 #interrupt-cells = <2>;
137 gpio3: gpio@020a4000 {
138 compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
139 reg = <0x020a4000 0x4000>;
140 interrupts = <0 70 0x04 0 71 0x04>;
143 interrupt-controller;
144 #interrupt-cells = <2>;
147 gpio4: gpio@020a8000 {
148 compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
149 reg = <0x020a8000 0x4000>;
150 interrupts = <0 72 0x04 0 73 0x04>;
153 interrupt-controller;
154 #interrupt-cells = <2>;
157 gpio5: gpio@020ac000 {
158 compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
159 reg = <0x020ac000 0x4000>;
160 interrupts = <0 74 0x04 0 75 0x04>;
163 interrupt-controller;
164 #interrupt-cells = <2>;
167 gpio6: gpio@020b0000 {
168 compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
169 reg = <0x020b0000 0x4000>;
170 interrupts = <0 76 0x04 0 77 0x04>;
173 interrupt-controller;
174 #interrupt-cells = <2>;
177 gpio7: gpio@020b4000 {
178 compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
179 reg = <0x020b4000 0x4000>;
180 interrupts = <0 78 0x04 0 79 0x04>;
183 interrupt-controller;
184 #interrupt-cells = <2>;
187 uart1: serial@02020000 {
188 compatible = "fsl,imx6q-uart";
189 reg = <0x02020000 0x4000>;
190 interrupt-parent = <&gic>;
192 clock-frequency = <80000000>;
196 uart2: serial@021e8000 {
197 compatible = "fsl,imx6q-uart";
198 reg = <0x021e8000 0x4000>;
199 interrupt-parent = <&gic>;
201 clock-frequency = <80000000>;
205 uart3: serial@021ec000 {
206 compatible = "fsl,imx6q-uart";
207 reg = <0x021ec000 0x4000>;
208 interrupt-parent = <&gic>;
210 clock-frequency = <80000000>;
214 uart4: serial@021f0000 {
215 compatible = "fsl,imx6q-uart";
216 reg = <0x021f0000 0x4000>;
217 interrupt-parent = <&gic>;
219 clock-frequency = <80000000>;
223 uart5: serial@021f4000 {
224 compatible = "fsl,imx6q-uart";
225 reg = <0x021f4000 0x4000>;
226 interrupt-parent = <&gic>;
228 clock-frequency = <80000000>;
232 usbphy1: usbphy@020c9000 {
233 compatible = "fsl,imx6q-usbphy", "fsl,imx23-usbphy";
234 reg = <0x020c9000 0x1000>;
239 usbphy2: usbphy@020ca000 {
240 compatible = "fsl,imx6q-usbphy", "fsl,imx23-usbphy";
241 reg = <0x020ca000 0x1000>;
248 aips@02100000 { /* AIPS2 */
249 compatible = "fsl,aips-bus", "simple-bus";
250 #address-cells = <1>;
252 interrupt-parent = <&gic>;
253 reg = <0x02100000 0x00100000>;
256 fec1: ethernet@02188000 {
257 compatible = "fsl,imx6q-fec";
258 reg = <0x02188000 0x4000>;
259 interrupts = <150 151>;
263 usbotg1: usb@02184000 {
264 compatible = "fsl,imx6q-usb", "fsl,imx27-usb";
265 reg = <0x02184000 0x200>;
267 fsl,usbphy = <&usbphy1>;
268 fsl,usbmisc = <&usbmisc 0>;
272 usbh1: usb@02184200 {
273 compatible = "fsl,imx6q-usb", "fsl,imx27-usb";
274 reg = <0x02184200 0x200>;
276 fsl,usbphy = <&usbphy2>;
277 fsl,usbmisc = <&usbmisc 1>;
281 usbh2: usb@02184400 {
282 compatible = "fsl,imx6q-usb", "fsl,imx27-usb";
283 reg = <0x02184400 0x200>;
285 fsl,usbmisc = <&usbmisc 2>;
289 usbh3: usb@02184600 {
290 compatible = "fsl,imx6q-usb", "fsl,imx27-usb";
291 reg = <0x02184600 0x200>;
293 fsl,usbmisc = <&usbmisc 3>;
297 usbmisc: usbmisc@02184800 {
299 compatible = "fsl,imx6q-usbmisc";
300 reg = <0x02184800 0x200>;
301 // Not disabled on purpose.
304 usdhc1: usdhc@02190000 {
305 compatible = "fsl,imx6q-usdhc";
306 reg = <0x02190000 0x4000>;
307 interrupt-parent = <&gic>;
309 cd-gpios = <&gpio1 2 0>;
314 usdhc2: usdhc@02194000 {
315 compatible = "fsl,imx6q-usdhc";
316 reg = <0x02194000 0x4000>;
317 interrupt-parent = <&gic>;
324 usdhc3: usdhc@02198000 {
325 compatible = "fsl,imx6q-usdhc";
326 reg = <0x02198000 0x4000>;
327 interrupt-parent = <&gic>;
329 cd-gpios = <&gpio3 9 0>;
334 usdhc4: usdhc@0219c000 {
335 compatible = "fsl,imx6q-usdhc";
336 reg = <0x0219c000 0x4000>;
337 interrupt-parent = <&gic>;
343 ocotp0: ocotp@021bc000 {
344 compatible = "fsl,imx6q-ocotp";
345 reg = <0x021bc000 0x4000>;