Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid
[sfrench/cifs-2.6.git] / arch / arm / boot / dts / vf610.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 "skeleton.dtsi"
11 #include "vf610-pinfunc.h"
12 #include <dt-bindings/clock/vf610-clock.h>
13 #include <dt-bindings/interrupt-controller/irq.h>
14
15 / {
16         aliases {
17                 serial0 = &uart0;
18                 serial1 = &uart1;
19                 serial2 = &uart2;
20                 serial3 = &uart3;
21                 serial4 = &uart4;
22                 serial5 = &uart5;
23                 gpio0 = &gpio1;
24                 gpio1 = &gpio2;
25                 gpio2 = &gpio3;
26                 gpio3 = &gpio4;
27                 gpio4 = &gpio5;
28         };
29
30         cpus {
31                 #address-cells = <1>;
32                 #size-cells = <0>;
33
34                 cpu@0 {
35                         compatible = "arm,cortex-a5";
36                         device_type = "cpu";
37                         reg = <0x0>;
38                         next-level-cache = <&L2>;
39                 };
40         };
41
42         clocks {
43                 #address-cells = <1>;
44                 #size-cells = <0>;
45
46                 sxosc {
47                         compatible = "fixed-clock";
48                         #clock-cells = <0>;
49                         clock-frequency = <32768>;
50                 };
51
52                 fxosc {
53                         compatible = "fixed-clock";
54                         #clock-cells = <0>;
55                         clock-frequency = <24000000>;
56                 };
57         };
58
59         soc {
60                 #address-cells = <1>;
61                 #size-cells = <1>;
62                 compatible = "simple-bus";
63                 interrupt-parent = <&intc>;
64                 ranges;
65
66                 aips0: aips-bus@40000000 {
67                         compatible = "fsl,aips-bus", "simple-bus";
68                         #address-cells = <1>;
69                         #size-cells = <1>;
70                         interrupt-parent = <&intc>;
71                         reg = <0x40000000 0x70000>;
72                         ranges;
73
74                         intc: interrupt-controller@40002000 {
75                                 compatible = "arm,cortex-a9-gic";
76                                 #interrupt-cells = <3>;
77                                 interrupt-controller;
78                                 reg = <0x40003000 0x1000>,
79                                       <0x40002100 0x100>;
80                         };
81
82                         L2: l2-cache@40006000 {
83                                 compatible = "arm,pl310-cache";
84                                 reg = <0x40006000 0x1000>;
85                                 cache-unified;
86                                 cache-level = <2>;
87                                 arm,data-latency = <1 1 1>;
88                                 arm,tag-latency = <2 2 2>;
89                         };
90
91                         edma0: dma-controller@40018000 {
92                                 #dma-cells = <2>;
93                                 compatible = "fsl,vf610-edma";
94                                 reg = <0x40018000 0x2000>,
95                                         <0x40024000 0x1000>,
96                                         <0x40025000 0x1000>;
97                                 interrupts = <0 8 IRQ_TYPE_LEVEL_HIGH>,
98                                                 <0 9 IRQ_TYPE_LEVEL_HIGH>;
99                                 interrupt-names = "edma-tx", "edma-err";
100                                 dma-channels = <32>;
101                                 clock-names = "dmamux0", "dmamux1";
102                                 clocks = <&clks VF610_CLK_DMAMUX0>,
103                                         <&clks VF610_CLK_DMAMUX1>;
104                         };
105
106                         uart0: serial@40027000 {
107                                 compatible = "fsl,vf610-lpuart";
108                                 reg = <0x40027000 0x1000>;
109                                 interrupts = <0 61 IRQ_TYPE_LEVEL_HIGH>;
110                                 clocks = <&clks VF610_CLK_UART0>;
111                                 clock-names = "ipg";
112                                 dmas = <&edma0 0 2>,
113                                         <&edma0 0 3>;
114                                 dma-names = "rx","tx";
115                                 status = "disabled";
116                         };
117
118                         uart1: serial@40028000 {
119                                 compatible = "fsl,vf610-lpuart";
120                                 reg = <0x40028000 0x1000>;
121                                 interrupts = <0 62 IRQ_TYPE_LEVEL_HIGH>;
122                                 clocks = <&clks VF610_CLK_UART1>;
123                                 clock-names = "ipg";
124                                 dmas = <&edma0 0 4>,
125                                         <&edma0 0 5>;
126                                 dma-names = "rx","tx";
127                                 status = "disabled";
128                         };
129
130                         uart2: serial@40029000 {
131                                 compatible = "fsl,vf610-lpuart";
132                                 reg = <0x40029000 0x1000>;
133                                 interrupts = <0 63 IRQ_TYPE_LEVEL_HIGH>;
134                                 clocks = <&clks VF610_CLK_UART2>;
135                                 clock-names = "ipg";
136                                 dmas = <&edma0 0 6>,
137                                         <&edma0 0 7>;
138                                 dma-names = "rx","tx";
139                                 status = "disabled";
140                         };
141
142                         uart3: serial@4002a000 {
143                                 compatible = "fsl,vf610-lpuart";
144                                 reg = <0x4002a000 0x1000>;
145                                 interrupts = <0 64 IRQ_TYPE_LEVEL_HIGH>;
146                                 clocks = <&clks VF610_CLK_UART3>;
147                                 clock-names = "ipg";
148                                 dmas = <&edma0 0 8>,
149                                         <&edma0 0 9>;
150                                 dma-names = "rx","tx";
151                                 status = "disabled";
152                         };
153
154                         dspi0: dspi0@4002c000 {
155                                 #address-cells = <1>;
156                                 #size-cells = <0>;
157                                 compatible = "fsl,vf610-dspi";
158                                 reg = <0x4002c000 0x1000>;
159                                 interrupts = <0 67 IRQ_TYPE_LEVEL_HIGH>;
160                                 clocks = <&clks VF610_CLK_DSPI0>;
161                                 clock-names = "dspi";
162                                 spi-num-chipselects = <5>;
163                                 status = "disabled";
164                         };
165
166                         sai2: sai@40031000 {
167                                 compatible = "fsl,vf610-sai";
168                                 reg = <0x40031000 0x1000>;
169                                 interrupts = <0 86 IRQ_TYPE_LEVEL_HIGH>;
170                                 clocks = <&clks VF610_CLK_SAI2>;
171                                 clock-names = "sai";
172                                 dma-names = "tx", "rx";
173                                 dmas = <&edma0 0 21>,
174                                         <&edma0 0 20>;
175                                 status = "disabled";
176                         };
177
178                         pit: pit@40037000 {
179                                 compatible = "fsl,vf610-pit";
180                                 reg = <0x40037000 0x1000>;
181                                 interrupts = <0 39 IRQ_TYPE_LEVEL_HIGH>;
182                                 clocks = <&clks VF610_CLK_PIT>;
183                                 clock-names = "pit";
184                         };
185
186                         pwm0: pwm@40038000 {
187                                 compatible = "fsl,vf610-ftm-pwm";
188                                 #pwm-cells = <3>;
189                                 reg = <0x40038000 0x1000>;
190                                 clock-names = "ftm_sys", "ftm_ext",
191                                               "ftm_fix", "ftm_cnt_clk_en";
192                                 clocks = <&clks VF610_CLK_FTM0>,
193                                         <&clks VF610_CLK_FTM0_EXT_SEL>,
194                                         <&clks VF610_CLK_FTM0_FIX_SEL>,
195                                         <&clks VF610_CLK_FTM0_EXT_FIX_EN>;
196                                 status = "disabled";
197                         };
198
199                         adc0: adc@4003b000 {
200                                 compatible = "fsl,vf610-adc";
201                                 reg = <0x4003b000 0x1000>;
202                                 interrupts = <0 53 0x04>;
203                                 clocks = <&clks VF610_CLK_ADC0>;
204                                 clock-names = "adc";
205                                 status = "disabled";
206                         };
207
208                         wdog@4003e000 {
209                                 compatible = "fsl,vf610-wdt", "fsl,imx21-wdt";
210                                 reg = <0x4003e000 0x1000>;
211                                 clocks = <&clks VF610_CLK_WDT>;
212                                 clock-names = "wdog";
213                         };
214
215                         qspi0: quadspi@40044000 {
216                                 #address-cells = <1>;
217                                 #size-cells = <0>;
218                                 compatible = "fsl,vf610-qspi";
219                                 reg = <0x40044000 0x1000>;
220                                 interrupts = <0 24 IRQ_TYPE_LEVEL_HIGH>;
221                                 clocks = <&clks VF610_CLK_QSPI0_EN>,
222                                         <&clks VF610_CLK_QSPI0>;
223                                 clock-names = "qspi_en", "qspi";
224                                 status = "disabled";
225                         };
226
227                         iomuxc: iomuxc@40048000 {
228                                 compatible = "fsl,vf610-iomuxc";
229                                 reg = <0x40048000 0x1000>;
230                                 #gpio-range-cells = <3>;
231                         };
232
233                         gpio1: gpio@40049000 {
234                                 compatible = "fsl,vf610-gpio";
235                                 reg = <0x40049000 0x1000 0x400ff000 0x40>;
236                                 interrupts = <0 107 IRQ_TYPE_LEVEL_HIGH>;
237                                 gpio-controller;
238                                 #gpio-cells = <2>;
239                                 interrupt-controller;
240                                 #interrupt-cells = <2>;
241                                 gpio-ranges = <&iomuxc 0 0 32>;
242                         };
243
244                         gpio2: gpio@4004a000 {
245                                 compatible = "fsl,vf610-gpio";
246                                 reg = <0x4004a000 0x1000 0x400ff040 0x40>;
247                                 interrupts = <0 108 IRQ_TYPE_LEVEL_HIGH>;
248                                 gpio-controller;
249                                 #gpio-cells = <2>;
250                                 interrupt-controller;
251                                 #interrupt-cells = <2>;
252                                 gpio-ranges = <&iomuxc 0 32 32>;
253                         };
254
255                         gpio3: gpio@4004b000 {
256                                 compatible = "fsl,vf610-gpio";
257                                 reg = <0x4004b000 0x1000 0x400ff080 0x40>;
258                                 interrupts = <0 109 IRQ_TYPE_LEVEL_HIGH>;
259                                 gpio-controller;
260                                 #gpio-cells = <2>;
261                                 interrupt-controller;
262                                 #interrupt-cells = <2>;
263                                 gpio-ranges = <&iomuxc 0 64 32>;
264                         };
265
266                         gpio4: gpio@4004c000 {
267                                 compatible = "fsl,vf610-gpio";
268                                 reg = <0x4004c000 0x1000 0x400ff0c0 0x40>;
269                                 interrupts = <0 110 IRQ_TYPE_LEVEL_HIGH>;
270                                 gpio-controller;
271                                 #gpio-cells = <2>;
272                                 interrupt-controller;
273                                 #interrupt-cells = <2>;
274                                 gpio-ranges = <&iomuxc 0 96 32>;
275                         };
276
277                         gpio5: gpio@4004d000 {
278                                 compatible = "fsl,vf610-gpio";
279                                 reg = <0x4004d000 0x1000 0x400ff100 0x40>;
280                                 interrupts = <0 111 IRQ_TYPE_LEVEL_HIGH>;
281                                 gpio-controller;
282                                 #gpio-cells = <2>;
283                                 interrupt-controller;
284                                 #interrupt-cells = <2>;
285                                 gpio-ranges = <&iomuxc 0 128 7>;
286                         };
287
288                         anatop@40050000 {
289                                 compatible = "fsl,vf610-anatop";
290                                 reg = <0x40050000 0x1000>;
291                         };
292
293                         i2c0: i2c@40066000 {
294                                 #address-cells = <1>;
295                                 #size-cells = <0>;
296                                 compatible = "fsl,vf610-i2c";
297                                 reg = <0x40066000 0x1000>;
298                                 interrupts =<0 71 IRQ_TYPE_LEVEL_HIGH>;
299                                 clocks = <&clks VF610_CLK_I2C0>;
300                                 clock-names = "ipg";
301                                 dmas = <&edma0 0 50>,
302                                         <&edma0 0 51>;
303                                 dma-names = "rx","tx";
304                                 status = "disabled";
305                         };
306
307                         clks: ccm@4006b000 {
308                                 compatible = "fsl,vf610-ccm";
309                                 reg = <0x4006b000 0x1000>;
310                                 #clock-cells = <1>;
311                         };
312                 };
313
314                 aips1: aips-bus@40080000 {
315                         compatible = "fsl,aips-bus", "simple-bus";
316                         #address-cells = <1>;
317                         #size-cells = <1>;
318                         reg = <0x40080000 0x80000>;
319                         ranges;
320
321                         edma1: dma-controller@40098000 {
322                                 #dma-cells = <2>;
323                                 compatible = "fsl,vf610-edma";
324                                 reg = <0x40098000 0x2000>,
325                                         <0x400a1000 0x1000>,
326                                         <0x400a2000 0x1000>;
327                                 interrupts = <0 10 IRQ_TYPE_LEVEL_HIGH>,
328                                                 <0 11 IRQ_TYPE_LEVEL_HIGH>;
329                                 interrupt-names = "edma-tx", "edma-err";
330                                 dma-channels = <32>;
331                                 clock-names = "dmamux0", "dmamux1";
332                                 clocks = <&clks VF610_CLK_DMAMUX2>,
333                                         <&clks VF610_CLK_DMAMUX3>;
334                         };
335
336                         uart4: serial@400a9000 {
337                                 compatible = "fsl,vf610-lpuart";
338                                 reg = <0x400a9000 0x1000>;
339                                 interrupts = <0 65 IRQ_TYPE_LEVEL_HIGH>;
340                                 clocks = <&clks VF610_CLK_UART4>;
341                                 clock-names = "ipg";
342                                 status = "disabled";
343                         };
344
345                         uart5: serial@400aa000 {
346                                 compatible = "fsl,vf610-lpuart";
347                                 reg = <0x400aa000 0x1000>;
348                                 interrupts = <0 66 IRQ_TYPE_LEVEL_HIGH>;
349                                 clocks = <&clks VF610_CLK_UART5>;
350                                 clock-names = "ipg";
351                                 status = "disabled";
352                         };
353
354                         adc1: adc@400bb000 {
355                                 compatible = "fsl,vf610-adc";
356                                 reg = <0x400bb000 0x1000>;
357                                 interrupts = <0 54 0x04>;
358                                 clocks = <&clks VF610_CLK_ADC1>;
359                                 clock-names = "adc";
360                                 status = "disabled";
361                         };
362
363                         esdhc1: esdhc@400b2000 {
364                                 compatible = "fsl,imx53-esdhc";
365                                 reg = <0x400b2000 0x4000>;
366                                 interrupts = <0 28 0x04>;
367                                 clocks = <&clks VF610_CLK_IPG_BUS>,
368                                         <&clks VF610_CLK_PLATFORM_BUS>,
369                                         <&clks VF610_CLK_ESDHC1>;
370                                 clock-names = "ipg", "ahb", "per";
371                                 status = "disabled";
372                         };
373
374                         ftm: ftm@400b8000 {
375                                 compatible = "fsl,ftm-timer";
376                                 reg = <0x400b8000 0x1000 0x400b9000 0x1000>;
377                                 interrupts = <0 44 IRQ_TYPE_LEVEL_HIGH>;
378                                 clock-names = "ftm-evt", "ftm-src",
379                                         "ftm-evt-counter-en", "ftm-src-counter-en";
380                                 clocks = <&clks VF610_CLK_FTM2>,
381                                         <&clks VF610_CLK_FTM3>,
382                                         <&clks VF610_CLK_FTM2_EXT_FIX_EN>,
383                                         <&clks VF610_CLK_FTM3_EXT_FIX_EN>;
384                                 status = "disabled";
385                         };
386
387                         fec0: ethernet@400d0000 {
388                                 compatible = "fsl,mvf600-fec";
389                                 reg = <0x400d0000 0x1000>;
390                                 interrupts = <0 78 IRQ_TYPE_LEVEL_HIGH>;
391                                 clocks = <&clks VF610_CLK_ENET0>,
392                                         <&clks VF610_CLK_ENET0>,
393                                         <&clks VF610_CLK_ENET>;
394                                 clock-names = "ipg", "ahb", "ptp";
395                                 status = "disabled";
396                         };
397
398                         fec1: ethernet@400d1000 {
399                                 compatible = "fsl,mvf600-fec";
400                                 reg = <0x400d1000 0x1000>;
401                                 interrupts = <0 79 IRQ_TYPE_LEVEL_HIGH>;
402                                 clocks = <&clks VF610_CLK_ENET1>,
403                                         <&clks VF610_CLK_ENET1>,
404                                         <&clks VF610_CLK_ENET>;
405                                 clock-names = "ipg", "ahb", "ptp";
406                                 status = "disabled";
407                         };
408                 };
409         };
410 };