ACPI: thermal: Install Notify() handler directly
[linux-block.git] / arch / arm / boot / dts / microchip / sam9x60.dtsi
1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2 /*
3  * sam9x60.dtsi - Device Tree Include file for Microchip SAM9X60 SoC
4  *
5  * Copyright (C) 2019 Microchip Technology Inc. and its subsidiaries
6  *
7  * Author: Sandeep Sheriker M <sandeepsheriker.mallikarjun@microchip.com>
8  */
9
10 #include <dt-bindings/dma/at91.h>
11 #include <dt-bindings/pinctrl/at91.h>
12 #include <dt-bindings/interrupt-controller/irq.h>
13 #include <dt-bindings/gpio/gpio.h>
14 #include <dt-bindings/clock/at91.h>
15 #include <dt-bindings/mfd/at91-usart.h>
16 #include <dt-bindings/mfd/atmel-flexcom.h>
17
18 / {
19         #address-cells = <1>;
20         #size-cells = <1>;
21         model = "Microchip SAM9X60 SoC";
22         compatible = "microchip,sam9x60";
23         interrupt-parent = <&aic>;
24
25         aliases {
26                 serial0 = &dbgu;
27                 gpio0 = &pioA;
28                 gpio1 = &pioB;
29                 gpio2 = &pioC;
30                 gpio3 = &pioD;
31                 tcb0 = &tcb0;
32                 tcb1 = &tcb1;
33         };
34
35         cpus {
36                 #address-cells = <1>;
37                 #size-cells = <0>;
38
39                 cpu@0 {
40                         compatible = "arm,arm926ej-s";
41                         device_type = "cpu";
42                         reg = <0>;
43                 };
44         };
45
46         memory@20000000 {
47                 device_type = "memory";
48                 reg = <0x20000000 0x10000000>;
49         };
50
51         clocks {
52                 slow_xtal: slow_xtal {
53                         compatible = "fixed-clock";
54                         #clock-cells = <0>;
55                 };
56
57                 main_xtal: main_xtal {
58                         compatible = "fixed-clock";
59                         #clock-cells = <0>;
60                 };
61         };
62
63         sram: sram@300000 {
64                 compatible = "mmio-sram";
65                 reg = <0x00300000 0x100000>;
66                 #address-cells = <1>;
67                 #size-cells = <1>;
68                 ranges = <0 0x00300000 0x100000>;
69         };
70
71         ahb {
72                 compatible = "simple-bus";
73                 #address-cells = <1>;
74                 #size-cells = <1>;
75                 ranges;
76
77                 usb0: gadget@500000 {
78                         #address-cells = <1>;
79                         #size-cells = <0>;
80                         compatible = "microchip,sam9x60-udc";
81                         reg = <0x00500000 0x100000
82                                 0xf803c000 0x400>;
83                         interrupts = <23 IRQ_TYPE_LEVEL_HIGH 2>;
84                         clocks = <&pmc PMC_TYPE_PERIPHERAL 23>, <&pmc PMC_TYPE_CORE PMC_UTMI>;
85                         clock-names = "pclk", "hclk";
86                         assigned-clocks = <&pmc PMC_TYPE_CORE PMC_UTMI>;
87                         assigned-clock-rates = <480000000>;
88                         status = "disabled";
89                 };
90
91                 usb1: ohci@600000 {
92                         compatible = "atmel,at91rm9200-ohci", "usb-ohci";
93                         reg = <0x00600000 0x100000>;
94                         interrupts = <22 IRQ_TYPE_LEVEL_HIGH 2>;
95                         clocks = <&pmc PMC_TYPE_PERIPHERAL 22>, <&pmc PMC_TYPE_PERIPHERAL 22>, <&pmc PMC_TYPE_SYSTEM 6>;
96                         clock-names = "ohci_clk", "hclk", "uhpck";
97                         status = "disabled";
98                 };
99
100                 usb2: ehci@700000 {
101                         compatible = "atmel,at91sam9g45-ehci", "usb-ehci";
102                         reg = <0x00700000 0x100000>;
103                         interrupts = <22 IRQ_TYPE_LEVEL_HIGH 2>;
104                         clocks = <&pmc PMC_TYPE_CORE PMC_UTMI>, <&pmc PMC_TYPE_PERIPHERAL 22>;
105                         clock-names = "usb_clk", "ehci_clk";
106                         assigned-clocks = <&pmc PMC_TYPE_CORE PMC_UTMI>;
107                         assigned-clock-rates = <480000000>;
108                         status = "disabled";
109                 };
110
111                 ebi: ebi@10000000 {
112                         compatible = "microchip,sam9x60-ebi";
113                         #address-cells = <2>;
114                         #size-cells = <1>;
115                         atmel,smc = <&smc>;
116                         microchip,sfr = <&sfr>;
117                         reg = <0x10000000 0x60000000>;
118                         ranges = <0x0 0x0 0x10000000 0x10000000
119                                   0x1 0x0 0x20000000 0x10000000
120                                   0x2 0x0 0x30000000 0x10000000
121                                   0x3 0x0 0x40000000 0x10000000
122                                   0x4 0x0 0x50000000 0x10000000
123                                   0x5 0x0 0x60000000 0x10000000>;
124                         clocks = <&pmc PMC_TYPE_CORE PMC_MCK>;
125                         status = "disabled";
126
127                         nand_controller: nand-controller {
128                                 compatible = "microchip,sam9x60-nand-controller";
129                                 ecc-engine = <&pmecc>;
130                                 #address-cells = <2>;
131                                 #size-cells = <1>;
132                                 ranges;
133                                 status = "disabled";
134                         };
135                 };
136
137                 sdmmc0: sdio-host@80000000 {
138                         compatible = "microchip,sam9x60-sdhci";
139                         reg = <0x80000000 0x300>;
140                         interrupts = <12 IRQ_TYPE_LEVEL_HIGH 0>;
141                         clocks = <&pmc PMC_TYPE_PERIPHERAL 12>, <&pmc PMC_TYPE_GCK 12>;
142                         clock-names = "hclock", "multclk";
143                         assigned-clocks = <&pmc PMC_TYPE_GCK 12>;
144                         assigned-clock-rates = <100000000>;
145                         status = "disabled";
146                 };
147
148                 sdmmc1: sdio-host@90000000 {
149                         compatible = "microchip,sam9x60-sdhci";
150                         reg = <0x90000000 0x300>;
151                         interrupts = <26 IRQ_TYPE_LEVEL_HIGH 0>;
152                         clocks = <&pmc PMC_TYPE_PERIPHERAL 26>, <&pmc PMC_TYPE_GCK 26>;
153                         clock-names = "hclock", "multclk";
154                         assigned-clocks = <&pmc PMC_TYPE_GCK 26>;
155                         assigned-clock-rates = <100000000>;
156                         status = "disabled";
157                 };
158
159                 apb {
160                         compatible = "simple-bus";
161                         #address-cells = <1>;
162                         #size-cells = <1>;
163                         ranges;
164
165                         flx4: flexcom@f0000000 {
166                                 compatible = "atmel,sama5d2-flexcom";
167                                 reg = <0xf0000000 0x200>;
168                                 clocks = <&pmc PMC_TYPE_PERIPHERAL 13>;
169                                 #address-cells = <1>;
170                                 #size-cells = <1>;
171                                 ranges = <0x0 0xf0000000 0x800>;
172                                 status = "disabled";
173
174                                 uart4: serial@200 {
175                                         compatible = "microchip,sam9x60-dbgu", "microchip,sam9x60-usart", "atmel,at91sam9260-dbgu", "atmel,at91sam9260-usart";
176                                         reg = <0x200 0x200>;
177                                         interrupts = <13 IRQ_TYPE_LEVEL_HIGH 7>;
178                                         dmas = <&dma0
179                                                 (AT91_XDMAC_DT_MEM_IF(0) |
180                                                  AT91_XDMAC_DT_PER_IF(1) |
181                                                  AT91_XDMAC_DT_PERID(8))>,
182                                                 <&dma0
183                                                 (AT91_XDMAC_DT_MEM_IF(0) |
184                                                  AT91_XDMAC_DT_PER_IF(1) |
185                                                  AT91_XDMAC_DT_PERID(9))>;
186                                         dma-names = "tx", "rx";
187                                         clocks = <&pmc PMC_TYPE_PERIPHERAL 13>;
188                                         clock-names = "usart";
189                                         atmel,use-dma-rx;
190                                         atmel,use-dma-tx;
191                                         atmel,fifo-size = <16>;
192                                         status = "disabled";
193                                 };
194
195                                 spi4: spi@400 {
196                                         compatible = "microchip,sam9x60-spi", "atmel,at91rm9200-spi";
197                                         reg = <0x400 0x200>;
198                                         interrupts = <13 IRQ_TYPE_LEVEL_HIGH 7>;
199                                         clocks = <&pmc PMC_TYPE_PERIPHERAL 13>;
200                                         clock-names = "spi_clk";
201                                         dmas = <&dma0
202                                                 (AT91_XDMAC_DT_MEM_IF(0) |
203                                                  AT91_XDMAC_DT_PER_IF(1) |
204                                                  AT91_XDMAC_DT_PERID(8))>,
205                                                 <&dma0
206                                                 (AT91_XDMAC_DT_MEM_IF(0) |
207                                                  AT91_XDMAC_DT_PER_IF(1) |
208                                                  AT91_XDMAC_DT_PERID(9))>;
209                                         dma-names = "tx", "rx";
210                                         atmel,fifo-size = <16>;
211                                         status = "disabled";
212                                 };
213
214                                 i2c4: i2c@600 {
215                                         compatible = "microchip,sam9x60-i2c";
216                                         reg = <0x600 0x200>;
217                                         interrupts = <13 IRQ_TYPE_LEVEL_HIGH 7>;
218                                         clocks = <&pmc PMC_TYPE_PERIPHERAL 13>;
219                                         dmas = <&dma0
220                                                 (AT91_XDMAC_DT_MEM_IF(0) |
221                                                  AT91_XDMAC_DT_PER_IF(1) |
222                                                  AT91_XDMAC_DT_PERID(8))>,
223                                                 <&dma0
224                                                 (AT91_XDMAC_DT_MEM_IF(0) |
225                                                  AT91_XDMAC_DT_PER_IF(1) |
226                                                  AT91_XDMAC_DT_PERID(9))>;
227                                         dma-names = "tx", "rx";
228                                         atmel,fifo-size = <16>;
229                                         status = "disabled";
230                                 };
231                         };
232
233                         flx5: flexcom@f0004000 {
234                                 compatible = "atmel,sama5d2-flexcom";
235                                 reg = <0xf0004000 0x200>;
236                                 clocks = <&pmc PMC_TYPE_PERIPHERAL 14>;
237                                 #address-cells = <1>;
238                                 #size-cells = <1>;
239                                 ranges = <0x0 0xf0004000 0x800>;
240                                 status = "disabled";
241
242                                 uart5: serial@200 {
243                                         compatible = "microchip,sam9x60-dbgu", "microchip,sam9x60-usart", "atmel,at91sam9260-dbgu", "atmel,at91sam9260-usart";
244                                         reg = <0x200 0x200>;
245                                         atmel,usart-mode = <AT91_USART_MODE_SERIAL>;
246                                         interrupts = <14 IRQ_TYPE_LEVEL_HIGH 7>;
247                                         dmas = <&dma0
248                                                 (AT91_XDMAC_DT_MEM_IF(0) |
249                                                  AT91_XDMAC_DT_PER_IF(1) |
250                                                  AT91_XDMAC_DT_PERID(10))>,
251                                                 <&dma0
252                                                 (AT91_XDMAC_DT_MEM_IF(0) |
253                                                  AT91_XDMAC_DT_PER_IF(1) |
254                                                  AT91_XDMAC_DT_PERID(11))>;
255                                         dma-names = "tx", "rx";
256                                         clocks = <&pmc PMC_TYPE_PERIPHERAL 14>;
257                                         clock-names = "usart";
258                                         atmel,use-dma-rx;
259                                         atmel,use-dma-tx;
260                                         atmel,fifo-size = <16>;
261                                         status = "disabled";
262                                 };
263
264                                 spi5: spi@400 {
265                                         compatible = "microchip,sam9x60-spi", "atmel,at91rm9200-spi";
266                                         reg = <0x400 0x200>;
267                                         interrupts = <14 IRQ_TYPE_LEVEL_HIGH 7>;
268                                         clocks = <&pmc PMC_TYPE_PERIPHERAL 14>;
269                                         clock-names = "spi_clk";
270                                         dmas = <&dma0
271                                                 (AT91_XDMAC_DT_MEM_IF(0) |
272                                                  AT91_XDMAC_DT_PER_IF(1) |
273                                                  AT91_XDMAC_DT_PERID(10))>,
274                                                 <&dma0
275                                                 (AT91_XDMAC_DT_MEM_IF(0) |
276                                                  AT91_XDMAC_DT_PER_IF(1) |
277                                                  AT91_XDMAC_DT_PERID(11))>;
278                                         dma-names = "tx", "rx";
279                                         atmel,fifo-size = <16>;
280                                         status = "disabled";
281                                 };
282
283                                 i2c5: i2c@600 {
284                                         compatible = "microchip,sam9x60-i2c";
285                                         reg = <0x600 0x200>;
286                                         interrupts = <14 IRQ_TYPE_LEVEL_HIGH 7>;
287                                         clocks = <&pmc PMC_TYPE_PERIPHERAL 14>;
288                                         dmas = <&dma0
289                                                 (AT91_XDMAC_DT_MEM_IF(0) |
290                                                  AT91_XDMAC_DT_PER_IF(1) |
291                                                  AT91_XDMAC_DT_PERID(10))>,
292                                                 <&dma0
293                                                 (AT91_XDMAC_DT_MEM_IF(0) |
294                                                  AT91_XDMAC_DT_PER_IF(1) |
295                                                  AT91_XDMAC_DT_PERID(11))>;
296                                         dma-names = "tx", "rx";
297                                         atmel,fifo-size = <16>;
298                                         status = "disabled";
299                                 };
300                         };
301
302                         dma0: dma-controller@f0008000 {
303                                 compatible = "microchip,sam9x60-dma", "atmel,sama5d4-dma";
304                                 reg = <0xf0008000 0x1000>;
305                                 interrupts = <20 IRQ_TYPE_LEVEL_HIGH 0>;
306                                 #dma-cells = <1>;
307                                 clocks = <&pmc PMC_TYPE_PERIPHERAL 20>;
308                                 clock-names = "dma_clk";
309                         };
310
311                         ssc: ssc@f0010000 {
312                                 compatible = "atmel,at91sam9g45-ssc";
313                                 reg = <0xf0010000 0x4000>;
314                                 interrupts = <28 IRQ_TYPE_LEVEL_HIGH 5>;
315                                 dmas = <&dma0
316                                         (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
317                                          AT91_XDMAC_DT_PERID(38))>,
318                                        <&dma0
319                                         (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
320                                          AT91_XDMAC_DT_PERID(39))>;
321                                 dma-names = "tx", "rx";
322                                 clocks = <&pmc PMC_TYPE_PERIPHERAL 28>;
323                                 clock-names = "pclk";
324                                 status = "disabled";
325                         };
326
327                         qspi: spi@f0014000 {
328                                 compatible = "microchip,sam9x60-qspi";
329                                 reg = <0xf0014000 0x100>, <0x70000000 0x10000000>;
330                                 reg-names = "qspi_base", "qspi_mmap";
331                                 interrupts = <35 IRQ_TYPE_LEVEL_HIGH 7>;
332                                 dmas = <&dma0
333                                         (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
334                                          AT91_XDMAC_DT_PERID(26))>,
335                                        <&dma0
336                                         (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
337                                          AT91_XDMAC_DT_PERID(27))>;
338                                 dma-names = "tx", "rx";
339                                 clocks = <&pmc PMC_TYPE_PERIPHERAL 35>, <&pmc PMC_TYPE_SYSTEM 19>;
340                                 clock-names = "pclk", "qspick";
341                                 atmel,pmc = <&pmc>;
342                                 #address-cells = <1>;
343                                 #size-cells = <0>;
344                                 status = "disabled";
345                         };
346
347                         i2s: i2s@f001c000 {
348                                 compatible = "microchip,sam9x60-i2smcc";
349                                 reg = <0xf001c000 0x100>;
350                                 interrupts = <34 IRQ_TYPE_LEVEL_HIGH 7>;
351                                 dmas = <&dma0
352                                         (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
353                                          AT91_XDMAC_DT_PERID(36))>,
354                                        <&dma0
355                                         (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
356                                          AT91_XDMAC_DT_PERID(37))>;
357                                 dma-names = "tx", "rx";
358                                 clocks = <&pmc PMC_TYPE_PERIPHERAL 34>, <&pmc PMC_TYPE_GCK 34>;
359                                 clock-names = "pclk", "gclk";
360                                 status = "disabled";
361                         };
362
363                         flx11: flexcom@f0020000 {
364                                 compatible = "atmel,sama5d2-flexcom";
365                                 reg = <0xf0020000 0x200>;
366                                 clocks = <&pmc PMC_TYPE_PERIPHERAL 32>;
367                                 #address-cells = <1>;
368                                 #size-cells = <1>;
369                                 ranges = <0x0 0xf0020000 0x800>;
370                                 status = "disabled";
371
372                                 uart11: serial@200 {
373                                         compatible = "microchip,sam9x60-dbgu", "microchip,sam9x60-usart", "atmel,at91sam9260-dbgu", "atmel,at91sam9260-usart";
374                                         reg = <0x200 0x200>;
375                                         interrupts = <32 IRQ_TYPE_LEVEL_HIGH 7>;
376                                         dmas = <&dma0
377                                                 (AT91_XDMAC_DT_MEM_IF(0) |
378                                                  AT91_XDMAC_DT_PER_IF(1) |
379                                                  AT91_XDMAC_DT_PERID(22))>,
380                                                 <&dma0
381                                                 (AT91_XDMAC_DT_MEM_IF(0) |
382                                                  AT91_XDMAC_DT_PER_IF(1) |
383                                                  AT91_XDMAC_DT_PERID(23))>;
384                                         dma-names = "tx", "rx";
385                                         clocks = <&pmc PMC_TYPE_PERIPHERAL 32>;
386                                         clock-names = "usart";
387                                         atmel,use-dma-rx;
388                                         atmel,use-dma-tx;
389                                         atmel,fifo-size = <16>;
390                                         status = "disabled";
391                                 };
392
393                                 i2c11: i2c@600 {
394                                         compatible = "microchip,sam9x60-i2c";
395                                         reg = <0x600 0x200>;
396                                         interrupts = <32 IRQ_TYPE_LEVEL_HIGH 7>;
397                                         clocks = <&pmc PMC_TYPE_PERIPHERAL 32>;
398                                         dmas = <&dma0
399                                                 (AT91_XDMAC_DT_MEM_IF(0) |
400                                                  AT91_XDMAC_DT_PER_IF(1) |
401                                                  AT91_XDMAC_DT_PERID(22))>,
402                                                 <&dma0
403                                                 (AT91_XDMAC_DT_MEM_IF(0) |
404                                                  AT91_XDMAC_DT_PER_IF(1) |
405                                                  AT91_XDMAC_DT_PERID(23))>;
406                                         dma-names = "tx", "rx";
407                                         atmel,fifo-size = <16>;
408                                         status = "disabled";
409                                 };
410                         };
411
412                         flx12: flexcom@f0024000 {
413                                 compatible = "atmel,sama5d2-flexcom";
414                                 reg = <0xf0024000 0x200>;
415                                 clocks = <&pmc PMC_TYPE_PERIPHERAL 33>;
416                                 #address-cells = <1>;
417                                 #size-cells = <1>;
418                                 ranges = <0x0 0xf0024000 0x800>;
419                                 status = "disabled";
420
421                                 uart12: serial@200 {
422                                         compatible = "microchip,sam9x60-dbgu", "microchip,sam9x60-usart", "atmel,at91sam9260-dbgu", "atmel,at91sam9260-usart";
423                                         reg = <0x200 0x200>;
424                                         interrupts = <33 IRQ_TYPE_LEVEL_HIGH 7>;
425                                         dmas = <&dma0
426                                                 (AT91_XDMAC_DT_MEM_IF(0) |
427                                                  AT91_XDMAC_DT_PER_IF(1) |
428                                                  AT91_XDMAC_DT_PERID(24))>,
429                                                 <&dma0
430                                                 (AT91_XDMAC_DT_MEM_IF(0) |
431                                                  AT91_XDMAC_DT_PER_IF(1) |
432                                                  AT91_XDMAC_DT_PERID(25))>;
433                                         dma-names = "tx", "rx";
434                                         clocks = <&pmc PMC_TYPE_PERIPHERAL 33>;
435                                         clock-names = "usart";
436                                         atmel,use-dma-rx;
437                                         atmel,use-dma-tx;
438                                         atmel,fifo-size = <16>;
439                                         status = "disabled";
440                                 };
441
442                                 i2c12: i2c@600 {
443                                         compatible = "microchip,sam9x60-i2c";
444                                         reg = <0x600 0x200>;
445                                         interrupts = <33 IRQ_TYPE_LEVEL_HIGH 7>;
446                                         clocks = <&pmc PMC_TYPE_PERIPHERAL 33>;
447                                         dmas = <&dma0
448                                                 (AT91_XDMAC_DT_MEM_IF(0) |
449                                                  AT91_XDMAC_DT_PER_IF(1) |
450                                                  AT91_XDMAC_DT_PERID(24))>,
451                                                 <&dma0
452                                                 (AT91_XDMAC_DT_MEM_IF(0) |
453                                                  AT91_XDMAC_DT_PER_IF(1) |
454                                                  AT91_XDMAC_DT_PERID(25))>;
455                                         dma-names = "tx", "rx";
456                                         atmel,fifo-size = <16>;
457                                         status = "disabled";
458                                 };
459                         };
460
461                         pit64b: timer@f0028000 {
462                                 compatible = "microchip,sam9x60-pit64b";
463                                 reg = <0xf0028000 0x100>;
464                                 interrupts = <37 IRQ_TYPE_LEVEL_HIGH 7>;
465                                 clocks = <&pmc PMC_TYPE_PERIPHERAL 37>, <&pmc PMC_TYPE_GCK 37>;
466                                 clock-names = "pclk", "gclk";
467                         };
468
469                         sha: crypto@f002c000 {
470                                 compatible = "atmel,at91sam9g46-sha";
471                                 reg = <0xf002c000 0x100>;
472                                 interrupts = <41 IRQ_TYPE_LEVEL_HIGH 0>;
473                                 dmas = <&dma0
474                                         (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
475                                          AT91_XDMAC_DT_PERID(34))>;
476                                 dma-names = "tx";
477                                 clocks = <&pmc PMC_TYPE_PERIPHERAL 41>;
478                                 clock-names = "sha_clk";
479                         };
480
481                         trng: trng@f0030000 {
482                                 compatible = "microchip,sam9x60-trng";
483                                 reg = <0xf0030000 0x100>;
484                                 interrupts = <38 IRQ_TYPE_LEVEL_HIGH 0>;
485                                 clocks = <&pmc PMC_TYPE_PERIPHERAL 38>;
486                         };
487
488                         aes: crypto@f0034000 {
489                                 compatible = "atmel,at91sam9g46-aes";
490                                 reg = <0xf0034000 0x100>;
491                                 interrupts = <39 IRQ_TYPE_LEVEL_HIGH 0>;
492                                 dmas = <&dma0
493                                         (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
494                                          AT91_XDMAC_DT_PERID(32))>,
495                                        <&dma0
496                                         (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
497                                          AT91_XDMAC_DT_PERID(33))>;
498                                 dma-names = "tx", "rx";
499                                 clocks = <&pmc PMC_TYPE_PERIPHERAL 39>;
500                                 clock-names = "aes_clk";
501                         };
502
503                         tdes: crypto@f0038000 {
504                                 compatible = "atmel,at91sam9g46-tdes";
505                                 reg = <0xf0038000 0x100>;
506                                 interrupts = <40 IRQ_TYPE_LEVEL_HIGH 0>;
507                                 dmas = <&dma0
508                                         (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
509                                          AT91_XDMAC_DT_PERID(31))>,
510                                        <&dma0
511                                         (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
512                                          AT91_XDMAC_DT_PERID(30))>;
513                                 dma-names = "tx", "rx";
514                                 clocks = <&pmc PMC_TYPE_PERIPHERAL 40>;
515                                 clock-names = "tdes_clk";
516                         };
517
518                         classd: classd@f003c000 {
519                                 compatible = "atmel,sama5d2-classd";
520                                 reg = <0xf003c000 0x100>;
521                                 interrupts = <42 IRQ_TYPE_LEVEL_HIGH 7>;
522                                 dmas = <&dma0
523                                         (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
524                                          AT91_XDMAC_DT_PERID(35))>;
525                                 dma-names = "tx";
526                                 clocks = <&pmc PMC_TYPE_PERIPHERAL 42>, <&pmc PMC_TYPE_GCK 42>;
527                                 clock-names = "pclk", "gclk";
528                                 status = "disabled";
529                         };
530
531                         can0: can@f8000000 {
532                                 compatible = "microchip,sam9x60-can", "atmel,at91sam9x5-can";
533                                 reg = <0xf8000000 0x300>;
534                                 interrupts = <29 IRQ_TYPE_LEVEL_HIGH 3>;
535                                 clocks = <&pmc PMC_TYPE_PERIPHERAL 29>;
536                                 clock-names = "can_clk";
537                                 status = "disabled";
538                         };
539
540                         can1: can@f8004000 {
541                                 compatible = "microchip,sam9x60-can", "atmel,at91sam9x5-can";
542                                 reg = <0xf8004000 0x300>;
543                                 interrupts = <30 IRQ_TYPE_LEVEL_HIGH 3>;
544                                 clocks = <&pmc PMC_TYPE_PERIPHERAL 30>;
545                                 clock-names = "can_clk";
546                                 status = "disabled";
547                         };
548
549                         tcb0: timer@f8008000 {
550                                 compatible = "microchip,sam9x60-tcb", "atmel,at91sam9x5-tcb", "simple-mfd", "syscon";
551                                 #address-cells = <1>;
552                                 #size-cells = <0>;
553                                 reg = <0xf8008000 0x100>;
554                                 interrupts = <17 IRQ_TYPE_LEVEL_HIGH 0>;
555                                 clocks = <&pmc PMC_TYPE_PERIPHERAL 17>, <&clk32k 0>;
556                                 clock-names = "t0_clk", "slow_clk";
557                         };
558
559                         tcb1: timer@f800c000 {
560                                 compatible = "microchip,sam9x60-tcb", "atmel,at91sam9x5-tcb", "simple-mfd", "syscon";
561                                 #address-cells = <1>;
562                                 #size-cells = <0>;
563                                 reg = <0xf800c000 0x100>;
564                                 interrupts = <45 IRQ_TYPE_LEVEL_HIGH 0>;
565                                 clocks = <&pmc PMC_TYPE_PERIPHERAL 45>, <&clk32k 0>;
566                                 clock-names = "t0_clk", "slow_clk";
567                         };
568
569                         flx6: flexcom@f8010000 {
570                                 compatible = "atmel,sama5d2-flexcom";
571                                 reg = <0xf8010000 0x200>;
572                                 clocks = <&pmc PMC_TYPE_PERIPHERAL 9>;
573                                 #address-cells = <1>;
574                                 #size-cells = <1>;
575                                 ranges = <0x0 0xf8010000 0x800>;
576                                 status = "disabled";
577
578                                 uart6: serial@200 {
579                                         compatible = "microchip,sam9x60-dbgu", "microchip,sam9x60-usart", "atmel,at91sam9260-dbgu", "atmel,at91sam9260-usart";
580                                         reg = <0x200 0x200>;
581                                         interrupts = <9 IRQ_TYPE_LEVEL_HIGH 7>;
582                                         dmas = <&dma0
583                                                 (AT91_XDMAC_DT_MEM_IF(0) |
584                                                  AT91_XDMAC_DT_PER_IF(1) |
585                                                  AT91_XDMAC_DT_PERID(12))>,
586                                                 <&dma0
587                                                 (AT91_XDMAC_DT_MEM_IF(0) |
588                                                  AT91_XDMAC_DT_PER_IF(1) |
589                                                  AT91_XDMAC_DT_PERID(13))>;
590                                         dma-names = "tx", "rx";
591                                         clocks = <&pmc PMC_TYPE_PERIPHERAL 9>;
592                                         clock-names = "usart";
593                                         atmel,use-dma-rx;
594                                         atmel,use-dma-tx;
595                                         atmel,fifo-size = <16>;
596                                         status = "disabled";
597                                 };
598
599                                 i2c6: i2c@600 {
600                                         compatible = "microchip,sam9x60-i2c";
601                                         reg = <0x600 0x200>;
602                                         interrupts = <9 IRQ_TYPE_LEVEL_HIGH 7>;
603                                         clocks = <&pmc PMC_TYPE_PERIPHERAL 9>;
604                                         dmas = <&dma0
605                                                 (AT91_XDMAC_DT_MEM_IF(0) |
606                                                  AT91_XDMAC_DT_PER_IF(1) |
607                                                  AT91_XDMAC_DT_PERID(12))>,
608                                                 <&dma0
609                                                 (AT91_XDMAC_DT_MEM_IF(0) |
610                                                  AT91_XDMAC_DT_PER_IF(1) |
611                                                  AT91_XDMAC_DT_PERID(13))>;
612                                         dma-names = "tx", "rx";
613                                         atmel,fifo-size = <16>;
614                                         status = "disabled";
615                                 };
616                         };
617
618                         flx7: flexcom@f8014000 {
619                                 compatible = "atmel,sama5d2-flexcom";
620                                 reg = <0xf8014000 0x200>;
621                                 clocks = <&pmc PMC_TYPE_PERIPHERAL 10>;
622                                 #address-cells = <1>;
623                                 #size-cells = <1>;
624                                 ranges = <0x0 0xf8014000 0x800>;
625                                 status = "disabled";
626
627                                 uart7: serial@200 {
628                                         compatible = "microchip,sam9x60-dbgu", "microchip,sam9x60-usart", "atmel,at91sam9260-dbgu", "atmel,at91sam9260-usart";
629                                         reg = <0x200 0x200>;
630                                         interrupts = <10 IRQ_TYPE_LEVEL_HIGH 7>;
631                                         dmas = <&dma0
632                                                 (AT91_XDMAC_DT_MEM_IF(0) |
633                                                  AT91_XDMAC_DT_PER_IF(1) |
634                                                  AT91_XDMAC_DT_PERID(14))>,
635                                                 <&dma0
636                                                 (AT91_XDMAC_DT_MEM_IF(0) |
637                                                  AT91_XDMAC_DT_PER_IF(1) |
638                                                  AT91_XDMAC_DT_PERID(15))>;
639                                         dma-names = "tx", "rx";
640                                         clocks = <&pmc PMC_TYPE_PERIPHERAL 10>;
641                                         clock-names = "usart";
642                                         atmel,use-dma-rx;
643                                         atmel,use-dma-tx;
644                                         atmel,fifo-size = <16>;
645                                         status = "disabled";
646                                 };
647
648                                 i2c7: i2c@600 {
649                                         compatible = "microchip,sam9x60-i2c";
650                                         reg = <0x600 0x200>;
651                                         interrupts = <10 IRQ_TYPE_LEVEL_HIGH 7>;
652                                         clocks = <&pmc PMC_TYPE_PERIPHERAL 10>;
653                                         dmas = <&dma0
654                                                 (AT91_XDMAC_DT_MEM_IF(0) |
655                                                  AT91_XDMAC_DT_PER_IF(1) |
656                                                  AT91_XDMAC_DT_PERID(14))>,
657                                                 <&dma0
658                                                 (AT91_XDMAC_DT_MEM_IF(0) |
659                                                  AT91_XDMAC_DT_PER_IF(1) |
660                                                  AT91_XDMAC_DT_PERID(15))>;
661                                         dma-names = "tx", "rx";
662                                         atmel,fifo-size = <16>;
663                                         status = "disabled";
664                                 };
665                         };
666
667                         flx8: flexcom@f8018000 {
668                                 compatible = "atmel,sama5d2-flexcom";
669                                 reg = <0xf8018000 0x200>;
670                                 clocks = <&pmc PMC_TYPE_PERIPHERAL 11>;
671                                 #address-cells = <1>;
672                                 #size-cells = <1>;
673                                 ranges = <0x0 0xf8018000 0x800>;
674                                 status = "disabled";
675
676                                 uart8: serial@200 {
677                                         compatible = "microchip,sam9x60-dbgu", "microchip,sam9x60-usart", "atmel,at91sam9260-dbgu", "atmel,at91sam9260-usart";
678                                         reg = <0x200 0x200>;
679                                         interrupts = <11 IRQ_TYPE_LEVEL_HIGH 7>;
680                                         dmas = <&dma0
681                                                 (AT91_XDMAC_DT_MEM_IF(0) |
682                                                  AT91_XDMAC_DT_PER_IF(1) |
683                                                  AT91_XDMAC_DT_PERID(16))>,
684                                                 <&dma0
685                                                 (AT91_XDMAC_DT_MEM_IF(0) |
686                                                  AT91_XDMAC_DT_PER_IF(1) |
687                                                  AT91_XDMAC_DT_PERID(17))>;
688                                         dma-names = "tx", "rx";
689                                         clocks = <&pmc PMC_TYPE_PERIPHERAL 11>;
690                                         clock-names = "usart";
691                                         atmel,use-dma-rx;
692                                         atmel,use-dma-tx;
693                                         atmel,fifo-size = <16>;
694                                         status = "disabled";
695                                 };
696
697                                 i2c8: i2c@600 {
698                                         compatible = "microchip,sam9x60-i2c";
699                                         reg = <0x600 0x200>;
700                                         interrupts = <11 IRQ_TYPE_LEVEL_HIGH 7>;
701                                         clocks = <&pmc PMC_TYPE_PERIPHERAL 11>;
702                                         dmas = <&dma0
703                                                 (AT91_XDMAC_DT_MEM_IF(0) |
704                                                  AT91_XDMAC_DT_PER_IF(1) |
705                                                  AT91_XDMAC_DT_PERID(16))>,
706                                                 <&dma0
707                                                 (AT91_XDMAC_DT_MEM_IF(0) |
708                                                  AT91_XDMAC_DT_PER_IF(1) |
709                                                  AT91_XDMAC_DT_PERID(17))>;
710                                         dma-names = "tx", "rx";
711                                         atmel,fifo-size = <16>;
712                                         status = "disabled";
713                                 };
714                         };
715
716                         flx0: flexcom@f801c000 {
717                                 compatible = "atmel,sama5d2-flexcom";
718                                 reg = <0xf801c000 0x200>;
719                                 clocks = <&pmc PMC_TYPE_PERIPHERAL 5>;
720                                 #address-cells = <1>;
721                                 #size-cells = <1>;
722                                 ranges = <0x0 0xf801c000 0x800>;
723                                 status = "disabled";
724
725                                 uart0: serial@200 {
726                                         compatible = "microchip,sam9x60-dbgu", "microchip,sam9x60-usart", "atmel,at91sam9260-dbgu", "atmel,at91sam9260-usart";
727                                         reg = <0x200 0x200>;
728                                         interrupts = <5 IRQ_TYPE_LEVEL_HIGH 7>;
729                                         dmas = <&dma0
730                                                 (AT91_XDMAC_DT_MEM_IF(0) |
731                                                  AT91_XDMAC_DT_PER_IF(1) |
732                                                  AT91_XDMAC_DT_PERID(0))>,
733                                                 <&dma0
734                                                 (AT91_XDMAC_DT_MEM_IF(0) |
735                                                  AT91_XDMAC_DT_PER_IF(1) |
736                                                  AT91_XDMAC_DT_PERID(1))>;
737                                         dma-names = "tx", "rx";
738                                         clocks = <&pmc PMC_TYPE_PERIPHERAL 5>;
739                                         clock-names = "usart";
740                                         atmel,use-dma-rx;
741                                         atmel,use-dma-tx;
742                                         atmel,fifo-size = <16>;
743                                         status = "disabled";
744                                 };
745
746                                 spi0: spi@400 {
747                                         compatible = "microchip,sam9x60-spi", "atmel,at91rm9200-spi";
748                                         reg = <0x400 0x200>;
749                                         interrupts = <5 IRQ_TYPE_LEVEL_HIGH 7>;
750                                         clocks = <&pmc PMC_TYPE_PERIPHERAL 5>;
751                                         clock-names = "spi_clk";
752                                         dmas = <&dma0
753                                                 (AT91_XDMAC_DT_MEM_IF(0) |
754                                                  AT91_XDMAC_DT_PER_IF(1) |
755                                                  AT91_XDMAC_DT_PERID(0))>,
756                                                 <&dma0
757                                                 (AT91_XDMAC_DT_MEM_IF(0) |
758                                                  AT91_XDMAC_DT_PER_IF(1) |
759                                                  AT91_XDMAC_DT_PERID(1))>;
760                                         dma-names = "tx", "rx";
761                                         atmel,fifo-size = <16>;
762                                         status = "disabled";
763                                 };
764
765                                 i2c0: i2c@600 {
766                                         compatible = "microchip,sam9x60-i2c";
767                                         reg = <0x600 0x200>;
768                                         interrupts = <5 IRQ_TYPE_LEVEL_HIGH 7>;
769                                         clocks = <&pmc PMC_TYPE_PERIPHERAL 5>;
770                                         dmas = <&dma0
771                                                 (AT91_XDMAC_DT_MEM_IF(0) |
772                                                  AT91_XDMAC_DT_PER_IF(1) |
773                                                  AT91_XDMAC_DT_PERID(0))>,
774                                                 <&dma0
775                                                 (AT91_XDMAC_DT_MEM_IF(0) |
776                                                  AT91_XDMAC_DT_PER_IF(1) |
777                                                  AT91_XDMAC_DT_PERID(1))>;
778                                         dma-names = "tx", "rx";
779                                         atmel,fifo-size = <16>;
780                                         status = "disabled";
781                                 };
782                         };
783
784                         flx1: flexcom@f8020000 {
785                                 compatible = "atmel,sama5d2-flexcom";
786                                 reg = <0xf8020000 0x200>;
787                                 clocks = <&pmc PMC_TYPE_PERIPHERAL 6>;
788                                 #address-cells = <1>;
789                                 #size-cells = <1>;
790                                 ranges = <0x0 0xf8020000 0x800>;
791                                 status = "disabled";
792
793                                 uart1: serial@200 {
794                                         compatible = "microchip,sam9x60-dbgu", "microchip,sam9x60-usart", "atmel,at91sam9260-dbgu", "atmel,at91sam9260-usart";
795                                         reg = <0x200 0x200>;
796                                         interrupts = <6 IRQ_TYPE_LEVEL_HIGH 7>;
797                                         dmas = <&dma0
798                                                 (AT91_XDMAC_DT_MEM_IF(0) |
799                                                  AT91_XDMAC_DT_PER_IF(1) |
800                                                  AT91_XDMAC_DT_PERID(2))>,
801                                                 <&dma0
802                                                 (AT91_XDMAC_DT_MEM_IF(0) |
803                                                  AT91_XDMAC_DT_PER_IF(1) |
804                                                  AT91_XDMAC_DT_PERID(3))>;
805                                         dma-names = "tx", "rx";
806                                         clocks = <&pmc PMC_TYPE_PERIPHERAL 6>;
807                                         clock-names = "usart";
808                                         atmel,use-dma-rx;
809                                         atmel,use-dma-tx;
810                                         atmel,fifo-size = <16>;
811                                         status = "disabled";
812                                 };
813
814                                 spi1: spi@400 {
815                                         compatible = "microchip,sam9x60-spi", "atmel,at91rm9200-spi";
816                                         reg = <0x400 0x200>;
817                                         interrupts = <6 IRQ_TYPE_LEVEL_HIGH 7>;
818                                         clocks = <&pmc PMC_TYPE_PERIPHERAL 6>;
819                                         clock-names = "spi_clk";
820                                         dmas = <&dma0
821                                                 (AT91_XDMAC_DT_MEM_IF(0) |
822                                                  AT91_XDMAC_DT_PER_IF(1) |
823                                                  AT91_XDMAC_DT_PERID(2))>,
824                                                 <&dma0
825                                                 (AT91_XDMAC_DT_MEM_IF(0) |
826                                                  AT91_XDMAC_DT_PER_IF(1) |
827                                                  AT91_XDMAC_DT_PERID(3))>;
828                                         dma-names = "tx", "rx";
829                                         atmel,fifo-size = <16>;
830                                         status = "disabled";
831                                 };
832
833                                 i2c1: i2c@600 {
834                                         compatible = "microchip,sam9x60-i2c";
835                                         reg = <0x600 0x200>;
836                                         interrupts = <6 IRQ_TYPE_LEVEL_HIGH 7>;
837                                         clocks = <&pmc PMC_TYPE_PERIPHERAL 6>;
838                                         dmas = <&dma0
839                                                 (AT91_XDMAC_DT_MEM_IF(0) |
840                                                  AT91_XDMAC_DT_PER_IF(1) |
841                                                  AT91_XDMAC_DT_PERID(2))>,
842                                                 <&dma0
843                                                 (AT91_XDMAC_DT_MEM_IF(0) |
844                                                  AT91_XDMAC_DT_PER_IF(1) |
845                                                  AT91_XDMAC_DT_PERID(3))>;
846                                         dma-names = "tx", "rx";
847                                         atmel,fifo-size = <16>;
848                                         status = "disabled";
849                                 };
850                         };
851
852                         flx2: flexcom@f8024000 {
853                                 compatible = "atmel,sama5d2-flexcom";
854                                 reg = <0xf8024000 0x200>;
855                                 clocks = <&pmc PMC_TYPE_PERIPHERAL 7>;
856                                 #address-cells = <1>;
857                                 #size-cells = <1>;
858                                 ranges = <0x0 0xf8024000 0x800>;
859                                 status = "disabled";
860
861                                 uart2: serial@200 {
862                                         compatible = "microchip,sam9x60-dbgu", "microchip,sam9x60-usart", "atmel,at91sam9260-dbgu", "atmel,at91sam9260-usart";
863                                         reg = <0x200 0x200>;
864                                         interrupts = <7 IRQ_TYPE_LEVEL_HIGH 7>;
865                                         dmas = <&dma0
866                                                 (AT91_XDMAC_DT_MEM_IF(0) |
867                                                  AT91_XDMAC_DT_PER_IF(1) |
868                                                  AT91_XDMAC_DT_PERID(4))>,
869                                                 <&dma0
870                                                 (AT91_XDMAC_DT_MEM_IF(0) |
871                                                  AT91_XDMAC_DT_PER_IF(1) |
872                                                  AT91_XDMAC_DT_PERID(5))>;
873                                         dma-names = "tx", "rx";
874                                         clocks = <&pmc PMC_TYPE_PERIPHERAL 7>;
875                                         clock-names = "usart";
876                                         atmel,use-dma-rx;
877                                         atmel,use-dma-tx;
878                                         atmel,fifo-size = <16>;
879                                         status = "disabled";
880                                 };
881
882                                 spi2: spi@400 {
883                                         compatible = "microchip,sam9x60-spi", "atmel,at91rm9200-spi";
884                                         reg = <0x400 0x200>;
885                                         interrupts = <7 IRQ_TYPE_LEVEL_HIGH 7>;
886                                         clocks = <&pmc PMC_TYPE_PERIPHERAL 7>;
887                                         clock-names = "spi_clk";
888                                         dmas = <&dma0
889                                                 (AT91_XDMAC_DT_MEM_IF(0) |
890                                                  AT91_XDMAC_DT_PER_IF(1) |
891                                                  AT91_XDMAC_DT_PERID(4))>,
892                                                 <&dma0
893                                                 (AT91_XDMAC_DT_MEM_IF(0) |
894                                                  AT91_XDMAC_DT_PER_IF(1) |
895                                                  AT91_XDMAC_DT_PERID(5))>;
896                                         dma-names = "tx", "rx";
897                                         atmel,fifo-size = <16>;
898                                         status = "disabled";
899                                 };
900
901                                 i2c2: i2c@600 {
902                                         compatible = "microchip,sam9x60-i2c";
903                                         reg = <0x600 0x200>;
904                                         interrupts = <7 IRQ_TYPE_LEVEL_HIGH 7>;
905                                         clocks = <&pmc PMC_TYPE_PERIPHERAL 7>;
906                                         dmas = <&dma0
907                                                 (AT91_XDMAC_DT_MEM_IF(0) |
908                                                  AT91_XDMAC_DT_PER_IF(1) |
909                                                  AT91_XDMAC_DT_PERID(4))>,
910                                                 <&dma0
911                                                 (AT91_XDMAC_DT_MEM_IF(0) |
912                                                  AT91_XDMAC_DT_PER_IF(1) |
913                                                  AT91_XDMAC_DT_PERID(5))>;
914                                         dma-names = "tx", "rx";
915                                         atmel,fifo-size = <16>;
916                                         status = "disabled";
917                                 };
918                         };
919
920                         flx3: flexcom@f8028000 {
921                                 compatible = "atmel,sama5d2-flexcom";
922                                 reg = <0xf8028000 0x200>;
923                                 clocks = <&pmc PMC_TYPE_PERIPHERAL 8>;
924                                 #address-cells = <1>;
925                                 #size-cells = <1>;
926                                 ranges = <0x0 0xf8028000 0x800>;
927                                 status = "disabled";
928
929                                 uart3: serial@200 {
930                                         compatible = "microchip,sam9x60-dbgu", "microchip,sam9x60-usart", "atmel,at91sam9260-dbgu", "atmel,at91sam9260-usart";
931                                         reg = <0x200 0x200>;
932                                         interrupts = <8 IRQ_TYPE_LEVEL_HIGH 7>;
933                                         dmas = <&dma0
934                                                 (AT91_XDMAC_DT_MEM_IF(0) |
935                                                  AT91_XDMAC_DT_PER_IF(1) |
936                                                  AT91_XDMAC_DT_PERID(6))>,
937                                                 <&dma0
938                                                 (AT91_XDMAC_DT_MEM_IF(0) |
939                                                  AT91_XDMAC_DT_PER_IF(1) |
940                                                  AT91_XDMAC_DT_PERID(7))>;
941                                         dma-names = "tx", "rx";
942                                         clocks = <&pmc PMC_TYPE_PERIPHERAL 8>;
943                                         clock-names = "usart";
944                                         atmel,use-dma-rx;
945                                         atmel,use-dma-tx;
946                                         atmel,fifo-size = <16>;
947                                         status = "disabled";
948                                 };
949
950                                 spi3: spi@400 {
951                                         compatible = "microchip,sam9x60-spi", "atmel,at91rm9200-spi";
952                                         reg = <0x400 0x200>;
953                                         interrupts = <8 IRQ_TYPE_LEVEL_HIGH 7>;
954                                         clocks = <&pmc PMC_TYPE_PERIPHERAL 8>;
955                                         clock-names = "spi_clk";
956                                         dmas = <&dma0
957                                                 (AT91_XDMAC_DT_MEM_IF(0) |
958                                                  AT91_XDMAC_DT_PER_IF(1) |
959                                                  AT91_XDMAC_DT_PERID(6))>,
960                                                 <&dma0
961                                                 (AT91_XDMAC_DT_MEM_IF(0) |
962                                                  AT91_XDMAC_DT_PER_IF(1) |
963                                                  AT91_XDMAC_DT_PERID(7))>;
964                                         dma-names = "tx", "rx";
965                                         atmel,fifo-size = <16>;
966                                         status = "disabled";
967                                 };
968
969                                 i2c3: i2c@600 {
970                                         compatible = "microchip,sam9x60-i2c";
971                                         reg = <0x600 0x200>;
972                                         interrupts = <8 IRQ_TYPE_LEVEL_HIGH 7>;
973                                         clocks = <&pmc PMC_TYPE_PERIPHERAL 8>;
974                                         dmas = <&dma0
975                                                 (AT91_XDMAC_DT_MEM_IF(0) |
976                                                  AT91_XDMAC_DT_PER_IF(1) |
977                                                  AT91_XDMAC_DT_PERID(6))>,
978                                                 <&dma0
979                                                 (AT91_XDMAC_DT_MEM_IF(0) |
980                                                  AT91_XDMAC_DT_PER_IF(1) |
981                                                  AT91_XDMAC_DT_PERID(7))>;
982                                         dma-names = "tx", "rx";
983                                         atmel,fifo-size = <16>;
984                                         status = "disabled";
985                                 };
986                         };
987
988                         macb0: ethernet@f802c000 {
989                                 compatible = "cdns,sam9x60-macb", "cdns,macb";
990                                 reg = <0xf802c000 0x1000>;
991                                 interrupts = <24 IRQ_TYPE_LEVEL_HIGH 3>;
992                                 clocks = <&pmc PMC_TYPE_PERIPHERAL 24>, <&pmc PMC_TYPE_PERIPHERAL 24>;
993                                 clock-names = "hclk", "pclk";
994                                 status = "disabled";
995                         };
996
997                         macb1: ethernet@f8030000 {
998                                 compatible = "cdns,sam9x60-macb", "cdns,macb";
999                                 reg = <0xf8030000 0x1000>;
1000                                 interrupts = <27 IRQ_TYPE_LEVEL_HIGH 3>;
1001                                 clocks = <&pmc PMC_TYPE_PERIPHERAL 27>, <&pmc PMC_TYPE_PERIPHERAL 27>;
1002                                 clock-names = "hclk", "pclk";
1003                                 status = "disabled";
1004                         };
1005
1006                         pwm0: pwm@f8034000 {
1007                                 compatible = "microchip,sam9x60-pwm";
1008                                 reg = <0xf8034000 0x300>;
1009                                 interrupts = <18 IRQ_TYPE_LEVEL_HIGH 4>;
1010                                 clocks = <&pmc PMC_TYPE_PERIPHERAL 18>;
1011                                 #pwm-cells = <3>;
1012                                 status = "disabled";
1013                         };
1014
1015                         hlcdc: hlcdc@f8038000 {
1016                                 compatible = "microchip,sam9x60-hlcdc";
1017                                 reg = <0xf8038000 0x4000>;
1018                                 interrupts = <25 IRQ_TYPE_LEVEL_HIGH 0>;
1019                                 clocks = <&pmc PMC_TYPE_PERIPHERAL 25>, <&pmc PMC_TYPE_GCK 25>, <&clk32k 1>;
1020                                 clock-names = "periph_clk","sys_clk", "slow_clk";
1021                                 assigned-clocks = <&pmc PMC_TYPE_GCK 25>;
1022                                 assigned-clock-parents = <&pmc PMC_TYPE_CORE PMC_MCK>;
1023                                 status = "disabled";
1024
1025                                 hlcdc-display-controller {
1026                                         compatible = "atmel,hlcdc-display-controller";
1027                                         #address-cells = <1>;
1028                                         #size-cells = <0>;
1029
1030                                         port@0 {
1031                                                 #address-cells = <1>;
1032                                                 #size-cells = <0>;
1033                                                 reg = <0>;
1034                                         };
1035                                 };
1036
1037                                 hlcdc_pwm: hlcdc-pwm {
1038                                         compatible = "atmel,hlcdc-pwm";
1039                                         #pwm-cells = <3>;
1040                                 };
1041                         };
1042
1043                         flx9: flexcom@f8040000 {
1044                                 compatible = "atmel,sama5d2-flexcom";
1045                                 reg = <0xf8040000 0x200>;
1046                                 clocks = <&pmc PMC_TYPE_PERIPHERAL 15>;
1047                                 #address-cells = <1>;
1048                                 #size-cells = <1>;
1049                                 ranges = <0x0 0xf8040000 0x800>;
1050                                 status = "disabled";
1051
1052                                 uart9: serial@200 {
1053                                         compatible = "microchip,sam9x60-dbgu", "microchip,sam9x60-usart", "atmel,at91sam9260-dbgu", "atmel,at91sam9260-usart";
1054                                         reg = <0x200 0x200>;
1055                                         interrupts = <15 IRQ_TYPE_LEVEL_HIGH 7>;
1056                                         dmas = <&dma0
1057                                                 (AT91_XDMAC_DT_MEM_IF(0) |
1058                                                  AT91_XDMAC_DT_PER_IF(1) |
1059                                                  AT91_XDMAC_DT_PERID(18))>,
1060                                                 <&dma0
1061                                                 (AT91_XDMAC_DT_MEM_IF(0) |
1062                                                  AT91_XDMAC_DT_PER_IF(1) |
1063                                                  AT91_XDMAC_DT_PERID(19))>;
1064                                         dma-names = "tx", "rx";
1065                                         clocks = <&pmc PMC_TYPE_PERIPHERAL 15>;
1066                                         clock-names = "usart";
1067                                         atmel,use-dma-rx;
1068                                         atmel,use-dma-tx;
1069                                         atmel,fifo-size = <16>;
1070                                         status = "disabled";
1071                                 };
1072
1073                                 i2c9: i2c@600 {
1074                                         compatible = "microchip,sam9x60-i2c";
1075                                         reg = <0x600 0x200>;
1076                                         interrupts = <15 IRQ_TYPE_LEVEL_HIGH 7>;
1077                                         clocks = <&pmc PMC_TYPE_PERIPHERAL 15>;
1078                                         dmas = <&dma0
1079                                                 (AT91_XDMAC_DT_MEM_IF(0) |
1080                                                  AT91_XDMAC_DT_PER_IF(1) |
1081                                                  AT91_XDMAC_DT_PERID(18))>,
1082                                                 <&dma0
1083                                                 (AT91_XDMAC_DT_MEM_IF(0) |
1084                                                  AT91_XDMAC_DT_PER_IF(1) |
1085                                                  AT91_XDMAC_DT_PERID(19))>;
1086                                         dma-names = "tx", "rx";
1087                                         atmel,fifo-size = <16>;
1088                                         status = "disabled";
1089                                 };
1090                         };
1091
1092                         flx10: flexcom@f8044000 {
1093                                 compatible = "atmel,sama5d2-flexcom";
1094                                 reg = <0xf8044000 0x200>;
1095                                 clocks = <&pmc PMC_TYPE_PERIPHERAL 16>;
1096                                 #address-cells = <1>;
1097                                 #size-cells = <1>;
1098                                 ranges = <0x0 0xf8044000 0x800>;
1099                                 status = "disabled";
1100
1101                                 uart10: serial@200 {
1102                                         compatible = "microchip,sam9x60-dbgu", "microchip,sam9x60-usart", "atmel,at91sam9260-dbgu", "atmel,at91sam9260-usart";
1103                                         reg = <0x200 0x200>;
1104                                         interrupts = <16 IRQ_TYPE_LEVEL_HIGH 7>;
1105                                         dmas = <&dma0
1106                                                 (AT91_XDMAC_DT_MEM_IF(0) |
1107                                                  AT91_XDMAC_DT_PER_IF(1) |
1108                                                  AT91_XDMAC_DT_PERID(20))>,
1109                                                 <&dma0
1110                                                 (AT91_XDMAC_DT_MEM_IF(0) |
1111                                                  AT91_XDMAC_DT_PER_IF(1) |
1112                                                  AT91_XDMAC_DT_PERID(21))>;
1113                                         dma-names = "tx", "rx";
1114                                         clocks = <&pmc PMC_TYPE_PERIPHERAL 16>;
1115                                         clock-names = "usart";
1116                                         atmel,use-dma-rx;
1117                                         atmel,use-dma-tx;
1118                                         atmel,fifo-size = <16>;
1119                                         status = "disabled";
1120                                 };
1121
1122                                 i2c10: i2c@600 {
1123                                         compatible = "microchip,sam9x60-i2c";
1124                                         reg = <0x600 0x200>;
1125                                         interrupts = <16 IRQ_TYPE_LEVEL_HIGH 7>;
1126                                         clocks = <&pmc PMC_TYPE_PERIPHERAL 16>;
1127                                         dmas = <&dma0
1128                                                 (AT91_XDMAC_DT_MEM_IF(0) |
1129                                                  AT91_XDMAC_DT_PER_IF(1) |
1130                                                  AT91_XDMAC_DT_PERID(20))>,
1131                                                 <&dma0
1132                                                 (AT91_XDMAC_DT_MEM_IF(0) |
1133                                                  AT91_XDMAC_DT_PER_IF(1) |
1134                                                  AT91_XDMAC_DT_PERID(21))>;
1135                                         dma-names = "tx", "rx";
1136                                         atmel,fifo-size = <16>;
1137                                         status = "disabled";
1138                                 };
1139                         };
1140
1141                         isi: isi@f8048000 {
1142                                 compatible = "microchip,sam9x60-isi", "atmel,at91sam9g45-isi";
1143                                 reg = <0xf8048000 0x100>;
1144                                 interrupts = <43 IRQ_TYPE_LEVEL_HIGH 5>;
1145                                 clocks = <&pmc PMC_TYPE_PERIPHERAL 43>;
1146                                 clock-names = "isi_clk";
1147                                 status = "disabled";
1148                                 port {
1149                                         #address-cells = <1>;
1150                                         #size-cells = <0>;
1151                                 };
1152                         };
1153
1154                         adc: adc@f804c000 {
1155                                 compatible = "microchip,sam9x60-adc", "atmel,sama5d2-adc";
1156                                 reg = <0xf804c000 0x100>;
1157                                 interrupts = <19 IRQ_TYPE_LEVEL_HIGH 7>;
1158                                 clocks = <&pmc PMC_TYPE_PERIPHERAL 19>;
1159                                 clock-names = "adc_clk";
1160                                 dmas = <&dma0 (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) | AT91_XDMAC_DT_PERID(40))>;
1161                                 dma-names = "rx";
1162                                 atmel,min-sample-rate-hz = <200000>;
1163                                 atmel,max-sample-rate-hz = <20000000>;
1164                                 atmel,startup-time-ms = <4>;
1165                                 atmel,trigger-edge-type = <IRQ_TYPE_EDGE_RISING>;
1166                                 #io-channel-cells = <1>;
1167                                 status = "disabled";
1168                         };
1169
1170                         sfr: sfr@f8050000 {
1171                                 compatible = "microchip,sam9x60-sfr", "syscon";
1172                                 reg = <0xf8050000 0x100>;
1173                         };
1174
1175                         matrix: matrix@ffffde00 {
1176                                 compatible = "microchip,sam9x60-matrix", "atmel,at91sam9x5-matrix", "syscon";
1177                                 reg = <0xffffde00 0x200>;
1178                         };
1179
1180                         pmecc: ecc-engine@ffffe000 {
1181                                 compatible = "microchip,sam9x60-pmecc", "atmel,at91sam9g45-pmecc";
1182                                 reg = <0xffffe000 0x300>,
1183                                       <0xffffe600 0x100>;
1184                         };
1185
1186                         mpddrc: mpddrc@ffffe800 {
1187                                 compatible = "microchip,sam9x60-ddramc", "atmel,sama5d3-ddramc";
1188                                 reg = <0xffffe800 0x200>;
1189                                 clocks = <&pmc PMC_TYPE_SYSTEM 2>, <&pmc PMC_TYPE_PERIPHERAL 49>;
1190                                 clock-names = "ddrck", "mpddr";
1191                         };
1192
1193                         smc: smc@ffffea00 {
1194                                 compatible = "microchip,sam9x60-smc", "atmel,at91sam9260-smc", "syscon";
1195                                 reg = <0xffffea00 0x100>;
1196                         };
1197
1198                         aic: interrupt-controller@fffff100 {
1199                                 compatible = "microchip,sam9x60-aic";
1200                                 #interrupt-cells = <3>;
1201                                 interrupt-controller;
1202                                 reg = <0xfffff100 0x100>;
1203                                 atmel,external-irqs = <31>;
1204                         };
1205
1206                         dbgu: serial@fffff200 {
1207                                 compatible = "microchip,sam9x60-dbgu", "microchip,sam9x60-usart", "atmel,at91sam9260-dbgu", "atmel,at91sam9260-usart";
1208                                 reg = <0xfffff200 0x200>;
1209                                 atmel,usart-mode = <AT91_USART_MODE_SERIAL>;
1210                                 interrupts = <47 IRQ_TYPE_LEVEL_HIGH 7>;
1211                                 dmas = <&dma0
1212                                         (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
1213                                          AT91_XDMAC_DT_PERID(28))>,
1214                                        <&dma0
1215                                         (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
1216                                          AT91_XDMAC_DT_PERID(29))>;
1217                                 dma-names = "tx", "rx";
1218                                 clocks = <&pmc PMC_TYPE_PERIPHERAL 47>;
1219                                 clock-names = "usart";
1220                                 status = "disabled";
1221                         };
1222
1223                         pinctrl: pinctrl@fffff400 {
1224                                 #address-cells = <1>;
1225                                 #size-cells = <1>;
1226                                 compatible = "microchip,sam9x60-pinctrl", "atmel,at91sam9x5-pinctrl", "atmel,at91rm9200-pinctrl", "simple-bus";
1227                                 ranges = <0xfffff400 0xfffff400 0x800>;
1228
1229                                 /* mux-mask corresponding to sam9x60 SoC in TFBGA228L package */
1230                                 atmel,mux-mask = <
1231                                                  /*     A       B       C       */
1232                                                  0xffffffff 0xffe03fff 0xef00019d       /* pioA */
1233                                                  0x03ffffff 0x02fc7e7f 0x00780000       /* pioB */
1234                                                  0xffffffff 0xffffffff 0xf83fffff       /* pioC */
1235                                                  0x003fffff 0x003f8000 0x00000000       /* pioD */
1236                                                  >;
1237
1238                                 pioA: gpio@fffff400 {
1239                                         compatible = "microchip,sam9x60-gpio", "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio";
1240                                         reg = <0xfffff400 0x200>;
1241                                         interrupts = <2 IRQ_TYPE_LEVEL_HIGH 1>;
1242                                         #gpio-cells = <2>;
1243                                         gpio-controller;
1244                                         interrupt-controller;
1245                                         #interrupt-cells = <2>;
1246                                         clocks = <&pmc PMC_TYPE_PERIPHERAL 2>;
1247                                 };
1248
1249                                 pioB: gpio@fffff600 {
1250                                         compatible = "microchip,sam9x60-gpio", "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio";
1251                                         reg = <0xfffff600 0x200>;
1252                                         interrupts = <3 IRQ_TYPE_LEVEL_HIGH 1>;
1253                                         #gpio-cells = <2>;
1254                                         gpio-controller;
1255                                         #gpio-lines = <26>;
1256                                         interrupt-controller;
1257                                         #interrupt-cells = <2>;
1258                                         clocks = <&pmc PMC_TYPE_PERIPHERAL 3>;
1259                                 };
1260
1261                                 pioC: gpio@fffff800 {
1262                                         compatible = "microchip,sam9x60-gpio", "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio";
1263                                         reg = <0xfffff800 0x200>;
1264                                         interrupts = <4 IRQ_TYPE_LEVEL_HIGH 1>;
1265                                         #gpio-cells = <2>;
1266                                         gpio-controller;
1267                                         interrupt-controller;
1268                                         #interrupt-cells = <2>;
1269                                         clocks = <&pmc PMC_TYPE_PERIPHERAL 4>;
1270                                 };
1271
1272                                 pioD: gpio@fffffa00 {
1273                                         compatible = "microchip,sam9x60-gpio", "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio";
1274                                         reg = <0xfffffa00 0x200>;
1275                                         interrupts = <44 IRQ_TYPE_LEVEL_HIGH 1>;
1276                                         #gpio-cells = <2>;
1277                                         gpio-controller;
1278                                         #gpio-lines = <22>;
1279                                         interrupt-controller;
1280                                         #interrupt-cells = <2>;
1281                                         clocks = <&pmc PMC_TYPE_PERIPHERAL 44>;
1282                                 };
1283                         };
1284
1285                         pmc: clock-controller@fffffc00 {
1286                                 compatible = "microchip,sam9x60-pmc", "syscon";
1287                                 reg = <0xfffffc00 0x200>;
1288                                 interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
1289                                 #clock-cells = <2>;
1290                                 clocks = <&clk32k 1>, <&clk32k 0>, <&main_xtal>;
1291                                 clock-names = "td_slck", "md_slck", "main_xtal";
1292                         };
1293
1294                         reset_controller: reset-controller@fffffe00 {
1295                                 compatible = "microchip,sam9x60-rstc";
1296                                 reg = <0xfffffe00 0x10>;
1297                                 clocks = <&clk32k 0>;
1298                         };
1299
1300                         shutdown_controller: poweroff@fffffe10 {
1301                                 compatible = "microchip,sam9x60-shdwc";
1302                                 reg = <0xfffffe10 0x10>;
1303                                 clocks = <&clk32k 0>;
1304                                 #address-cells = <1>;
1305                                 #size-cells = <0>;
1306                                 atmel,wakeup-rtc-timer;
1307                                 atmel,wakeup-rtt-timer;
1308                                 status = "disabled";
1309                         };
1310
1311                         rtt: rtc@fffffe20 {
1312                                 compatible = "microchip,sam9x60-rtt", "atmel,at91sam9260-rtt";
1313                                 reg = <0xfffffe20 0x20>;
1314                                 interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
1315                                 clocks = <&clk32k 0>;
1316                         };
1317
1318                         pit: timer@fffffe40 {
1319                                 compatible = "atmel,at91sam9260-pit";
1320                                 reg = <0xfffffe40 0x10>;
1321                                 interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
1322                                 clocks = <&pmc PMC_TYPE_CORE PMC_MCK>;
1323                         };
1324
1325                         clk32k: clock-controller@fffffe50 {
1326                                 compatible = "microchip,sam9x60-sckc";
1327                                 reg = <0xfffffe50 0x4>;
1328                                 clocks = <&slow_xtal>;
1329                                 #clock-cells = <1>;
1330                         };
1331
1332                         gpbr: syscon@fffffe60 {
1333                                 compatible = "microchip,sam9x60-gpbr", "atmel,at91sam9260-gpbr", "syscon";
1334                                 reg = <0xfffffe60 0x10>;
1335                         };
1336
1337                         rtc: rtc@fffffea8 {
1338                                 compatible = "microchip,sam9x60-rtc", "atmel,at91sam9x5-rtc";
1339                                 reg = <0xfffffea8 0x100>;
1340                                 interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
1341                                 clocks = <&clk32k 0>;
1342                         };
1343
1344                         watchdog: watchdog@ffffff80 {
1345                                 compatible = "microchip,sam9x60-wdt";
1346                                 reg = <0xffffff80 0x24>;
1347                                 interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
1348                                 clocks = <&clk32k 0>;
1349                                 status = "disabled";
1350                         };
1351                 };
1352         };
1353 };