Add the rt linux 4.1.3-rt3 as base
[kvmfornfv.git] / kernel / 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 #include <dt-bindings/gpio/gpio.h>
14
15 / {
16         aliases {
17                 can0 = &can0;
18                 can1 = &can1;
19                 serial0 = &uart0;
20                 serial1 = &uart1;
21                 serial2 = &uart2;
22                 serial3 = &uart3;
23                 serial4 = &uart4;
24                 serial5 = &uart5;
25                 gpio0 = &gpio0;
26                 gpio1 = &gpio1;
27                 gpio2 = &gpio2;
28                 gpio3 = &gpio3;
29                 gpio4 = &gpio4;
30                 usbphy0 = &usbphy0;
31                 usbphy1 = &usbphy1;
32         };
33
34         fxosc: fxosc {
35                 compatible = "fixed-clock";
36                 #clock-cells = <0>;
37                 clock-frequency = <24000000>;
38         };
39
40         sxosc: sxosc {
41                 compatible = "fixed-clock";
42                 #clock-cells = <0>;
43                 clock-frequency = <32768>;
44         };
45
46         reboot: syscon-reboot {
47                 compatible = "syscon-reboot";
48                 regmap = <&src>;
49                 offset = <0x0>;
50                 mask = <0x1000>;
51         };
52
53         soc {
54                 #address-cells = <1>;
55                 #size-cells = <1>;
56                 compatible = "simple-bus";
57                 interrupt-parent = <&mscm_ir>;
58                 ranges;
59
60                 aips0: aips-bus@40000000 {
61                         compatible = "fsl,aips-bus", "simple-bus";
62                         #address-cells = <1>;
63                         #size-cells = <1>;
64                         ranges;
65
66                         mscm_cpucfg: cpucfg@40001000 {
67                                 compatible = "fsl,vf610-mscm-cpucfg", "syscon";
68                                 reg = <0x40001000 0x800>;
69                         };
70
71                         mscm_ir: interrupt-controller@40001800 {
72                                 compatible = "fsl,vf610-mscm-ir";
73                                 reg = <0x40001800 0x400>;
74                                 fsl,cpucfg = <&mscm_cpucfg>;
75                                 interrupt-controller;
76                                 #interrupt-cells = <2>;
77                         };
78
79                         edma0: dma-controller@40018000 {
80                                 #dma-cells = <2>;
81                                 compatible = "fsl,vf610-edma";
82                                 reg = <0x40018000 0x2000>,
83                                         <0x40024000 0x1000>,
84                                         <0x40025000 0x1000>;
85                                 dma-channels = <32>;
86                                 interrupts = <8 IRQ_TYPE_LEVEL_HIGH>,
87                                                 <9 IRQ_TYPE_LEVEL_HIGH>;
88                                 interrupt-names = "edma-tx", "edma-err";
89                                 clock-names = "dmamux0", "dmamux1";
90                                 clocks = <&clks VF610_CLK_DMAMUX0>,
91                                         <&clks VF610_CLK_DMAMUX1>;
92                                 status = "disabled";
93                         };
94
95                         can0: flexcan@40020000 {
96                                 compatible = "fsl,vf610-flexcan";
97                                 reg = <0x40020000 0x4000>;
98                                 interrupts = <58 IRQ_TYPE_LEVEL_HIGH>;
99                                 clocks = <&clks VF610_CLK_FLEXCAN0>,
100                                          <&clks VF610_CLK_FLEXCAN0>;
101                                 clock-names = "ipg", "per";
102                                 status = "disabled";
103                         };
104
105                         uart0: serial@40027000 {
106                                 compatible = "fsl,vf610-lpuart";
107                                 reg = <0x40027000 0x1000>;
108                                 interrupts = <61 IRQ_TYPE_LEVEL_HIGH>;
109                                 clocks = <&clks VF610_CLK_UART0>;
110                                 clock-names = "ipg";
111                                 dmas = <&edma0 0 2>,
112                                         <&edma0 0 3>;
113                                 dma-names = "rx","tx";
114                                 status = "disabled";
115                         };
116
117                         uart1: serial@40028000 {
118                                 compatible = "fsl,vf610-lpuart";
119                                 reg = <0x40028000 0x1000>;
120                                 interrupts = <62 IRQ_TYPE_LEVEL_HIGH>;
121                                 clocks = <&clks VF610_CLK_UART1>;
122                                 clock-names = "ipg";
123                                 dmas = <&edma0 0 4>,
124                                         <&edma0 0 5>;
125                                 dma-names = "rx","tx";
126                                 status = "disabled";
127                         };
128
129                         uart2: serial@40029000 {
130                                 compatible = "fsl,vf610-lpuart";
131                                 reg = <0x40029000 0x1000>;
132                                 interrupts = <63 IRQ_TYPE_LEVEL_HIGH>;
133                                 clocks = <&clks VF610_CLK_UART2>;
134                                 clock-names = "ipg";
135                                 dmas = <&edma0 0 6>,
136                                         <&edma0 0 7>;
137                                 dma-names = "rx","tx";
138                                 status = "disabled";
139                         };
140
141                         uart3: serial@4002a000 {
142                                 compatible = "fsl,vf610-lpuart";
143                                 reg = <0x4002a000 0x1000>;
144                                 interrupts = <64 IRQ_TYPE_LEVEL_HIGH>;
145                                 clocks = <&clks VF610_CLK_UART3>;
146                                 clock-names = "ipg";
147                                 dmas = <&edma0 0 8>,
148                                         <&edma0 0 9>;
149                                 dma-names = "rx","tx";
150                                 status = "disabled";
151                         };
152
153                         dspi0: dspi0@4002c000 {
154                                 #address-cells = <1>;
155                                 #size-cells = <0>;
156                                 compatible = "fsl,vf610-dspi";
157                                 reg = <0x4002c000 0x1000>;
158                                 interrupts = <67 IRQ_TYPE_LEVEL_HIGH>;
159                                 clocks = <&clks VF610_CLK_DSPI0>;
160                                 clock-names = "dspi";
161                                 spi-num-chipselects = <5>;
162                                 status = "disabled";
163                         };
164
165                         dspi1: dspi1@4002d000 {
166                                 #address-cells = <1>;
167                                 #size-cells = <0>;
168                                 compatible = "fsl,vf610-dspi";
169                                 reg = <0x4002d000 0x1000>;
170                                 interrupts = <68 IRQ_TYPE_LEVEL_HIGH>;
171                                 clocks = <&clks VF610_CLK_DSPI1>;
172                                 clock-names = "dspi";
173                                 spi-num-chipselects = <5>;
174                                 status = "disabled";
175                         };
176
177                         sai2: sai@40031000 {
178                                 compatible = "fsl,vf610-sai";
179                                 reg = <0x40031000 0x1000>;
180                                 interrupts = <86 IRQ_TYPE_LEVEL_HIGH>;
181                                 clocks = <&clks VF610_CLK_SAI2>;
182                                 clock-names = "sai";
183                                 dma-names = "tx", "rx";
184                                 dmas = <&edma0 0 21>,
185                                         <&edma0 0 20>;
186                                 status = "disabled";
187                         };
188
189                         pit: pit@40037000 {
190                                 compatible = "fsl,vf610-pit";
191                                 reg = <0x40037000 0x1000>;
192                                 interrupts = <39 IRQ_TYPE_LEVEL_HIGH>;
193                                 clocks = <&clks VF610_CLK_PIT>;
194                                 clock-names = "pit";
195                         };
196
197                         pwm0: pwm@40038000 {
198                                 compatible = "fsl,vf610-ftm-pwm";
199                                 #pwm-cells = <3>;
200                                 reg = <0x40038000 0x1000>;
201                                 clock-names = "ftm_sys", "ftm_ext",
202                                               "ftm_fix", "ftm_cnt_clk_en";
203                                 clocks = <&clks VF610_CLK_FTM0>,
204                                         <&clks VF610_CLK_FTM0_EXT_SEL>,
205                                         <&clks VF610_CLK_FTM0_FIX_SEL>,
206                                         <&clks VF610_CLK_FTM0_EXT_FIX_EN>;
207                                 status = "disabled";
208                         };
209
210                         pwm1: pwm@40039000 {
211                                 compatible = "fsl,vf610-ftm-pwm";
212                                 #pwm-cells = <3>;
213                                 reg = <0x40039000 0x1000>;
214                                 clock-names = "ftm_sys", "ftm_ext",
215                                               "ftm_fix", "ftm_cnt_clk_en";
216                                 clocks = <&clks VF610_CLK_FTM1>,
217                                         <&clks VF610_CLK_FTM1_EXT_SEL>,
218                                         <&clks VF610_CLK_FTM1_FIX_SEL>,
219                                         <&clks VF610_CLK_FTM1_EXT_FIX_EN>;
220                                 status = "disabled";
221                         };
222
223                         adc0: adc@4003b000 {
224                                 compatible = "fsl,vf610-adc";
225                                 reg = <0x4003b000 0x1000>;
226                                 interrupts = <53 IRQ_TYPE_LEVEL_HIGH>;
227                                 clocks = <&clks VF610_CLK_ADC0>;
228                                 clock-names = "adc";
229                                 status = "disabled";
230                         };
231
232                         wdoga5: wdog@4003e000 {
233                                 compatible = "fsl,vf610-wdt", "fsl,imx21-wdt";
234                                 reg = <0x4003e000 0x1000>;
235                                 interrupts = <20 IRQ_TYPE_LEVEL_HIGH>;
236                                 clocks = <&clks VF610_CLK_WDT>;
237                                 clock-names = "wdog";
238                                 status = "disabled";
239                         };
240
241                         qspi0: quadspi@40044000 {
242                                 #address-cells = <1>;
243                                 #size-cells = <0>;
244                                 compatible = "fsl,vf610-qspi";
245                                 reg = <0x40044000 0x1000>;
246                                 interrupts = <24 IRQ_TYPE_LEVEL_HIGH>;
247                                 clocks = <&clks VF610_CLK_QSPI0_EN>,
248                                         <&clks VF610_CLK_QSPI0>;
249                                 clock-names = "qspi_en", "qspi";
250                                 status = "disabled";
251                         };
252
253                         iomuxc: iomuxc@40048000 {
254                                 compatible = "fsl,vf610-iomuxc";
255                                 reg = <0x40048000 0x1000>;
256                         };
257
258                         gpio0: gpio@40049000 {
259                                 compatible = "fsl,vf610-gpio";
260                                 reg = <0x40049000 0x1000 0x400ff000 0x40>;
261                                 gpio-controller;
262                                 #gpio-cells = <2>;
263                                 interrupts = <107 IRQ_TYPE_LEVEL_HIGH>;
264                                 interrupt-controller;
265                                 #interrupt-cells = <2>;
266                                 gpio-ranges = <&iomuxc 0 0 32>;
267                         };
268
269                         gpio1: gpio@4004a000 {
270                                 compatible = "fsl,vf610-gpio";
271                                 reg = <0x4004a000 0x1000 0x400ff040 0x40>;
272                                 gpio-controller;
273                                 #gpio-cells = <2>;
274                                 interrupts = <108 IRQ_TYPE_LEVEL_HIGH>;
275                                 interrupt-controller;
276                                 #interrupt-cells = <2>;
277                                 gpio-ranges = <&iomuxc 0 32 32>;
278                         };
279
280                         gpio2: gpio@4004b000 {
281                                 compatible = "fsl,vf610-gpio";
282                                 reg = <0x4004b000 0x1000 0x400ff080 0x40>;
283                                 gpio-controller;
284                                 #gpio-cells = <2>;
285                                 interrupts = <109 IRQ_TYPE_LEVEL_HIGH>;
286                                 interrupt-controller;
287                                 #interrupt-cells = <2>;
288                                 gpio-ranges = <&iomuxc 0 64 32>;
289                         };
290
291                         gpio3: gpio@4004c000 {
292                                 compatible = "fsl,vf610-gpio";
293                                 reg = <0x4004c000 0x1000 0x400ff0c0 0x40>;
294                                 gpio-controller;
295                                 #gpio-cells = <2>;
296                                 interrupts = <110 IRQ_TYPE_LEVEL_HIGH>;
297                                 interrupt-controller;
298                                 #interrupt-cells = <2>;
299                                 gpio-ranges = <&iomuxc 0 96 32>;
300                         };
301
302                         gpio4: gpio@4004d000 {
303                                 compatible = "fsl,vf610-gpio";
304                                 reg = <0x4004d000 0x1000 0x400ff100 0x40>;
305                                 gpio-controller;
306                                 #gpio-cells = <2>;
307                                 interrupts = <111 IRQ_TYPE_LEVEL_HIGH>;
308                                 interrupt-controller;
309                                 #interrupt-cells = <2>;
310                                 gpio-ranges = <&iomuxc 0 128 7>;
311                         };
312
313                         anatop: anatop@40050000 {
314                                 compatible = "fsl,vf610-anatop", "syscon";
315                                 reg = <0x40050000 0x400>;
316                         };
317
318                         usbphy0: usbphy@40050800 {
319                                 compatible = "fsl,vf610-usbphy";
320                                 reg = <0x40050800 0x400>;
321                                 interrupts = <50 IRQ_TYPE_LEVEL_HIGH>;
322                                 clocks = <&clks VF610_CLK_USBPHY0>;
323                                 fsl,anatop = <&anatop>;
324                                 status = "disabled";
325                         };
326
327                         usbphy1: usbphy@40050c00 {
328                                 compatible = "fsl,vf610-usbphy";
329                                 reg = <0x40050c00 0x400>;
330                                 interrupts = <51 IRQ_TYPE_LEVEL_HIGH>;
331                                 clocks = <&clks VF610_CLK_USBPHY1>;
332                                 fsl,anatop = <&anatop>;
333                                 status = "disabled";
334                         };
335
336                         i2c0: i2c@40066000 {
337                                 #address-cells = <1>;
338                                 #size-cells = <0>;
339                                 compatible = "fsl,vf610-i2c";
340                                 reg = <0x40066000 0x1000>;
341                                 interrupts = <71 IRQ_TYPE_LEVEL_HIGH>;
342                                 clocks = <&clks VF610_CLK_I2C0>;
343                                 clock-names = "ipg";
344                                 dmas = <&edma0 0 50>,
345                                         <&edma0 0 51>;
346                                 dma-names = "rx","tx";
347                                 status = "disabled";
348                         };
349
350                         clks: ccm@4006b000 {
351                                 compatible = "fsl,vf610-ccm";
352                                 reg = <0x4006b000 0x1000>;
353                                 clocks = <&sxosc>, <&fxosc>;
354                                 clock-names = "sxosc", "fxosc";
355                                 #clock-cells = <1>;
356                         };
357
358                         usbdev0: usb@40034000 {
359                                 compatible = "fsl,vf610-usb", "fsl,imx27-usb";
360                                 reg = <0x40034000 0x800>;
361                                 interrupts = <75 IRQ_TYPE_LEVEL_HIGH>;
362                                 clocks = <&clks VF610_CLK_USBC0>;
363                                 fsl,usbphy = <&usbphy0>;
364                                 fsl,usbmisc = <&usbmisc0 0>;
365                                 dr_mode = "peripheral";
366                                 status = "disabled";
367                         };
368
369                         usbmisc0: usb@40034800 {
370                                 #index-cells = <1>;
371                                 compatible = "fsl,vf610-usbmisc";
372                                 reg = <0x40034800 0x200>;
373                                 clocks = <&clks VF610_CLK_USBC0>;
374                                 status = "disabled";
375                         };
376
377                         src: src@4006e000 {
378                                 compatible = "fsl,vf610-src", "syscon";
379                                 reg = <0x4006e000 0x1000>;
380                                 interrupts = <96 IRQ_TYPE_LEVEL_HIGH>;
381                         };
382                 };
383
384                 aips1: aips-bus@40080000 {
385                         compatible = "fsl,aips-bus", "simple-bus";
386                         #address-cells = <1>;
387                         #size-cells = <1>;
388                         ranges;
389
390                         edma1: dma-controller@40098000 {
391                                 #dma-cells = <2>;
392                                 compatible = "fsl,vf610-edma";
393                                 reg = <0x40098000 0x2000>,
394                                         <0x400a1000 0x1000>,
395                                         <0x400a2000 0x1000>;
396                                 dma-channels = <32>;
397                                 interrupts = <10 IRQ_TYPE_LEVEL_HIGH>,
398                                                 <11 IRQ_TYPE_LEVEL_HIGH>;
399                                 interrupt-names = "edma-tx", "edma-err";
400                                 clock-names = "dmamux0", "dmamux1";
401                                 clocks = <&clks VF610_CLK_DMAMUX2>,
402                                         <&clks VF610_CLK_DMAMUX3>;
403                                 status = "disabled";
404                         };
405
406                         snvs0: snvs@400a7000 {
407                             compatible = "fsl,sec-v4.0-mon", "simple-bus";
408                                 #address-cells = <1>;
409                                 #size-cells = <1>;
410                                 ranges = <0 0x400a7000 0x2000>;
411
412                                 snvsrtc: snvs-rtc-lp@34 {
413                                         compatible = "fsl,sec-v4.0-mon-rtc-lp";
414                                         reg = <0x34 0x58>;
415                                         interrupts = <100 IRQ_TYPE_LEVEL_HIGH>;
416                                         clocks = <&clks VF610_CLK_SNVS>;
417                                         clock-names = "snvs-rtc";
418                                 };
419                         };
420
421                         uart4: serial@400a9000 {
422                                 compatible = "fsl,vf610-lpuart";
423                                 reg = <0x400a9000 0x1000>;
424                                 interrupts = <65 IRQ_TYPE_LEVEL_HIGH>;
425                                 clocks = <&clks VF610_CLK_UART4>;
426                                 clock-names = "ipg";
427                                 status = "disabled";
428                         };
429
430                         uart5: serial@400aa000 {
431                                 compatible = "fsl,vf610-lpuart";
432                                 reg = <0x400aa000 0x1000>;
433                                 interrupts = <66 IRQ_TYPE_LEVEL_HIGH>;
434                                 clocks = <&clks VF610_CLK_UART5>;
435                                 clock-names = "ipg";
436                                 status = "disabled";
437                         };
438
439                         adc1: adc@400bb000 {
440                                 compatible = "fsl,vf610-adc";
441                                 reg = <0x400bb000 0x1000>;
442                                 interrupts = <54 IRQ_TYPE_LEVEL_HIGH>;
443                                 clocks = <&clks VF610_CLK_ADC1>;
444                                 clock-names = "adc";
445                                 status = "disabled";
446                         };
447
448                         esdhc1: esdhc@400b2000 {
449                                 compatible = "fsl,imx53-esdhc";
450                                 reg = <0x400b2000 0x1000>;
451                                 interrupts = <28 IRQ_TYPE_LEVEL_HIGH>;
452                                 clocks = <&clks VF610_CLK_IPG_BUS>,
453                                         <&clks VF610_CLK_PLATFORM_BUS>,
454                                         <&clks VF610_CLK_ESDHC1>;
455                                 clock-names = "ipg", "ahb", "per";
456                                 status = "disabled";
457                         };
458
459                         usbh1: usb@400b4000 {
460                                 compatible = "fsl,vf610-usb", "fsl,imx27-usb";
461                                 reg = <0x400b4000 0x800>;
462                                 interrupts = <76 IRQ_TYPE_LEVEL_HIGH>;
463                                 clocks = <&clks VF610_CLK_USBC1>;
464                                 fsl,usbphy = <&usbphy1>;
465                                 fsl,usbmisc = <&usbmisc1 0>;
466                                 dr_mode = "host";
467                                 status = "disabled";
468                         };
469
470                         usbmisc1: usb@400b4800 {
471                                 #index-cells = <1>;
472                                 compatible = "fsl,vf610-usbmisc";
473                                 reg = <0x400b4800 0x200>;
474                                 clocks = <&clks VF610_CLK_USBC1>;
475                                 status = "disabled";
476                         };
477
478                         ftm: ftm@400b8000 {
479                                 compatible = "fsl,ftm-timer";
480                                 reg = <0x400b8000 0x1000 0x400b9000 0x1000>;
481                                 interrupts = <44 IRQ_TYPE_LEVEL_HIGH>;
482                                 clock-names = "ftm-evt", "ftm-src",
483                                         "ftm-evt-counter-en", "ftm-src-counter-en";
484                                 clocks = <&clks VF610_CLK_FTM2>,
485                                         <&clks VF610_CLK_FTM3>,
486                                         <&clks VF610_CLK_FTM2_EXT_FIX_EN>,
487                                         <&clks VF610_CLK_FTM3_EXT_FIX_EN>;
488                                 status = "disabled";
489                         };
490
491                         fec0: ethernet@400d0000 {
492                                 compatible = "fsl,mvf600-fec";
493                                 reg = <0x400d0000 0x1000>;
494                                 interrupts = <78 IRQ_TYPE_LEVEL_HIGH>;
495                                 clocks = <&clks VF610_CLK_ENET0>,
496                                         <&clks VF610_CLK_ENET0>,
497                                         <&clks VF610_CLK_ENET>;
498                                 clock-names = "ipg", "ahb", "ptp";
499                                 status = "disabled";
500                         };
501
502                         fec1: ethernet@400d1000 {
503                                 compatible = "fsl,mvf600-fec";
504                                 reg = <0x400d1000 0x1000>;
505                                 interrupts = <79 IRQ_TYPE_LEVEL_HIGH>;
506                                 clocks = <&clks VF610_CLK_ENET1>,
507                                         <&clks VF610_CLK_ENET1>,
508                                         <&clks VF610_CLK_ENET>;
509                                 clock-names = "ipg", "ahb", "ptp";
510                                 status = "disabled";
511                         };
512
513                         can1: flexcan@400d4000 {
514                                 compatible = "fsl,vf610-flexcan";
515                                 reg = <0x400d4000 0x4000>;
516                                 interrupts = <59 IRQ_TYPE_LEVEL_HIGH>;
517                                 clocks = <&clks VF610_CLK_FLEXCAN1>,
518                                          <&clks VF610_CLK_FLEXCAN1>;
519                                 clock-names = "ipg", "per";
520                                 status = "disabled";
521                         };
522
523                 };
524         };
525 };