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>;
102 gpt: timer@02098000 {
103 compatible = "fsl,imx6q-gpt", "fsl,imx51-gpt";
104 reg = <0x02098000 0x4000>;
105 interrupt-parent = <&gic>; interrupts = <87>;
109 // compatible = "fsl,imx51-iomux";
110 // reg = <0x73fa8000 0x4000>;
111 // interrupt-parent = <&gic>; interrupts = <7>;
112 // status = "disabled";
115 gpio1: gpio@0209c000 {
116 compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
117 reg = <0x0209c000 0x4000>;
118 interrupts = <0 66 0x04 0 67 0x04>;
121 interrupt-controller;
122 #interrupt-cells = <2>;
125 gpio2: gpio@020a0000 {
126 compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
127 reg = <0x020a0000 0x4000>;
128 interrupts = <0 68 0x04 0 69 0x04>;
131 interrupt-controller;
132 #interrupt-cells = <2>;
135 gpio3: gpio@020a4000 {
136 compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
137 reg = <0x020a4000 0x4000>;
138 interrupts = <0 70 0x04 0 71 0x04>;
141 interrupt-controller;
142 #interrupt-cells = <2>;
145 gpio4: gpio@020a8000 {
146 compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
147 reg = <0x020a8000 0x4000>;
148 interrupts = <0 72 0x04 0 73 0x04>;
151 interrupt-controller;
152 #interrupt-cells = <2>;
155 gpio5: gpio@020ac000 {
156 compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
157 reg = <0x020ac000 0x4000>;
158 interrupts = <0 74 0x04 0 75 0x04>;
161 interrupt-controller;
162 #interrupt-cells = <2>;
165 gpio6: gpio@020b0000 {
166 compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
167 reg = <0x020b0000 0x4000>;
168 interrupts = <0 76 0x04 0 77 0x04>;
171 interrupt-controller;
172 #interrupt-cells = <2>;
175 gpio7: gpio@020b4000 {
176 compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
177 reg = <0x020b4000 0x4000>;
178 interrupts = <0 78 0x04 0 79 0x04>;
181 interrupt-controller;
182 #interrupt-cells = <2>;
185 uart1: serial@02020000 {
186 compatible = "fsl,imx6q-uart";
187 reg = <0x02020000 0x4000>;
188 interrupt-parent = <&gic>;
190 clock-frequency = <80000000>;
194 uart2: serial@021e8000 {
195 compatible = "fsl,imx6q-uart";
196 reg = <0x021e8000 0x4000>;
197 interrupt-parent = <&gic>;
199 clock-frequency = <80000000>;
203 uart3: serial@021ec000 {
204 compatible = "fsl,imx6q-uart";
205 reg = <0x021ec000 0x4000>;
206 interrupt-parent = <&gic>;
208 clock-frequency = <80000000>;
212 uart4: serial@021f0000 {
213 compatible = "fsl,imx6q-uart";
214 reg = <0x021f0000 0x4000>;
215 interrupt-parent = <&gic>;
217 clock-frequency = <80000000>;
221 uart5: serial@021f4000 {
222 compatible = "fsl,imx6q-uart";
223 reg = <0x021f4000 0x4000>;
224 interrupt-parent = <&gic>;
226 clock-frequency = <80000000>;
230 usbphy1: usbphy@020c9000 {
231 compatible = "fsl,imx6q-usbphy", "fsl,imx23-usbphy";
232 reg = <0x020c9000 0x1000>;
237 usbphy2: usbphy@020ca000 {
238 compatible = "fsl,imx6q-usbphy", "fsl,imx23-usbphy";
239 reg = <0x020ca000 0x1000>;
246 aips@02100000 { /* AIPS2 */
247 compatible = "fsl,aips-bus", "simple-bus";
248 #address-cells = <1>;
250 interrupt-parent = <&gic>;
251 reg = <0x02100000 0x00100000>;
254 fec1: ethernet@02188000 {
255 compatible = "fsl,imx6q-fec";
256 reg = <0x02188000 0x4000>;
257 interrupts = <150 151>;
261 usbotg1: usb@02184000 {
262 compatible = "fsl,imx6q-usb", "fsl,imx27-usb";
263 reg = <0x02184000 0x200>;
265 fsl,usbphy = <&usbphy1>;
266 fsl,usbmisc = <&usbmisc 0>;
270 usbh1: usb@02184200 {
271 compatible = "fsl,imx6q-usb", "fsl,imx27-usb";
272 reg = <0x02184200 0x200>;
274 fsl,usbphy = <&usbphy2>;
275 fsl,usbmisc = <&usbmisc 1>;
279 usbh2: usb@02184400 {
280 compatible = "fsl,imx6q-usb", "fsl,imx27-usb";
281 reg = <0x02184400 0x200>;
283 fsl,usbmisc = <&usbmisc 2>;
287 usbh3: usb@02184600 {
288 compatible = "fsl,imx6q-usb", "fsl,imx27-usb";
289 reg = <0x02184600 0x200>;
291 fsl,usbmisc = <&usbmisc 3>;
295 usbmisc: usbmisc@02184800 {
297 compatible = "fsl,imx6q-usbmisc";
298 reg = <0x02184800 0x200>;
299 // Not disabled on purpose.
302 usdhc1: usdhc@02190000 {
303 compatible = "fsl,imx6q-usdhc";
304 reg = <0x02190000 0x4000>;
305 interrupt-parent = <&gic>;
307 cd-gpios = <&gpio1 2 0>;
312 usdhc2: usdhc@02194000 {
313 compatible = "fsl,imx6q-usdhc";
314 reg = <0x02194000 0x4000>;
315 interrupt-parent = <&gic>;
322 usdhc3: usdhc@02198000 {
323 compatible = "fsl,imx6q-usdhc";
324 reg = <0x02198000 0x4000>;
325 interrupt-parent = <&gic>;
327 cd-gpios = <&gpio3 9 0>;
332 usdhc4: usdhc@0219c000 {
333 compatible = "fsl,imx6q-usdhc";
334 reg = <0x0219c000 0x4000>;
335 interrupt-parent = <&gic>;
341 ocotp0: ocotp@021bc000 {
342 compatible = "fsl,imx6q-ocotp";
343 reg = <0x021bc000 0x4000>;