GNU Linux-libre 6.1.90-gnu
[releases.git] / arch / arm / boot / dts / at91-sam9x60ek.dts
1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2 /*
3  * at91-sam9x60ek.dts - Device Tree file for Microchip SAM9X60-EK board
4  *
5  * Copyright (C) 2019 Microchip Technology Inc. and its subsidiaries
6  *
7  * Author: Sandeep Sheriker M <sandeepsheriker.mallikarjun@microchip.com>
8  */
9 /dts-v1/;
10 #include "sam9x60.dtsi"
11 #include <dt-bindings/input/input.h>
12
13 / {
14         model = "Microchip SAM9X60-EK";
15         compatible = "microchip,sam9x60ek", "microchip,sam9x60", "atmel,at91sam9";
16
17         aliases {
18                 i2c0 = &i2c0;
19                 i2c1 = &i2c1;
20                 serial1 = &uart1;
21         };
22
23         chosen {
24                 stdout-path = "serial0:115200n8";
25         };
26
27         clocks {
28                 slow_xtal {
29                         clock-frequency = <32768>;
30                 };
31
32                 main_xtal {
33                         clock-frequency = <24000000>;
34                 };
35         };
36
37         gpio-keys {
38                 compatible = "gpio-keys";
39                 pinctrl-names = "default";
40                 pinctrl-0 = <&pinctrl_key_gpio_default>;
41
42                 button-1 {
43                         label = "SW1";
44                         gpios = <&pioD 18 GPIO_ACTIVE_LOW>;
45                         linux,code = <KEY_PROG1>;
46                         wakeup-source;
47                 };
48         };
49
50         leds {
51                 compatible = "gpio-leds";
52                 pinctrl-names = "default";
53                 pinctrl-0 = <&pinctrl_gpio_leds>;
54                 status = "okay"; /* Conflict with pwm0. */
55
56                 red {
57                         label = "red";
58                         gpios = <&pioB 11 GPIO_ACTIVE_HIGH>;
59                 };
60
61                 green {
62                         label = "green";
63                         gpios = <&pioB 12 GPIO_ACTIVE_HIGH>;
64                 };
65
66                 blue {
67                         label = "blue";
68                         gpios = <&pioB 13 GPIO_ACTIVE_HIGH>;
69                         linux,default-trigger = "heartbeat";
70                 };
71         };
72
73         vdd_1v8: fixed-regulator-vdd_1v8 {
74                 compatible = "regulator-fixed";
75                 regulator-name = "VDD_1V8";
76                 regulator-min-microvolt = <1800000>;
77                 regulator-max-microvolt = <1800000>;
78                 regulator-always-on;
79                 status = "okay";
80         };
81
82         vdd_1v15: fixed-regulator-vdd_1v15 {
83                 compatible = "regulator-fixed";
84                 regulator-name = "VDD_1V15";
85                 regulator-min-microvolt = <1150000>;
86                 regulator-max-microvolt = <1150000>;
87                 regulator-always-on;
88                 status = "okay";
89         };
90
91         vdd1_3v3: fixed-regulator-vdd1_3v3 {
92                 compatible = "regulator-fixed";
93                 regulator-name = "VDD1_3V3";
94                 regulator-min-microvolt = <3300000>;
95                 regulator-max-microvolt = <3300000>;
96                 regulator-always-on;
97                 status = "okay";
98         };
99
100         vdd2_3v3: regulator-fixed-vdd2_3v3 {
101                 compatible = "regulator-fixed";
102                 regulator-name = "VDD2_3V3";
103                 regulator-min-microvolt = <3300000>;
104                 regulator-max-microvolt = <3300000>;
105                 regulator-always-on;
106                 status = "okay";
107         };
108 };
109
110 &adc {
111         vddana-supply = <&vdd1_3v3>;
112         vref-supply = <&vdd1_3v3>;
113         pinctrl-names = "default";
114         pinctrl-0 = <&pinctrl_adc_default &pinctrl_adtrg_default>;
115         status = "okay";
116 };
117
118 &can0 {
119         pinctrl-names = "default";
120         pinctrl-0 = <&pinctrl_can0_rx_tx>;
121         status = "disabled"; /* Conflict with dbgu. */
122 };
123
124 &can1 {
125         pinctrl-names = "default";
126         pinctrl-0 = <&pinctrl_can1_rx_tx>;
127         status = "okay";
128 };
129
130 &classd {
131         pinctrl-names = "default";
132         pinctrl-0 = <&pinctrl_classd_default>;
133         atmel,pwm-type = "diff";
134         atmel,non-overlap-time = <10>;
135         status = "okay";
136 };
137
138 &dbgu {
139         pinctrl-names = "default";
140         pinctrl-0 = <&pinctrl_dbgu>;
141         status = "okay"; /* Conflict with can0. */
142 };
143
144 &ebi {
145         pinctrl-names = "default";
146         pinctrl-0 = <&pinctrl_ebi_addr_nand &pinctrl_ebi_data_0_7>;
147         status = "okay";
148
149         nand_controller: nand-controller {
150                 pinctrl-names = "default";
151                 pinctrl-0 = <&pinctrl_nand_oe_we &pinctrl_nand_cs &pinctrl_nand_rb>;
152                 status = "okay";
153
154                 nand@3 {
155                         reg = <0x3 0x0 0x800000>;
156                         rb-gpios = <&pioD 5 GPIO_ACTIVE_HIGH>;
157                         cs-gpios = <&pioD 4 GPIO_ACTIVE_HIGH>;
158                         nand-bus-width = <8>;
159                         nand-ecc-mode = "hw";
160                         nand-ecc-strength = <8>;
161                         nand-ecc-step-size = <512>;
162                         nand-on-flash-bbt;
163                         label = "atmel_nand";
164
165                         partitions {
166                                 compatible = "fixed-partitions";
167                                 #address-cells = <1>;
168                                 #size-cells = <1>;
169
170                                 at91bootstrap@0 {
171                                         label = "at91bootstrap";
172                                         reg = <0x0 0x40000>;
173                                 };
174
175                                 uboot@40000 {
176                                         label = "u-boot";
177                                         reg = <0x40000 0xc0000>;
178                                 };
179
180                                 ubootenvred@100000 {
181                                         label = "U-Boot Env Redundant";
182                                         reg = <0x100000 0x40000>;
183                                 };
184
185                                 ubootenv@140000 {
186                                         label = "U-Boot Env";
187                                         reg = <0x140000 0x40000>;
188                                 };
189
190                                 dtb@180000 {
191                                         label = "device tree";
192                                         reg = <0x180000 0x80000>;
193                                 };
194
195                                 kernel@200000 {
196                                         label = "kernel";
197                                         reg = <0x200000 0x600000>;
198                                 };
199
200                                 rootfs@800000 {
201                                         label = "rootfs";
202                                         reg = <0x800000 0x1f800000>;
203                                 };
204                         };
205                 };
206         };
207 };
208
209 &flx0 {
210         atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_TWI>;
211         status = "okay";
212
213         i2c0: i2c@600 {
214                 compatible = "microchip,sam9x60-i2c";
215                 reg = <0x600 0x200>;
216                 interrupts = <5 IRQ_TYPE_LEVEL_HIGH 7>;
217                 #address-cells = <1>;
218                 #size-cells = <0>;
219                 clocks = <&pmc PMC_TYPE_PERIPHERAL 5>;
220                 pinctrl-names = "default";
221                 pinctrl-0 = <&pinctrl_flx0_default>;
222                 atmel,fifo-size = <16>;
223                 i2c-analog-filter;
224                 i2c-digital-filter;
225                 i2c-digital-filter-width-ns = <35>;
226                 status = "okay";
227
228                 eeprom@53 {
229                         compatible = "atmel,24c02";
230                         reg = <0x53>;
231                         pagesize = <16>;
232                         status = "okay";
233                 };
234         };
235 };
236
237 &flx4 {
238         atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_SPI>;
239         status = "disabled";
240
241         spi0: spi@400 {
242                 compatible = "microchip,sam9x60-spi", "atmel,at91rm9200-spi";
243                 reg = <0x400 0x200>;
244                 interrupts = <13 IRQ_TYPE_LEVEL_HIGH 7>;
245                 clocks = <&pmc PMC_TYPE_PERIPHERAL 13>;
246                 clock-names = "spi_clk";
247                 pinctrl-names = "default";
248                 pinctrl-0 = <&pinctrl_flx4_default>;
249                 atmel,fifo-size = <16>;
250                 #address-cells = <1>;
251                 #size-cells = <0>;
252                 status = "disabled";
253         };
254 };
255
256 &flx5 {
257         atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_USART>;
258         status = "okay";
259
260         uart1: serial@200 {
261                 compatible = "microchip,sam9x60-dbgu", "microchip,sam9x60-usart", "atmel,at91sam9260-dbgu", "atmel,at91sam9260-usart";
262                 reg = <0x200 0x200>;
263                 atmel,usart-mode = <AT91_USART_MODE_SERIAL>;
264                 interrupts = <14 IRQ_TYPE_LEVEL_HIGH 7>;
265                 dmas = <&dma0
266                         (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
267                          AT91_XDMAC_DT_PERID(10))>,
268                        <&dma0
269                         (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
270                          AT91_XDMAC_DT_PERID(11))>;
271                 dma-names = "tx", "rx";
272                 clocks = <&pmc PMC_TYPE_PERIPHERAL 14>;
273                 clock-names = "usart";
274                 pinctrl-0 = <&pinctrl_flx5_default>;
275                 pinctrl-names = "default";
276                 atmel,use-dma-rx;
277                 atmel,use-dma-tx;
278                 status = "okay";
279         };
280 };
281
282 &flx6 {
283         atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_TWI>;
284         status = "okay";
285
286         i2c1: i2c@600 {
287                 compatible = "microchip,sam9x60-i2c";
288                 reg = <0x600 0x200>;
289                 interrupts = <9 IRQ_TYPE_LEVEL_HIGH 7>;
290                 #address-cells = <1>;
291                 #size-cells = <0>;
292                 clocks = <&pmc PMC_TYPE_PERIPHERAL 9>;
293                 pinctrl-names = "default";
294                 pinctrl-0 = <&pinctrl_flx6_default>;
295                 atmel,fifo-size = <16>;
296                 i2c-analog-filter;
297                 i2c-digital-filter;
298                 i2c-digital-filter-width-ns = <35>;
299                 status = "okay";
300
301                 gpio_exp: mcp23008@20 {
302                         compatible = "microchip,mcp23008";
303                         reg = <0x20>;
304                 };
305         };
306 };
307
308 &gpbr {
309         status = "okay";
310 };
311
312 &i2s {
313         pinctrl-names = "default";
314         pinctrl-0 = <&pinctrl_i2s_default>;
315         #sound-dai-cells = <0>;
316         status = "disabled"; /* Conflict with QSPI. */
317 };
318
319 &macb0 {
320         phy-mode = "rmii";
321         #address-cells = <1>;
322         #size-cells = <0>;
323         pinctrl-names = "default";
324         pinctrl-0 = <&pinctrl_macb0_rmii>;
325         status = "okay";
326
327         ethernet-phy@0 {
328                 reg = <0x0>;
329         };
330 };
331
332 &pinctrl {
333         adc {
334                 pinctrl_adc_default: adc_default {
335                         atmel,pins = <AT91_PIOB 15 AT91_PERIPH_A AT91_PINCTRL_NONE>;
336                 };
337
338                 pinctrl_adtrg_default: adtrg_default {
339                         atmel,pins = <AT91_PIOB 18 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>;
340                 };
341         };
342
343         dbgu {
344                 pinctrl_dbgu: dbgu-0 {
345                         atmel,pins = <AT91_PIOA 9 AT91_PERIPH_A AT91_PINCTRL_PULL_UP
346                                       AT91_PIOA 10 AT91_PERIPH_A AT91_PINCTRL_NONE>;
347                 };
348         };
349
350         i2s {
351                 pinctrl_i2s_default: i2s {
352                         atmel,pins =
353                                 <AT91_PIOB 19 AT91_PERIPH_B AT91_PINCTRL_NONE           /* I2SCK */
354                                  AT91_PIOB 20 AT91_PERIPH_B AT91_PINCTRL_NONE           /* I2SWS */
355                                  AT91_PIOB 21 AT91_PERIPH_B AT91_PINCTRL_NONE           /* I2SDIN */
356                                  AT91_PIOB 22 AT91_PERIPH_B AT91_PINCTRL_NONE           /* I2SDOUT */
357                                  AT91_PIOB 23 AT91_PERIPH_B AT91_PINCTRL_NONE>;         /* I2SMCK */
358                 };
359         };
360
361         qspi {
362                 pinctrl_qspi: qspi {
363                         atmel,pins =
364                                 <AT91_PIOB 19 AT91_PERIPH_A AT91_PINCTRL_SLEWRATE_DIS
365                                  AT91_PIOB 20 AT91_PERIPH_A AT91_PINCTRL_SLEWRATE_DIS
366                                  AT91_PIOB 21 AT91_PERIPH_A (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_SLEWRATE_DIS)
367                                  AT91_PIOB 22 AT91_PERIPH_A (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_SLEWRATE_DIS)
368                                  AT91_PIOB 23 AT91_PERIPH_A (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_SLEWRATE_DIS)
369                                  AT91_PIOB 24 AT91_PERIPH_A (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_SLEWRATE_DIS)>;
370                 };
371         };
372
373         nand {
374                 pinctrl_nand_oe_we: nand-oe-we-0 {
375                         atmel,pins =
376                                 <AT91_PIOD 0 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)
377                                  AT91_PIOD 1 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)>;
378                 };
379
380                 pinctrl_nand_rb: nand-rb-0 {
381                         atmel,pins =
382                                 <AT91_PIOD 5 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;
383                 };
384
385                 pinctrl_nand_cs: nand-cs-0 {
386                         atmel,pins =
387                                 <AT91_PIOD 4 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;
388                 };
389         };
390
391         ebi {
392                 pinctrl_ebi_data_0_7: ebi-data-lsb-0 {
393                         atmel,pins =
394                                 <AT91_PIOD 6 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)
395                                  AT91_PIOD 7 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)
396                                  AT91_PIOD 8 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)
397                                  AT91_PIOD 9 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)
398                                  AT91_PIOD 10 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)
399                                  AT91_PIOD 11 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)
400                                  AT91_PIOD 12 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)
401                                  AT91_PIOD 13 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)>;
402                 };
403
404                 pinctrl_ebi_data_0_15: ebi-data-msb-0 {
405                         atmel,pins =
406                                 <AT91_PIOD 6 AT91_PERIPH_A AT91_PINCTRL_NONE
407                                  AT91_PIOD 7 AT91_PERIPH_A AT91_PINCTRL_NONE
408                                  AT91_PIOD 8 AT91_PERIPH_A AT91_PINCTRL_NONE
409                                  AT91_PIOD 9 AT91_PERIPH_A AT91_PINCTRL_NONE
410                                  AT91_PIOD 10 AT91_PERIPH_A AT91_PINCTRL_NONE
411                                  AT91_PIOD 11 AT91_PERIPH_A AT91_PINCTRL_NONE
412                                  AT91_PIOD 12 AT91_PERIPH_A AT91_PINCTRL_NONE
413                                  AT91_PIOD 13 AT91_PERIPH_A AT91_PINCTRL_NONE
414                                  AT91_PIOD 14 AT91_PERIPH_A AT91_PINCTRL_NONE
415                                  AT91_PIOD 15 AT91_PERIPH_A AT91_PINCTRL_NONE
416                                  AT91_PIOD 16 AT91_PERIPH_A AT91_PINCTRL_NONE
417                                  AT91_PIOD 17 AT91_PERIPH_A AT91_PINCTRL_NONE
418                                  AT91_PIOD 18 AT91_PERIPH_A AT91_PINCTRL_NONE
419                                  AT91_PIOD 19 AT91_PERIPH_A AT91_PINCTRL_NONE
420                                  AT91_PIOD 20 AT91_PERIPH_A AT91_PINCTRL_NONE
421                                  AT91_PIOD 21 AT91_PERIPH_A AT91_PINCTRL_NONE>;
422                 };
423
424                 pinctrl_ebi_addr_nand: ebi-addr-0 {
425                         atmel,pins =
426                                 <AT91_PIOD 2 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)
427                                  AT91_PIOD 3 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)>;
428                 };
429         };
430
431         flexcom {
432                 pinctrl_flx0_default: flx0_twi {
433                         atmel,pins =
434                                 <AT91_PIOA 0 AT91_PERIPH_A AT91_PINCTRL_PULL_UP
435                                  AT91_PIOA 1 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
436                 };
437
438                 pinctrl_flx4_default: flx4_spi {
439                         atmel,pins =
440                                 <AT91_PIOA 11 AT91_PERIPH_A AT91_PINCTRL_NONE
441                                  AT91_PIOA 12 AT91_PERIPH_A AT91_PINCTRL_NONE
442                                  AT91_PIOA 13 AT91_PERIPH_A AT91_PINCTRL_NONE
443                                  AT91_PIOA 14 AT91_PERIPH_A AT91_PINCTRL_NONE>;
444                 };
445
446                 pinctrl_flx5_default: flx_uart {
447                         atmel,pins =
448                                 <AT91_PIOA 7 AT91_PERIPH_C AT91_PINCTRL_NONE
449                                  AT91_PIOA 8 AT91_PERIPH_B AT91_PINCTRL_NONE
450                                  AT91_PIOA 21 AT91_PERIPH_B AT91_PINCTRL_NONE
451                                  AT91_PIOA 22 AT91_PERIPH_B AT91_PINCTRL_NONE>;
452                 };
453
454                 pinctrl_flx6_default: flx6_twi {
455                         atmel,pins =
456                                 <AT91_PIOA 30 AT91_PERIPH_A AT91_PINCTRL_PULL_UP
457                                  AT91_PIOA 31 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
458                 };
459         };
460
461         classd {
462                 pinctrl_classd_default: classd {
463                         atmel,pins =
464                                 <AT91_PIOA 24 AT91_PERIPH_C AT91_PINCTRL_PULL_UP
465                                  AT91_PIOA 25 AT91_PERIPH_C AT91_PINCTRL_PULL_DOWN
466                                  AT91_PIOA 26 AT91_PERIPH_C AT91_PINCTRL_PULL_UP
467                                  AT91_PIOA 27 AT91_PERIPH_C AT91_PINCTRL_PULL_DOWN>;
468                 };
469         };
470
471         can0 {
472                 pinctrl_can0_rx_tx: can0_rx_tx {
473                         atmel,pins =
474                                 <AT91_PIOA 9 AT91_PERIPH_B AT91_PINCTRL_NONE    /* CANRX0 */
475                                  AT91_PIOA 10 AT91_PERIPH_B AT91_PINCTRL_NONE   /* CANTX0 */
476                                  AT91_PIOD 20 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_DOWN   /* Enable CAN0 mux */
477                                  AT91_PIOD 21 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_DOWN>; /* Enable CAN Transceivers */
478                 };
479         };
480
481         can1 {
482                 pinctrl_can1_rx_tx: can1_rx_tx {
483                         atmel,pins =
484                                 <AT91_PIOA 6 AT91_PERIPH_B AT91_PINCTRL_NONE    /* CANRX1 RXD1 */
485                                  AT91_PIOA 5 AT91_PERIPH_B AT91_PINCTRL_NONE    /* CANTX1 TXD1 */
486                                  AT91_PIOD 19 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_DOWN   /* Enable CAN1 mux */
487                                  AT91_PIOD 21 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_DOWN>; /* Enable CAN Transceivers */
488                 };
489         };
490
491         macb0 {
492                 pinctrl_macb0_rmii: macb0_rmii-0 {
493                         atmel,pins =
494                                 <AT91_PIOB 0 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PB0 periph A */
495                                  AT91_PIOB 1 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PB1 periph A */
496                                  AT91_PIOB 2 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PB2 periph A */
497                                  AT91_PIOB 3 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PB3 periph A */
498                                  AT91_PIOB 4 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PB4 periph A */
499                                  AT91_PIOB 5 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PB5 periph A */
500                                  AT91_PIOB 6 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PB6 periph A */
501                                  AT91_PIOB 7 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PB7 periph A */
502                                  AT91_PIOB 9 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PB9 periph A */
503                                  AT91_PIOB 10 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PB10 periph A */
504                 };
505         };
506
507         pwm0 {
508                 pinctrl_pwm0_0: pwm0_0 {
509                         atmel,pins = <AT91_PIOB 11 AT91_PERIPH_B AT91_PINCTRL_NONE>;
510                 };
511
512                 pinctrl_pwm0_1: pwm0_1 {
513                         atmel,pins = <AT91_PIOB 12 AT91_PERIPH_B AT91_PINCTRL_NONE>;
514                 };
515
516                 pinctrl_pwm0_2: pwm0_2 {
517                         atmel,pins = <AT91_PIOB 13 AT91_PERIPH_B AT91_PINCTRL_NONE>;
518                 };
519
520                 pinctrl_pwm0_3: pwm0_3 {
521                         atmel,pins = <AT91_PIOB 14 AT91_PERIPH_B AT91_PINCTRL_NONE>;
522                 };
523         };
524
525         sdmmc0 {
526                 pinctrl_sdmmc0_default: sdmmc0 {
527                         atmel,pins =
528                                 <AT91_PIOA 17 AT91_PERIPH_A (AT91_PINCTRL_DRIVE_STRENGTH_HI)                            /* PA17 CK  periph A with pullup */
529                                  AT91_PIOA 16 AT91_PERIPH_A (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DRIVE_STRENGTH_HI)     /* PA16 CMD periph A with pullup */
530                                  AT91_PIOA 15 AT91_PERIPH_A (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DRIVE_STRENGTH_HI)     /* PA15 DAT0 periph A */
531                                  AT91_PIOA 18 AT91_PERIPH_A (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DRIVE_STRENGTH_HI)     /* PA18 DAT1 periph A with pullup */
532                                  AT91_PIOA 19 AT91_PERIPH_A (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DRIVE_STRENGTH_HI)     /* PA19 DAT2 periph A with pullup */
533                                  AT91_PIOA 20 AT91_PERIPH_A (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DRIVE_STRENGTH_HI)>;   /* PA20 DAT3 periph A with pullup */
534                 };
535                 pinctrl_sdmmc0_cd: sdmmc0_cd {
536                         atmel,pins =
537                                 <AT91_PIOA 23 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
538                 };
539         };
540
541         sdmmc1 {
542                 pinctrl_sdmmc1_default: sdmmc1 {
543                         atmel,pins =
544                                 <AT91_PIOA 13 AT91_PERIPH_B (AT91_PINCTRL_DRIVE_STRENGTH_HI)                            /* PA13 CK periph B */
545                                  AT91_PIOA 12 AT91_PERIPH_B (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DRIVE_STRENGTH_HI)     /* PA12 CMD periph B with pullup */
546                                  AT91_PIOA 11 AT91_PERIPH_B (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DRIVE_STRENGTH_HI)     /* PA11 DAT0 periph B with pullup */
547                                  AT91_PIOA  2 AT91_PERIPH_B (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DRIVE_STRENGTH_HI)     /* PA2 DAT1 periph B with pullup */
548                                  AT91_PIOA  3 AT91_PERIPH_B (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DRIVE_STRENGTH_HI)     /* PA3 DAT2 periph B with pullup */
549                                  AT91_PIOA  4 AT91_PERIPH_B (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DRIVE_STRENGTH_HI)>;   /* PA4 DAT3 periph B with pullup */
550                 };
551         };
552
553         gpio_keys {
554                 pinctrl_key_gpio_default: pinctrl_key_gpio {
555                         atmel,pins = <AT91_PIOD 18 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
556                 };
557         };
558
559         usb0 {
560                 pinctrl_usba_vbus: usba_vbus {
561                         atmel,pins = <AT91_PIOB 16 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
562                 };
563         };
564
565         usb1 {
566                 pinctrl_usb_default: usb_default {
567                         atmel,pins = <AT91_PIOD 15 AT91_PERIPH_GPIO AT91_PINCTRL_NONE
568                                       AT91_PIOD 16 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
569                 };
570         };
571
572         leds {
573                 pinctrl_gpio_leds: gpio_leds {
574                         atmel,pins = <AT91_PIOB 11 AT91_PERIPH_GPIO AT91_PINCTRL_NONE
575                                       AT91_PIOB 12 AT91_PERIPH_GPIO AT91_PINCTRL_NONE
576                                       AT91_PIOB 13 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
577                 };
578         };
579 }; /* pinctrl */
580
581 &pwm0 {
582         pinctrl-names = "default";
583         pinctrl-0 = <&pinctrl_pwm0_0 &pinctrl_pwm0_1 &pinctrl_pwm0_2 &pinctrl_pwm0_3>;
584         status = "disabled"; /* Conflict with leds. */
585 };
586
587 &sdmmc0 {
588         bus-width = <4>;
589         pinctrl-names = "default";
590         pinctrl-0 = <&pinctrl_sdmmc0_default &pinctrl_sdmmc0_cd>;
591         status = "okay";
592         cd-gpios = <&pioA 23 GPIO_ACTIVE_LOW>;
593         disable-wp;
594 };
595
596 &sdmmc1 {
597         bus-width = <4>;
598         pinctrl-names = "default";
599         pinctrl-0 = <&pinctrl_sdmmc1_default>;
600         no-1-8-v;
601         non-removable;
602         status = "disabled"; /* Conflict with flx4. */
603 };
604
605 &qspi {
606         pinctrl-names = "default";
607         pinctrl-0 = <&pinctrl_qspi>;
608         status = "okay"; /* Conflict with i2s. */
609
610         flash@0 {
611                 #address-cells = <1>;
612                 #size-cells = <1>;
613                 compatible = "jedec,spi-nor";
614                 reg = <0>;
615                 spi-max-frequency = <80000000>;
616                 spi-tx-bus-width = <4>;
617                 spi-rx-bus-width = <4>;
618                 m25p,fast-read;
619
620                 at91bootstrap@0 {
621                         label = "qspi: at91bootstrap";
622                         reg = <0x0 0x40000>;
623                 };
624
625                 bootloader@40000 {
626                         label = "qspi: bootloader";
627                         reg = <0x40000 0xc0000>;
628                 };
629
630                 bootloaderenvred@100000 {
631                         label = "qspi: bootloader env redundant";
632                         reg = <0x100000 0x40000>;
633                 };
634
635                 bootloaderenv@140000 {
636                         label = "qspi: bootloader env";
637                         reg = <0x140000 0x40000>;
638                 };
639
640                 dtb@180000 {
641                         label = "qspi: device tree";
642                         reg = <0x180000 0x80000>;
643                 };
644
645                 kernel@200000 {
646                         label = "qspi: kernel";
647                         reg = <0x200000 0x600000>;
648                 };
649         };
650 };
651
652 &rtt {
653         atmel,rtt-rtc-time-reg = <&gpbr 0x0>;
654         status = "okay";
655 };
656
657 &shutdown_controller {
658         debounce-delay-us = <976>;
659         status = "okay";
660
661         input@0 {
662                 reg = <0>;
663         };
664 };
665
666 &tcb0 {
667         timer0: timer@0 {
668                 compatible = "atmel,tcb-timer";
669                 reg = <0>;
670         };
671
672         timer1: timer@1 {
673                 compatible = "atmel,tcb-timer";
674                 reg = <1>;
675         };
676 };
677
678 &usb0 {
679         atmel,vbus-gpio = <&pioB 16 GPIO_ACTIVE_HIGH>;
680         pinctrl-names = "default";
681         pinctrl-0 = <&pinctrl_usba_vbus>;
682         status = "okay";
683 };
684
685 &usb1 {
686         num-ports = <3>;
687         atmel,vbus-gpio = <0
688                            &pioD 15 GPIO_ACTIVE_HIGH
689                            &pioD 16 GPIO_ACTIVE_HIGH>;
690         pinctrl-names = "default";
691         pinctrl-0 = <&pinctrl_usb_default>;
692         status = "okay";
693 };
694
695 &usb2 {
696         status = "okay";
697 };
698
699 &watchdog {
700         status = "okay";
701 };
702