ARM: dts: vf610: create generic base device trees
[cascardo/linux.git] / arch / arm / boot / dts / vfxxx.dtsi
1 /*
2  * Copyright 2013 Freescale Semiconductor, Inc.
3  *
4  * This program is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation; either version 2 of the License, or
7  * (at your option) any later version.
8  */
9
10 #include "vf610-pinfunc.h"
11 #include <dt-bindings/clock/vf610-clock.h>
12 #include <dt-bindings/interrupt-controller/irq.h>
13
14 / {
15         aliases {
16                 can0 = &can0;
17                 can1 = &can1;
18                 serial0 = &uart0;
19                 serial1 = &uart1;
20                 serial2 = &uart2;
21                 serial3 = &uart3;
22                 serial4 = &uart4;
23                 serial5 = &uart5;
24                 gpio0 = &gpio1;
25                 gpio1 = &gpio2;
26                 gpio2 = &gpio3;
27                 gpio3 = &gpio4;
28                 gpio4 = &gpio5;
29                 usbphy0 = &usbphy0;
30                 usbphy1 = &usbphy1;
31         };
32
33         fxosc: fxosc {
34                 compatible = "fixed-clock";
35                 #clock-cells = <0>;
36                 clock-frequency = <24000000>;
37         };
38
39         sxosc: sxosc {
40                 compatible = "fixed-clock";
41                 #clock-cells = <0>;
42                 clock-frequency = <32768>;
43         };
44
45         soc {
46                 #address-cells = <1>;
47                 #size-cells = <1>;
48                 compatible = "simple-bus";
49                 ranges;
50
51                 aips0: aips-bus@40000000 {
52                         compatible = "fsl,aips-bus", "simple-bus";
53                         #address-cells = <1>;
54                         #size-cells = <1>;
55                         ranges;
56
57                         edma0: dma-controller@40018000 {
58                                 #dma-cells = <2>;
59                                 compatible = "fsl,vf610-edma";
60                                 reg = <0x40018000 0x2000>,
61                                         <0x40024000 0x1000>,
62                                         <0x40025000 0x1000>;
63                                 dma-channels = <32>;
64                                 clock-names = "dmamux0", "dmamux1";
65                                 clocks = <&clks VF610_CLK_DMAMUX0>,
66                                         <&clks VF610_CLK_DMAMUX1>;
67                                 status = "disabled";
68                         };
69
70                         can0: flexcan@40020000 {
71                                 compatible = "fsl,vf610-flexcan";
72                                 reg = <0x40020000 0x4000>;
73                                 clocks = <&clks VF610_CLK_FLEXCAN0>,
74                                          <&clks VF610_CLK_FLEXCAN0>;
75                                 clock-names = "ipg", "per";
76                                 status = "disabled";
77                         };
78
79                         uart0: serial@40027000 {
80                                 compatible = "fsl,vf610-lpuart";
81                                 reg = <0x40027000 0x1000>;
82                                 clocks = <&clks VF610_CLK_UART0>;
83                                 clock-names = "ipg";
84                                 dmas = <&edma0 0 2>,
85                                         <&edma0 0 3>;
86                                 dma-names = "rx","tx";
87                                 status = "disabled";
88                         };
89
90                         uart1: serial@40028000 {
91                                 compatible = "fsl,vf610-lpuart";
92                                 reg = <0x40028000 0x1000>;
93                                 clocks = <&clks VF610_CLK_UART1>;
94                                 clock-names = "ipg";
95                                 dmas = <&edma0 0 4>,
96                                         <&edma0 0 5>;
97                                 dma-names = "rx","tx";
98                                 status = "disabled";
99                         };
100
101                         uart2: serial@40029000 {
102                                 compatible = "fsl,vf610-lpuart";
103                                 reg = <0x40029000 0x1000>;
104                                 clocks = <&clks VF610_CLK_UART2>;
105                                 clock-names = "ipg";
106                                 dmas = <&edma0 0 6>,
107                                         <&edma0 0 7>;
108                                 dma-names = "rx","tx";
109                                 status = "disabled";
110                         };
111
112                         uart3: serial@4002a000 {
113                                 compatible = "fsl,vf610-lpuart";
114                                 reg = <0x4002a000 0x1000>;
115                                 clocks = <&clks VF610_CLK_UART3>;
116                                 clock-names = "ipg";
117                                 dmas = <&edma0 0 8>,
118                                         <&edma0 0 9>;
119                                 dma-names = "rx","tx";
120                                 status = "disabled";
121                         };
122
123                         dspi0: dspi0@4002c000 {
124                                 #address-cells = <1>;
125                                 #size-cells = <0>;
126                                 compatible = "fsl,vf610-dspi";
127                                 reg = <0x4002c000 0x1000>;
128                                 clocks = <&clks VF610_CLK_DSPI0>;
129                                 clock-names = "dspi";
130                                 spi-num-chipselects = <5>;
131                                 status = "disabled";
132                         };
133
134                         sai2: sai@40031000 {
135                                 compatible = "fsl,vf610-sai";
136                                 reg = <0x40031000 0x1000>;
137                                 clocks = <&clks VF610_CLK_SAI2>;
138                                 clock-names = "sai";
139                                 dma-names = "tx", "rx";
140                                 dmas = <&edma0 0 21>,
141                                         <&edma0 0 20>;
142                                 status = "disabled";
143                         };
144
145                         pit: pit@40037000 {
146                                 compatible = "fsl,vf610-pit";
147                                 reg = <0x40037000 0x1000>;
148                                 clocks = <&clks VF610_CLK_PIT>;
149                                 clock-names = "pit";
150                         };
151
152                         pwm0: pwm@40038000 {
153                                 compatible = "fsl,vf610-ftm-pwm";
154                                 #pwm-cells = <3>;
155                                 reg = <0x40038000 0x1000>;
156                                 clock-names = "ftm_sys", "ftm_ext",
157                                               "ftm_fix", "ftm_cnt_clk_en";
158                                 clocks = <&clks VF610_CLK_FTM0>,
159                                         <&clks VF610_CLK_FTM0_EXT_SEL>,
160                                         <&clks VF610_CLK_FTM0_FIX_SEL>,
161                                         <&clks VF610_CLK_FTM0_EXT_FIX_EN>;
162                                 status = "disabled";
163                         };
164
165                         pwm1: pwm@40039000 {
166                                 compatible = "fsl,vf610-ftm-pwm";
167                                 #pwm-cells = <3>;
168                                 reg = <0x40039000 0x1000>;
169                                 clock-names = "ftm_sys", "ftm_ext",
170                                               "ftm_fix", "ftm_cnt_clk_en";
171                                 clocks = <&clks VF610_CLK_FTM1>,
172                                         <&clks VF610_CLK_FTM1_EXT_SEL>,
173                                         <&clks VF610_CLK_FTM1_FIX_SEL>,
174                                         <&clks VF610_CLK_FTM1_EXT_FIX_EN>;
175                                 status = "disabled";
176                         };
177
178                         adc0: adc@4003b000 {
179                                 compatible = "fsl,vf610-adc";
180                                 reg = <0x4003b000 0x1000>;
181                                 clocks = <&clks VF610_CLK_ADC0>;
182                                 clock-names = "adc";
183                                 status = "disabled";
184                         };
185
186                         wdog@4003e000 {
187                                 compatible = "fsl,vf610-wdt", "fsl,imx21-wdt";
188                                 reg = <0x4003e000 0x1000>;
189                                 clocks = <&clks VF610_CLK_WDT>;
190                                 clock-names = "wdog";
191                                 status = "disabled";
192                         };
193
194                         qspi0: quadspi@40044000 {
195                                 #address-cells = <1>;
196                                 #size-cells = <0>;
197                                 compatible = "fsl,vf610-qspi";
198                                 reg = <0x40044000 0x1000>;
199                                 clocks = <&clks VF610_CLK_QSPI0_EN>,
200                                         <&clks VF610_CLK_QSPI0>;
201                                 clock-names = "qspi_en", "qspi";
202                                 status = "disabled";
203                         };
204
205                         iomuxc: iomuxc@40048000 {
206                                 compatible = "fsl,vf610-iomuxc";
207                                 reg = <0x40048000 0x1000>;
208                                 #gpio-range-cells = <3>;
209                         };
210
211                         gpio1: gpio@40049000 {
212                                 compatible = "fsl,vf610-gpio";
213                                 reg = <0x40049000 0x1000 0x400ff000 0x40>;
214                                 gpio-controller;
215                                 #gpio-cells = <2>;
216                                 interrupt-controller;
217                                 #interrupt-cells = <2>;
218                                 gpio-ranges = <&iomuxc 0 0 32>;
219                         };
220
221                         gpio2: gpio@4004a000 {
222                                 compatible = "fsl,vf610-gpio";
223                                 reg = <0x4004a000 0x1000 0x400ff040 0x40>;
224                                 gpio-controller;
225                                 #gpio-cells = <2>;
226                                 interrupt-controller;
227                                 #interrupt-cells = <2>;
228                                 gpio-ranges = <&iomuxc 0 32 32>;
229                         };
230
231                         gpio3: gpio@4004b000 {
232                                 compatible = "fsl,vf610-gpio";
233                                 reg = <0x4004b000 0x1000 0x400ff080 0x40>;
234                                 gpio-controller;
235                                 #gpio-cells = <2>;
236                                 interrupt-controller;
237                                 #interrupt-cells = <2>;
238                                 gpio-ranges = <&iomuxc 0 64 32>;
239                         };
240
241                         gpio4: gpio@4004c000 {
242                                 compatible = "fsl,vf610-gpio";
243                                 reg = <0x4004c000 0x1000 0x400ff0c0 0x40>;
244                                 gpio-controller;
245                                 #gpio-cells = <2>;
246                                 interrupt-controller;
247                                 #interrupt-cells = <2>;
248                                 gpio-ranges = <&iomuxc 0 96 32>;
249                         };
250
251                         gpio5: gpio@4004d000 {
252                                 compatible = "fsl,vf610-gpio";
253                                 reg = <0x4004d000 0x1000 0x400ff100 0x40>;
254                                 gpio-controller;
255                                 #gpio-cells = <2>;
256                                 interrupt-controller;
257                                 #interrupt-cells = <2>;
258                                 gpio-ranges = <&iomuxc 0 128 7>;
259                         };
260
261                         anatop: anatop@40050000 {
262                                 compatible = "fsl,vf610-anatop", "syscon";
263                                 reg = <0x40050000 0x400>;
264                         };
265
266                         usbphy0: usbphy@40050800 {
267                                 compatible = "fsl,vf610-usbphy";
268                                 reg = <0x40050800 0x400>;
269                                 clocks = <&clks VF610_CLK_USBPHY0>;
270                                 fsl,anatop = <&anatop>;
271                                 status = "disabled";
272                         };
273
274                         usbphy1: usbphy@40050c00 {
275                                 compatible = "fsl,vf610-usbphy";
276                                 reg = <0x40050c00 0x400>;
277                                 clocks = <&clks VF610_CLK_USBPHY1>;
278                                 fsl,anatop = <&anatop>;
279                                 status = "disabled";
280                         };
281
282                         i2c0: i2c@40066000 {
283                                 #address-cells = <1>;
284                                 #size-cells = <0>;
285                                 compatible = "fsl,vf610-i2c";
286                                 reg = <0x40066000 0x1000>;
287                                 clocks = <&clks VF610_CLK_I2C0>;
288                                 clock-names = "ipg";
289                                 dmas = <&edma0 0 50>,
290                                         <&edma0 0 51>;
291                                 dma-names = "rx","tx";
292                                 status = "disabled";
293                         };
294
295                         clks: ccm@4006b000 {
296                                 compatible = "fsl,vf610-ccm";
297                                 reg = <0x4006b000 0x1000>;
298                                 clocks = <&sxosc>, <&fxosc>;
299                                 clock-names = "sxosc", "fxosc";
300                                 #clock-cells = <1>;
301                         };
302
303                         usbdev0: usb@40034000 {
304                                 compatible = "fsl,vf610-usb", "fsl,imx27-usb";
305                                 reg = <0x40034000 0x800>;
306                                 clocks = <&clks VF610_CLK_USBC0>;
307                                 fsl,usbphy = <&usbphy0>;
308                                 fsl,usbmisc = <&usbmisc0 0>;
309                                 dr_mode = "peripheral";
310                                 status = "disabled";
311                         };
312
313                         usbmisc0: usb@40034800 {
314                                 #index-cells = <1>;
315                                 compatible = "fsl,vf610-usbmisc";
316                                 reg = <0x40034800 0x200>;
317                                 clocks = <&clks VF610_CLK_USBC0>;
318                                 status = "disabled";
319                         };
320                 };
321
322                 aips1: aips-bus@40080000 {
323                         compatible = "fsl,aips-bus", "simple-bus";
324                         #address-cells = <1>;
325                         #size-cells = <1>;
326                         ranges;
327
328                         edma1: dma-controller@40098000 {
329                                 #dma-cells = <2>;
330                                 compatible = "fsl,vf610-edma";
331                                 reg = <0x40098000 0x2000>,
332                                         <0x400a1000 0x1000>,
333                                         <0x400a2000 0x1000>;
334                                 dma-channels = <32>;
335                                 clock-names = "dmamux0", "dmamux1";
336                                 clocks = <&clks VF610_CLK_DMAMUX2>,
337                                         <&clks VF610_CLK_DMAMUX3>;
338                                 status = "disabled";
339                         };
340
341                         uart4: serial@400a9000 {
342                                 compatible = "fsl,vf610-lpuart";
343                                 reg = <0x400a9000 0x1000>;
344                                 clocks = <&clks VF610_CLK_UART4>;
345                                 clock-names = "ipg";
346                                 status = "disabled";
347                         };
348
349                         uart5: serial@400aa000 {
350                                 compatible = "fsl,vf610-lpuart";
351                                 reg = <0x400aa000 0x1000>;
352                                 clocks = <&clks VF610_CLK_UART5>;
353                                 clock-names = "ipg";
354                                 status = "disabled";
355                         };
356
357                         adc1: adc@400bb000 {
358                                 compatible = "fsl,vf610-adc";
359                                 reg = <0x400bb000 0x1000>;
360                                 clocks = <&clks VF610_CLK_ADC1>;
361                                 clock-names = "adc";
362                                 status = "disabled";
363                         };
364
365                         esdhc1: esdhc@400b2000 {
366                                 compatible = "fsl,imx53-esdhc";
367                                 reg = <0x400b2000 0x1000>;
368                                 clocks = <&clks VF610_CLK_IPG_BUS>,
369                                         <&clks VF610_CLK_PLATFORM_BUS>,
370                                         <&clks VF610_CLK_ESDHC1>;
371                                 clock-names = "ipg", "ahb", "per";
372                                 status = "disabled";
373                         };
374
375                         usbh1: usb@400b4000 {
376                                 compatible = "fsl,vf610-usb", "fsl,imx27-usb";
377                                 reg = <0x400b4000 0x800>;
378                                 clocks = <&clks VF610_CLK_USBC1>;
379                                 fsl,usbphy = <&usbphy1>;
380                                 fsl,usbmisc = <&usbmisc1 0>;
381                                 dr_mode = "host";
382                                 status = "disabled";
383                         };
384
385                         usbmisc1: usb@400b4800 {
386                                 #index-cells = <1>;
387                                 compatible = "fsl,vf610-usbmisc";
388                                 reg = <0x400b4800 0x200>;
389                                 clocks = <&clks VF610_CLK_USBC1>;
390                                 status = "disabled";
391                         };
392
393                         ftm: ftm@400b8000 {
394                                 compatible = "fsl,ftm-timer";
395                                 reg = <0x400b8000 0x1000 0x400b9000 0x1000>;
396                                 clock-names = "ftm-evt", "ftm-src",
397                                         "ftm-evt-counter-en", "ftm-src-counter-en";
398                                 clocks = <&clks VF610_CLK_FTM2>,
399                                         <&clks VF610_CLK_FTM3>,
400                                         <&clks VF610_CLK_FTM2_EXT_FIX_EN>,
401                                         <&clks VF610_CLK_FTM3_EXT_FIX_EN>;
402                                 status = "disabled";
403                         };
404
405                         fec0: ethernet@400d0000 {
406                                 compatible = "fsl,mvf600-fec";
407                                 reg = <0x400d0000 0x1000>;
408                                 clocks = <&clks VF610_CLK_ENET0>,
409                                         <&clks VF610_CLK_ENET0>,
410                                         <&clks VF610_CLK_ENET>;
411                                 clock-names = "ipg", "ahb", "ptp";
412                                 status = "disabled";
413                         };
414
415                         fec1: ethernet@400d1000 {
416                                 compatible = "fsl,mvf600-fec";
417                                 reg = <0x400d1000 0x1000>;
418                                 clocks = <&clks VF610_CLK_ENET1>,
419                                         <&clks VF610_CLK_ENET1>,
420                                         <&clks VF610_CLK_ENET>;
421                                 clock-names = "ipg", "ahb", "ptp";
422                                 status = "disabled";
423                         };
424
425                         can1: flexcan@400d4000 {
426                                 compatible = "fsl,vf610-flexcan";
427                                 reg = <0x400d4000 0x4000>;
428                                 clocks = <&clks VF610_CLK_FLEXCAN1>,
429                                          <&clks VF610_CLK_FLEXCAN1>;
430                                 clock-names = "ipg", "per";
431                                 status = "disabled";
432                         };
433
434                 };
435         };
436 };