]> CyberLeo.Net >> Repos - FreeBSD/stable/10.git/blob - sys/boot/fdt/dts/imx6.dtsi
MFC r261938, r261939, r261940, r261944, r261945, r261946, r261947, r261956, r261957...
[FreeBSD/stable/10.git] / sys / boot / fdt / dts / 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                 l2-cache@00a02000 {
75                         compatible = "arm,pl310-cache", "arm,pl310";
76                         reg = <0xa02000 0x1000>;
77                         interrupts = <124>;
78                         cache-level = <0x2>;
79                         interrupt-parent = < &gic >;
80                 };
81
82                 aips@02000000 { /* AIPS1 */
83                         compatible = "fsl,aips-bus", "simple-bus";
84                         #address-cells = <1>;
85                         #size-cells = <1>;
86                         interrupt-parent = <&gic>;
87                         reg = <0x02000000 0x00100000>;
88                         ranges;
89
90                         /* Required by many devices, so better to stay first */
91                         clks: ccm@020c4000 {
92                                 compatible = "fsl,imx6q-ccm";
93                                 reg = <0x020c4000 0x4000>;
94                                 interrupts = <119 120>;
95                         };
96
97                         anatop: anatop@020c8000 {
98                                 compatible = "fsl,imx6q-anatop";
99                                 reg = <0x020c8000 0x1000>;
100                         }
101
102                         gpt: timer@02098000 {
103                                 compatible = "fsl,imx6q-gpt", "fsl,imx51-gpt";
104                                 reg = <0x02098000 0x4000>;
105                                 interrupt-parent = <&gic>; interrupts = <87>;
106                         };
107
108 //                      iomux@73fa8000 {
109 //                              compatible = "fsl,imx51-iomux";
110 //                              reg = <0x73fa8000 0x4000>;
111 //                              interrupt-parent = <&gic>; interrupts = <7>;
112 //                              status = "disabled";
113 //                      };
114
115                         gpio1: gpio@0209c000 {
116                                 compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
117                                 reg = <0x0209c000 0x4000>;
118                                 interrupts = <0 66 0x04 0 67 0x04>;
119                                 gpio-controller;
120                                 #gpio-cells = <2>;
121                                 interrupt-controller;
122                                 #interrupt-cells = <2>;
123                         };
124                         
125                         gpio2: gpio@020a0000 {
126                                 compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
127                                 reg = <0x020a0000 0x4000>;
128                                 interrupts = <0 68 0x04 0 69 0x04>;
129                                 gpio-controller;
130                                 #gpio-cells = <2>;
131                                 interrupt-controller;
132                                 #interrupt-cells = <2>;
133                         };
134                         
135                         gpio3: gpio@020a4000 {
136                                 compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
137                                 reg = <0x020a4000 0x4000>;
138                                 interrupts = <0 70 0x04 0 71 0x04>;
139                                 gpio-controller;
140                                 #gpio-cells = <2>;
141                                 interrupt-controller;
142                                 #interrupt-cells = <2>;
143                         };
144                         
145                         gpio4: gpio@020a8000 {
146                                 compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
147                                 reg = <0x020a8000 0x4000>;
148                                 interrupts = <0 72 0x04 0 73 0x04>;
149                                 gpio-controller;
150                                 #gpio-cells = <2>;
151                                 interrupt-controller;
152                                 #interrupt-cells = <2>;
153                         };
154                         
155                         gpio5: gpio@020ac000 {
156                                 compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
157                                 reg = <0x020ac000 0x4000>;
158                                 interrupts = <0 74 0x04 0 75 0x04>;
159                                 gpio-controller;
160                                 #gpio-cells = <2>;
161                                 interrupt-controller;
162                                 #interrupt-cells = <2>;
163                         };
164                         
165                         gpio6: gpio@020b0000 {
166                                 compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
167                                 reg = <0x020b0000 0x4000>;
168                                 interrupts = <0 76 0x04 0 77 0x04>;
169                                 gpio-controller;
170                                 #gpio-cells = <2>;
171                                 interrupt-controller;
172                                 #interrupt-cells = <2>;
173                         };
174                         
175                         gpio7: gpio@020b4000 {
176                                 compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
177                                 reg = <0x020b4000 0x4000>;
178                                 interrupts = <0 78 0x04 0 79 0x04>;
179                                 gpio-controller;
180                                 #gpio-cells = <2>;
181                                 interrupt-controller;
182                                 #interrupt-cells = <2>;
183                         };
184
185                         uart1: serial@02020000 {
186                                 compatible = "fsl,imx6q-uart";
187                                 reg = <0x02020000 0x4000>;
188                                 interrupt-parent = <&gic>; 
189                                 interrupts = <58>;
190                                 clock-frequency = <80000000>;
191                                 status = "disabled";
192                         };
193
194                         uart2: serial@021e8000 {
195                                 compatible = "fsl,imx6q-uart";
196                                 reg = <0x021e8000 0x4000>;
197                                 interrupt-parent = <&gic>; 
198                                 interrupts = <59>;
199                                 clock-frequency = <80000000>;
200                                 status = "disabled";
201                         };
202
203                         uart3: serial@021ec000 {
204                                 compatible = "fsl,imx6q-uart";
205                                 reg = <0x021ec000 0x4000>;
206                                 interrupt-parent = <&gic>; 
207                                 interrupts = <60>;
208                                 clock-frequency = <80000000>;
209                                 status = "disabled";
210                         };
211
212                         uart4: serial@021f0000 {
213                                 compatible = "fsl,imx6q-uart";
214                                 reg = <0x021f0000 0x4000>;
215                                 interrupt-parent = <&gic>; 
216                                 interrupts = <61>;
217                                 clock-frequency = <80000000>;
218                                 status = "disabled";
219                         };
220
221                         uart5: serial@021f4000 {
222                                 compatible = "fsl,imx6q-uart";
223                                 reg = <0x021f4000 0x4000>;
224                                 interrupt-parent = <&gic>; 
225                                 interrupts = <62>;
226                                 clock-frequency = <80000000>;
227                                 status = "disabled";
228                         };
229
230                         usbphy1: usbphy@020c9000 {
231                                 compatible = "fsl,imx6q-usbphy", "fsl,imx23-usbphy";
232                                 reg = <0x020c9000 0x1000>;
233                                 interrupts = <44>;
234                                 status = "disabled";
235                         };
236                         
237                         usbphy2: usbphy@020ca000 {
238                                 compatible = "fsl,imx6q-usbphy", "fsl,imx23-usbphy";
239                                 reg = <0x020ca000 0x1000>;
240                                 interrupts = <45>;
241                                 status = "disabled";
242                         };
243                         
244                 };
245
246                 aips@02100000 { /* AIPS2 */
247                         compatible = "fsl,aips-bus", "simple-bus";
248                         #address-cells = <1>;
249                         #size-cells = <1>;
250                         interrupt-parent = <&gic>;
251                         reg = <0x02100000 0x00100000>;
252                         ranges;
253
254                         fec1: ethernet@02188000 {
255                                 compatible = "fsl,imx6q-fec";
256                                 reg = <0x02188000 0x4000>;
257                                 interrupts = <150 151>;
258                                 status = "disabled";
259                         };
260                         
261                         usbotg1: usb@02184000 {
262                                 compatible = "fsl,imx6q-usb", "fsl,imx27-usb";
263                                 reg = <0x02184000 0x200>;
264                                 interrupts = <75>;
265                                 fsl,usbphy = <&usbphy1>;
266                                 fsl,usbmisc = <&usbmisc 0>;
267                                 status = "disabled";
268                         };
269                         
270                         usbh1: usb@02184200 {
271                                 compatible = "fsl,imx6q-usb", "fsl,imx27-usb";
272                                 reg = <0x02184200 0x200>;
273                                 interrupts = <72>;
274                                 fsl,usbphy = <&usbphy2>;
275                                 fsl,usbmisc = <&usbmisc 1>;
276                                 status = "disabled";
277                         };
278                         
279                         usbh2: usb@02184400 {
280                                 compatible = "fsl,imx6q-usb", "fsl,imx27-usb";
281                                 reg = <0x02184400 0x200>;
282                                 interrupts = <73>;
283                                 fsl,usbmisc = <&usbmisc 2>;
284                                 status = "disabled";
285                         };
286                         
287                         usbh3: usb@02184600 {
288                                 compatible = "fsl,imx6q-usb", "fsl,imx27-usb";
289                                 reg = <0x02184600 0x200>;
290                                 interrupts = <74>;
291                                 fsl,usbmisc = <&usbmisc 3>;
292                                 status = "disabled";
293                         };
294                         
295                         usbmisc: usbmisc@02184800 {
296                                 #index-cells = <1>;
297                                 compatible = "fsl,imx6q-usbmisc";
298                                 reg = <0x02184800 0x200>;
299                                 // Not disabled on purpose.
300                         };
301
302                         usdhc1: usdhc@02190000 {
303                                 compatible = "fsl,imx6q-usdhc";
304                                 reg = <0x02190000 0x4000>;
305                                 interrupt-parent = <&gic>;
306                                 interrupts = <54>;
307                                 cd-gpios = <&gpio1 2 0>;
308                                 bus-width = <0x4>;
309                                 status ="disabled";
310                         };
311
312                         usdhc2: usdhc@02194000 {
313                                 compatible = "fsl,imx6q-usdhc";
314                                 reg = <0x02194000 0x4000>;
315                                 interrupt-parent = <&gic>;
316                                 interrupts = <55>;
317                                 non-removable;
318                                 bus-width = <0x4>;
319                                 status ="disabled";
320                         };
321
322                         usdhc3: usdhc@02198000 {
323                                 compatible = "fsl,imx6q-usdhc";
324                                 reg = <0x02198000 0x4000>;
325                                 interrupt-parent = <&gic>;
326                                 interrupts = <56>;
327                                 cd-gpios = <&gpio3 9 0>;
328                                 bus-width = <0x4>;
329                                 status ="disabled";
330                         };
331
332                         usdhc4: usdhc@0219c000 {
333                                 compatible = "fsl,imx6q-usdhc";
334                                 reg = <0x0219c000 0x4000>;
335                                 interrupt-parent = <&gic>;
336                                 interrupts = <57>;
337                                 bus-width = <0x4>;
338                                 status ="disabled";
339                         };
340
341                         ocotp0: ocotp@021bc000 {
342                                 compatible = "fsl,imx6q-ocotp";
343                                 reg = <0x021bc000 0x4000>;
344                         }
345                 };
346         };
347 };