Add the rt linux 4.1.3-rt3 as base
[kvmfornfv.git] / kernel / arch / arm / boot / dts / socfpga_arria10.dtsi
1 /*
2  * Copyright Altera Corporation (C) 2014. All rights reserved.
3  *
4  * This program is free software; you can redistribute it and/or modify
5  * it under the terms and conditions of the GNU General Public License,
6  * version 2, as published by the Free Software Foundation.
7  *
8  * This program is distributed in the hope it will be useful, but WITHOUT
9  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
10  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
11  * more details.
12  *
13  * You should have received a copy of the GNU General Public License along with
14  * this program.  If not, see <http://www.gnu.org/licenses/>.
15  */
16
17 #include "skeleton.dtsi"
18 #include <dt-bindings/interrupt-controller/arm-gic.h>
19
20 / {
21         #address-cells = <1>;
22         #size-cells = <1>;
23
24         aliases {
25                 ethernet0 = &gmac0;
26                 ethernet1 = &gmac1;
27                 ethernet2 = &gmac2;
28                 serial0 = &uart0;
29                 serial1 = &uart1;
30                 timer0 = &timer0;
31                 timer1 = &timer1;
32                 timer2 = &timer2;
33                 timer3 = &timer3;
34         };
35
36         cpus {
37                 #address-cells = <1>;
38                 #size-cells = <0>;
39
40                 cpu@0 {
41                         compatible = "arm,cortex-a9";
42                         device_type = "cpu";
43                         reg = <0>;
44                         next-level-cache = <&L2>;
45                 };
46                 cpu@1 {
47                         compatible = "arm,cortex-a9";
48                         device_type = "cpu";
49                         reg = <1>;
50                         next-level-cache = <&L2>;
51                 };
52         };
53
54         intc: intc@ffffd000 {
55                 compatible = "arm,cortex-a9-gic";
56                 #interrupt-cells = <3>;
57                 interrupt-controller;
58                 reg = <0xffffd000 0x1000>,
59                       <0xffffc100 0x100>;
60         };
61
62         soc {
63                 #address-cells = <1>;
64                 #size-cells = <1>;
65                 compatible = "simple-bus";
66                 device_type = "soc";
67                 interrupt-parent = <&intc>;
68                 ranges;
69
70                 amba {
71                         compatible = "arm,amba-bus";
72                         #address-cells = <1>;
73                         #size-cells = <1>;
74                         ranges;
75
76                         pdma: pdma@ffda1000 {
77                                 compatible = "arm,pl330", "arm,primecell";
78                                 reg = <0xffda1000 0x1000>;
79                                 interrupts = <0 83 IRQ_TYPE_LEVEL_HIGH>,
80                                              <0 84 IRQ_TYPE_LEVEL_HIGH>,
81                                              <0 85 IRQ_TYPE_LEVEL_HIGH>,
82                                              <0 86 IRQ_TYPE_LEVEL_HIGH>,
83                                              <0 87 IRQ_TYPE_LEVEL_HIGH>,
84                                              <0 88 IRQ_TYPE_LEVEL_HIGH>,
85                                              <0 89 IRQ_TYPE_LEVEL_HIGH>,
86                                              <0 90 IRQ_TYPE_LEVEL_HIGH>;
87                                 #dma-cells = <1>;
88                                 #dma-channels = <8>;
89                                 #dma-requests = <32>;
90                         };
91                 };
92
93                 clkmgr@ffd04000 {
94                                 compatible = "altr,clk-mgr";
95                                 reg = <0xffd04000 0x1000>;
96
97                                 clocks {
98                                         #address-cells = <1>;
99                                         #size-cells = <0>;
100
101                                         osc1: osc1 {
102                                                 #clock-cells = <0>;
103                                                 compatible = "fixed-clock";
104                                         };
105
106                                         main_pll: main_pll {
107                                                 #address-cells = <1>;
108                                                 #size-cells = <0>;
109                                                 #clock-cells = <0>;
110                                                 compatible = "altr,socfpga-pll-clock";
111                                                 clocks = <&osc1>;
112                                         };
113
114                                         periph_pll: periph_pll {
115                                                 #address-cells = <1>;
116                                                 #size-cells = <0>;
117                                                 #clock-cells = <0>;
118                                                 compatible = "altr,socfpga-pll-clock";
119                                                 clocks = <&osc1>;
120                                         };
121                                 };
122                 };
123
124                 gmac0: ethernet@ff800000 {
125                         compatible = "altr,socfpga-stmmac", "snps,dwmac-3.72a", "snps,dwmac";
126                         reg = <0xff800000 0x2000>;
127                         interrupts = <0 92 IRQ_TYPE_LEVEL_HIGH>;
128                         interrupt-names = "macirq";
129                         /* Filled in by bootloader */
130                         mac-address = [00 00 00 00 00 00];
131                         status = "disabled";
132                 };
133
134                 gmac1: ethernet@ff802000 {
135                         compatible = "altr,socfpga-stmmac", "snps,dwmac-3.72a", "snps,dwmac";
136                         reg = <0xff802000 0x2000>;
137                         interrupts = <0 93 IRQ_TYPE_LEVEL_HIGH>;
138                         interrupt-names = "macirq";
139                         /* Filled in by bootloader */
140                         mac-address = [00 00 00 00 00 00];
141                         status = "disabled";
142                 };
143
144                 gmac2: ethernet@ff804000 {
145                         compatible = "altr,socfpga-stmmac", "snps,dwmac-3.72a", "snps,dwmac";
146                         reg = <0xff804000 0x2000>;
147                         interrupts = <0 94 IRQ_TYPE_LEVEL_HIGH>;
148                         interrupt-names = "macirq";
149                         /* Filled in by bootloader */
150                         mac-address = [00 00 00 00 00 00];
151                         status = "disabled";
152                 };
153
154                 gpio0: gpio@ffc02900 {
155                         #address-cells = <1>;
156                         #size-cells = <0>;
157                         compatible = "snps,dw-apb-gpio";
158                         reg = <0xffc02900 0x100>;
159                         status = "disabled";
160
161                         porta: gpio-controller@0 {
162                                 compatible = "snps,dw-apb-gpio-port";
163                                 gpio-controller;
164                                 #gpio-cells = <2>;
165                                 snps,nr-gpios = <29>;
166                                 reg = <0>;
167                                 interrupt-controller;
168                                 #interrupt-cells = <2>;
169                                 interrupts = <0 112 IRQ_TYPE_LEVEL_HIGH>;
170                         };
171                 };
172
173                 gpio1: gpio@ffc02a00 {
174                         #address-cells = <1>;
175                         #size-cells = <0>;
176                         compatible = "snps,dw-apb-gpio";
177                         reg = <0xffc02a00 0x100>;
178                         status = "disabled";
179
180                         portb: gpio-controller@0 {
181                                 compatible = "snps,dw-apb-gpio-port";
182                                 gpio-controller;
183                                 #gpio-cells = <2>;
184                                 snps,nr-gpios = <29>;
185                                 reg = <0>;
186                                 interrupt-controller;
187                                 #interrupt-cells = <2>;
188                                 interrupts = <0 113 IRQ_TYPE_LEVEL_HIGH>;
189                         };
190                 };
191
192                 gpio2: gpio@ffc02b00 {
193                         #address-cells = <1>;
194                         #size-cells = <0>;
195                         compatible = "snps,dw-apb-gpio";
196                         reg = <0xffc02b00 0x100>;
197                         status = "disabled";
198
199                         portc: gpio-controller@0 {
200                                 compatible = "snps,dw-apb-gpio-port";
201                                 gpio-controller;
202                                 #gpio-cells = <2>;
203                                 snps,nr-gpios = <27>;
204                                 reg = <0>;
205                                 interrupt-controller;
206                                 #interrupt-cells = <2>;
207                                 interrupts = <0 114 IRQ_TYPE_LEVEL_HIGH>;
208                         };
209                 };
210
211                 i2c0: i2c@ffc02200 {
212                         #address-cells = <1>;
213                         #size-cells = <0>;
214                         compatible = "snps,designware-i2c";
215                         reg = <0xffc02200 0x100>;
216                         interrupts = <0 105 IRQ_TYPE_LEVEL_HIGH>;
217                         status = "disabled";
218                 };
219
220                 i2c1: i2c@ffc02300 {
221                         #address-cells = <1>;
222                         #size-cells = <0>;
223                         compatible = "snps,designware-i2c";
224                         reg = <0xffc02300 0x100>;
225                         interrupts = <0 106 IRQ_TYPE_LEVEL_HIGH>;
226                         status = "disabled";
227                 };
228
229                 i2c2: i2c@ffc02400 {
230                         #address-cells = <1>;
231                         #size-cells = <0>;
232                         compatible = "snps,designware-i2c";
233                         reg = <0xffc02400 0x100>;
234                         interrupts = <0 107 IRQ_TYPE_LEVEL_HIGH>;
235                         status = "disabled";
236                 };
237
238                 i2c3: i2c@ffc02500 {
239                         #address-cells = <1>;
240                         #size-cells = <0>;
241                         compatible = "snps,designware-i2c";
242                         reg = <0xffc02500 0x100>;
243                         interrupts = <0 108 IRQ_TYPE_LEVEL_HIGH>;
244                         status = "disabled";
245                 };
246
247                 i2c4: i2c@ffc02600 {
248                         #address-cells = <1>;
249                         #size-cells = <0>;
250                         compatible = "snps,designware-i2c";
251                         reg = <0xffc02600 0x100>;
252                         interrupts = <0 109 IRQ_TYPE_LEVEL_HIGH>;
253                         status = "disabled";
254                 };
255
256                 L2: l2-cache@fffff000 {
257                         compatible = "arm,pl310-cache";
258                         reg = <0xfffff000 0x1000>;
259                         interrupts = <0 18 IRQ_TYPE_LEVEL_HIGH>;
260                         cache-unified;
261                         cache-level = <2>;
262                 };
263
264                 mmc: dwmmc0@ff808000 {
265                         #address-cells = <1>;
266                         #size-cells = <0>;
267                         compatible = "altr,socfpga-dw-mshc";
268                         reg = <0xff808000 0x1000>;
269                         interrupts = <0 98 IRQ_TYPE_LEVEL_HIGH>;
270                         fifo-depth = <0x400>;
271                 };
272
273                 ocram: sram@ffe00000 {
274                         compatible = "mmio-sram";
275                         reg = <0xffe00000 0x40000>;
276                 };
277
278                 rst: rstmgr@ffd05000 {
279                         #reset-cells = <1>;
280                         compatible = "altr,rst-mgr";
281                         reg = <0xffd05000 0x100>;
282                 };
283
284                 sysmgr: sysmgr@ffd06000 {
285                         compatible = "altr,sys-mgr", "syscon";
286                         reg = <0xffd06000 0x300>;
287                 };
288
289                 /* Local timer */
290                 timer@ffffc600 {
291                         compatible = "arm,cortex-a9-twd-timer";
292                         reg = <0xffffc600 0x100>;
293                         interrupts = <1 13 0xf04>;
294                 };
295
296                 timer0: timer0@ffc02700 {
297                         compatible = "snps,dw-apb-timer";
298                         interrupts = <0 115 IRQ_TYPE_LEVEL_HIGH>;
299                         reg = <0xffc02700 0x100>;
300                 };
301
302                 timer1: timer1@ffc02800 {
303                         compatible = "snps,dw-apb-timer";
304                         interrupts = <0 116 IRQ_TYPE_LEVEL_HIGH>;
305                         reg = <0xffc02800 0x100>;
306                 };
307
308                 timer2: timer2@ffd00000 {
309                         compatible = "snps,dw-apb-timer";
310                         interrupts = <0 117 IRQ_TYPE_LEVEL_HIGH>;
311                         reg = <0xffd00000 0x100>;
312                 };
313
314                 timer3: timer3@ffd00100 {
315                         compatible = "snps,dw-apb-timer";
316                         interrupts = <0 118 IRQ_TYPE_LEVEL_HIGH>;
317                         reg = <0xffd01000 0x100>;
318                 };
319
320                 uart0: serial0@ffc02000 {
321                         compatible = "snps,dw-apb-uart";
322                         reg = <0xffc02000 0x100>;
323                         interrupts = <0 110 IRQ_TYPE_LEVEL_HIGH>;
324                         reg-shift = <2>;
325                         reg-io-width = <4>;
326                 };
327
328                 uart1: serial1@ffc02100 {
329                         compatible = "snps,dw-apb-uart";
330                         reg = <0xffc02100 0x100>;
331                         interrupts = <0 111 IRQ_TYPE_LEVEL_HIGH>;
332                         reg-shift = <2>;
333                         reg-io-width = <4>;
334                 };
335
336                 usbphy0: usbphy@0 {
337                         #phy-cells = <0>;
338                         compatible = "usb-nop-xceiv";
339                         status = "okay";
340                 };
341
342                 usb0: usb@ffb00000 {
343                         compatible = "snps,dwc2";
344                         reg = <0xffb00000 0xffff>;
345                         interrupts = <0 95 IRQ_TYPE_LEVEL_HIGH>;
346                         phys = <&usbphy0>;
347                         phy-names = "usb2-phy";
348                         status = "disabled";
349                 };
350
351                 usb1: usb@ffb40000 {
352                         compatible = "snps,dwc2";
353                         reg = <0xffb40000 0xffff>;
354                         interrupts = <0 96 IRQ_TYPE_LEVEL_HIGH>;
355                         phys = <&usbphy0>;
356                         phy-names = "usb2-phy";
357                         status = "disabled";
358                 };
359
360                 watchdog0: watchdog@ffd00200 {
361                         compatible = "snps,dw-wdt";
362                         reg = <0xffd00200 0x100>;
363                         interrupts = <0 119 IRQ_TYPE_LEVEL_HIGH>;
364                         status = "disabled";
365                 };
366
367                 watchdog1: watchdog@ffd00300 {
368                         compatible = "snps,dw-wdt";
369                         reg = <0xffd00300 0x100>;
370                         interrupts = <0 120 IRQ_TYPE_LEVEL_HIGH>;
371                         status = "disabled";
372                 };
373         };
374 };