]> CyberLeo.Net >> Repos - FreeBSD/releng/10.2.git/blob - sys/boot/fdt/dts/arm/imx6.dtsi
- Copy stable/10@285827 to releng/10.2 in preparation for 10.2-RC1
[FreeBSD/releng/10.2.git] / sys / boot / fdt / dts / arm / imx6.dtsi
1 /*
2  * Copyright (c) 2013 Ian Lepore
3  * Copyright (c) 2012 The FreeBSD Foundation
4  * All rights reserved.
5  *
6  * Redistribution and use in source and binary forms, with or without
7  * modification, are permitted provided that the following conditions
8  * are met:
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.
14  *
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
25  * SUCH DAMAGE.
26  *
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.
31  *
32  * $FreeBSD$
33  */
34
35 / {
36         cpus {
37                 #address-cells = <1>;
38                 #size-cells = <0>;
39
40                 cpu@0 {
41                         device_type = "cpu";
42                         compatible = "ARM,MCIMX6";
43                         reg = <0x0>;
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>;
50                         bus-frequency = <0>;
51                         clock-frequency = <0>;
52                 };
53         };
54
55         aliases {
56                 soc = &SOC;
57         };
58
59         SOC: soc@00000000 {
60                 compatible = "simple-bus";
61                 #address-cells = <1>;
62                 #size-cells = <1>;
63                 interrupt-parent = <&gic>;
64                 ranges = <0x00000000 0x00000000 0x10000000>;
65
66                 gic: generic-interrupt-controller@00a00100 {
67                         compatible = "arm,gic";
68                         interrupt-controller;
69                         #interrupt-cells = <1>;
70                         reg = <0x00a01000 0x00001000
71                                0x00a00100 0x00000100>;
72                 };
73
74                 mp_tmr0@00a00200 {
75                         compatible = "arm,mpcore-timers";
76                         reg = <0x00a00200 0x100
77                                0x00a00600 0x100>;
78                         interrupts = <27 29>;
79                         interrupt-parent = <&gic>;
80                 };
81
82                 l2-cache@00a02000 {
83                         compatible = "arm,pl310-cache", "arm,pl310";
84                         reg = <0xa02000 0x1000>;
85                         interrupts = <124>;
86                         cache-level = <0x2>;
87                         interrupt-parent = < &gic >;
88                 };
89
90                 aips@02000000 { /* AIPS1 */
91                         compatible = "fsl,aips-bus", "simple-bus";
92                         #address-cells = <1>;
93                         #size-cells = <1>;
94                         interrupt-parent = <&gic>;
95                         reg = <0x02000000 0x00100000>;
96                         ranges;
97
98                         /* Required by many devices, so better to stay first */
99                         clks: ccm@020c4000 {
100                                 compatible = "fsl,imx6q-ccm";
101                                 reg = <0x020c4000 0x4000>;
102                                 interrupts = <119 120>;
103                         };
104
105                         /* System Reset Controller */
106                         src: src@4006E000 {
107                                 compatible = "fsl,imx6-src";
108                                 reg = <0x020D8000 0x100>;
109                         };
110
111                         sdma: sdma@020ec000 {
112                                 compatible = "fsl,imx6q-sdma";
113                                 reg = <0x020ec000 0x4000>;
114                                 interrupt-parent = <&gic>;
115                                 interrupts = <34>;
116                                 status = "disabled";
117                         };
118
119                         anatop: anatop@020c8000 {
120                                 compatible = "fsl,imx6q-anatop";
121                                 reg = <0x020c8000 0x1000>;
122                                 interrupt-parent = <&gic>;
123                                 interrupts = <49>;
124                         };
125
126                         gpt: timer@02098000 {
127                                 compatible = "fsl,imx6q-gpt", "fsl,imx51-gpt";
128                                 reg = <0x02098000 0x4000>;
129                                 interrupt-parent = <&gic>;
130                                 interrupts = <87>;
131                         };
132
133                         iomux@020e0000 {
134                                 compatible = "fsl,imx6q-iomuxc";
135                                 reg = <0x020e0000 0x4000>;
136                                 interrupt-parent = <&gic>;
137                                 interrupts = <32>;
138                         };
139
140                         gpio1: gpio@0209c000 {
141                                 compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
142                                 reg = <0x0209c000 0x4000>;
143                                 interrupts = < 98 99 >;
144                                 gpio-controller;
145                                 #gpio-cells = <2>;
146                                 interrupt-controller;
147                                 #interrupt-cells = <2>;
148                                 status = "disabled";
149                         };
150
151                         gpio2: gpio@020a0000 {
152                                 compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
153                                 reg = <0x020a0000 0x4000>;
154                                 interrupts = < 100 101 >;
155                                 gpio-controller;
156                                 #gpio-cells = <2>;
157                                 interrupt-controller;
158                                 #interrupt-cells = <2>;
159                                 status = "disabled";
160                         };
161
162                         gpio3: gpio@020a4000 {
163                                 compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
164                                 reg = <0x020a4000 0x4000>;
165                                 interrupts = < 102 103 >;
166                                 gpio-controller;
167                                 #gpio-cells = <2>;
168                                 interrupt-controller;
169                                 #interrupt-cells = <2>;
170                                 status = "disabled";
171                         };
172
173                         gpio4: gpio@020a8000 {
174                                 compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
175                                 reg = <0x020a8000 0x4000>;
176                                 interrupts = < 104 105 >;
177                                 gpio-controller;
178                                 #gpio-cells = <2>;
179                                 interrupt-controller;
180                                 #interrupt-cells = <2>;
181                                 status = "disabled";
182                         };
183
184                         gpio5: gpio@020ac000 {
185                                 compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
186                                 reg = <0x020ac000 0x4000>;
187                                 interrupts = < 106 107 >;
188                                 gpio-controller;
189                                 #gpio-cells = <2>;
190                                 interrupt-controller;
191                                 #interrupt-cells = <2>;
192                                 status = "disabled";
193                         };
194
195                         gpio6: gpio@020b0000 {
196                                 compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
197                                 reg = <0x020b0000 0x4000>;
198                                 interrupts = < 108 109 >;
199                                 gpio-controller;
200                                 #gpio-cells = <2>;
201                                 interrupt-controller;
202                                 #interrupt-cells = <2>;
203                                 status = "disabled";
204                         };
205
206                         gpio7: gpio@020b4000 {
207                                 compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
208                                 reg = <0x020b4000 0x4000>;
209                                 interrupts = < 110 111 >;
210                                 gpio-controller;
211                                 #gpio-cells = <2>;
212                                 interrupt-controller;
213                                 #interrupt-cells = <2>;
214                                 status = "disabled";
215                         };
216
217                         uart1: serial@02020000 {
218                                 compatible = "fsl,imx6q-uart";
219                                 reg = <0x02020000 0x4000>;
220                                 interrupt-parent = <&gic>;
221                                 interrupts = <58>;
222                                 clock-frequency = <80000000>;
223                                 status = "disabled";
224                         };
225
226                         uart2: serial@021e8000 {
227                                 compatible = "fsl,imx6q-uart";
228                                 reg = <0x021e8000 0x4000>;
229                                 interrupt-parent = <&gic>;
230                                 interrupts = <59>;
231                                 clock-frequency = <80000000>;
232                                 status = "disabled";
233                         };
234
235                         uart3: serial@021ec000 {
236                                 compatible = "fsl,imx6q-uart";
237                                 reg = <0x021ec000 0x4000>;
238                                 interrupt-parent = <&gic>;
239                                 interrupts = <60>;
240                                 clock-frequency = <80000000>;
241                                 status = "disabled";
242                         };
243
244                         uart4: serial@021f0000 {
245                                 compatible = "fsl,imx6q-uart";
246                                 reg = <0x021f0000 0x4000>;
247                                 interrupt-parent = <&gic>;
248                                 interrupts = <61>;
249                                 clock-frequency = <80000000>;
250                                 status = "disabled";
251                         };
252
253                         uart5: serial@021f4000 {
254                                 compatible = "fsl,imx6q-uart";
255                                 reg = <0x021f4000 0x4000>;
256                                 interrupt-parent = <&gic>;
257                                 interrupts = <62>;
258                                 clock-frequency = <80000000>;
259                                 status = "disabled";
260                         };
261
262                         usbphy1: usbphy@020c9000 {
263                                 compatible = "fsl,imx6q-usbphy", "fsl,imx23-usbphy";
264                                 reg = <0x020c9000 0x1000>;
265                                 interrupts = <44>;
266                                 status = "disabled";
267                         };
268
269                         usbphy2: usbphy@020ca000 {
270                                 compatible = "fsl,imx6q-usbphy", "fsl,imx23-usbphy";
271                                 reg = <0x020ca000 0x1000>;
272                                 interrupts = <45>;
273                                 status = "disabled";
274                         };
275
276                         ecspi1: ecspi@02008000 {
277                                 compatible = "fsl,imx6q-ecspi";
278                                 reg = <0x02008000 0x4000>;
279                                 interrupts = < 63 >;
280                                 status = "disabled";
281                         };
282
283                         ecspi2: ecspi@0200C000 {
284                                 compatible = "fsl,imx6q-ecspi";
285                                 reg = <0x0200C000 0x4000>;
286                                 interrupts = < 64 >;
287                                 status = "disabled";
288                         };
289
290                         ecspi3: ecspi@02010000 {
291                                 compatible = "fsl,imx6q-ecspi";
292                                 reg = <0x02010000 0x4000>;
293                                 interrupts = < 65 >;
294                                 status = "disabled";
295                         };
296
297                         ecspi4: ecspi@02014000 {
298                                 compatible = "fsl,imx6q-ecspi";
299                                 reg = <0x02014000 0x4000>;
300                                 interrupts = < 66 >;
301                                 status = "disabled";
302                         };
303
304                         ecspi5: ecspi@02018000 {
305                                 compatible = "fsl,imx6q-ecspi";
306                                 reg = <0x02018000 0x4000>;
307                                 interrupts = < 67 >;
308                                 status = "disabled";
309                         };
310
311                         ssi1: ssi@02028000 {
312                                 compatible = "fsl,imx6q-ssi";
313                                 reg = <0x02028000 0x4000>;
314                                 interrupts = < 78 >;
315                                 dmas = <&sdma 37 1 0>,
316                                        <&sdma 38 1 0>;
317                                 dma-names = "rx", "tx";
318                                 status = "disabled";
319                         };
320
321                         ssi2: ssi@0202C000 {
322                                 compatible = "fsl,imx6q-ssi";
323                                 reg = <0x0202C000 0x4000>;
324                                 interrupts = < 79 >;
325                                 status = "disabled";
326                         };
327
328                         ssi3: ssi@02030000 {
329                                 compatible = "fsl,imx6q-ssi";
330                                 reg = <0x02030000 0x4000>;
331                                 interrupts = < 80 >;
332                                 status = "disabled";
333                         };
334                 };
335
336                 aips@02100000 { /* AIPS2 */
337                         compatible = "fsl,aips-bus", "simple-bus";
338                         #address-cells = <1>;
339                         #size-cells = <1>;
340                         interrupt-parent = <&gic>;
341                         reg = <0x02100000 0x00100000>;
342                         ranges;
343
344                         i2c1: i2c@021a0000 {
345                                 compatible = "fsl,imx6q-i2c";
346                                 reg = <0x021a0000 0x4000>;
347                                 interrupts = < 68 >;
348                                 status = "disabled";
349                         };
350
351                         i2c2: i2c@021a4000 {
352                                 compatible = "fsl,imx6q-i2c";
353                                 reg = <0x021a4000 0x4000>;
354                                 interrupts = < 69 >;
355                                 status = "disabled";
356                         };
357
358                         i2c3: i2c@021ac000 {
359                                 compatible = "fsl,imx6q-i2c";
360                                 reg = <0x021a8000 0x4000>;
361                                 interrupts = < 70 >;
362                                 status = "disabled";
363                         };
364
365                         fec1: ethernet@02188000 {
366                                 compatible = "fsl,imx6q-fec";
367                                 reg = <0x02188000 0x4000>;
368                                 interrupts = <150 151>;
369                                 status = "disabled";
370                         };
371
372                         usbotg1: usb@02184000 {
373                                 compatible = "fsl,imx6q-usb", "fsl,imx27-usb";
374                                 reg = <0x02184000 0x200>;
375                                 interrupts = <75>;
376                                 fsl,usbphy = <&usbphy1>;
377                                 fsl,usbmisc = <&usbmisc 0>;
378                                 status = "disabled";
379                         };
380
381                         usbh1: usb@02184200 {
382                                 compatible = "fsl,imx6q-usb", "fsl,imx27-usb";
383                                 reg = <0x02184200 0x200>;
384                                 interrupts = <72>;
385                                 fsl,usbphy = <&usbphy2>;
386                                 fsl,usbmisc = <&usbmisc 1>;
387                                 status = "disabled";
388                         };
389
390                         usbh2: usb@02184400 {
391                                 compatible = "fsl,imx6q-usb", "fsl,imx27-usb";
392                                 reg = <0x02184400 0x200>;
393                                 interrupts = <73>;
394                                 fsl,usbmisc = <&usbmisc 2>;
395                                 status = "disabled";
396                         };
397
398                         usbh3: usb@02184600 {
399                                 compatible = "fsl,imx6q-usb", "fsl,imx27-usb";
400                                 reg = <0x02184600 0x200>;
401                                 interrupts = <74>;
402                                 fsl,usbmisc = <&usbmisc 3>;
403                                 status = "disabled";
404                         };
405
406                         usbmisc: usbmisc@02184800 {
407                                 #index-cells = <1>;
408                                 compatible = "fsl,imx6q-usbmisc";
409                                 reg = <0x02184800 0x200>;
410                                 // Not disabled on purpose.
411                         };
412
413                         usdhc1: usdhc@02190000 {
414                                 compatible = "fsl,imx6q-usdhc";
415                                 reg = <0x02190000 0x4000>;
416                                 interrupt-parent = <&gic>;
417                                 interrupts = <54>;
418                                 cd-gpios = <&gpio1 2 0>;
419                                 bus-width = <0x4>;
420                                 status ="disabled";
421                         };
422
423                         usdhc2: usdhc@02194000 {
424                                 compatible = "fsl,imx6q-usdhc";
425                                 reg = <0x02194000 0x4000>;
426                                 interrupt-parent = <&gic>;
427                                 interrupts = <55>;
428                                 non-removable;
429                                 bus-width = <0x4>;
430                                 status ="disabled";
431                         };
432
433                         usdhc3: usdhc@02198000 {
434                                 compatible = "fsl,imx6q-usdhc";
435                                 reg = <0x02198000 0x4000>;
436                                 interrupt-parent = <&gic>;
437                                 interrupts = <56>;
438                                 cd-gpios = <&gpio3 9 0>;
439                                 bus-width = <0x4>;
440                                 status ="disabled";
441                         };
442
443                         usdhc4: usdhc@0219c000 {
444                                 compatible = "fsl,imx6q-usdhc";
445                                 reg = <0x0219c000 0x4000>;
446                                 interrupt-parent = <&gic>;
447                                 interrupts = <57>;
448                                 bus-width = <0x4>;
449                                 status ="disabled";
450                         };
451
452                         ocotp0: ocotp@021bc000 {
453                                 compatible = "fsl,imx6q-ocotp";
454                                 reg = <0x021bc000 0x4000>;
455                         };
456
457                         audmux: audmux@021d8000 {
458                                 compatible = "fsl,imx6q-audmux";
459                                 reg = <0x021d8000 0x4000>;
460                                 status = "disabled";
461                         };
462                 };
463         };
464 };