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