1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
3 * at91-sam9x60ek.dts - Device Tree file for Microchip SAM9X60-EK board
5 * Copyright (C) 2019 Microchip Technology Inc. and its subsidiaries
7 * Author: Sandeep Sheriker M <sandeepsheriker.mallikarjun@microchip.com>
10 #include "sam9x60.dtsi"
11 #include <dt-bindings/input/input.h>
14 model = "Microchip SAM9X60-EK";
15 compatible = "microchip,sam9x60ek", "microchip,sam9x60", "atmel,at91sam9";
24 stdout-path = "serial0:115200n8";
29 clock-frequency = <32768>;
33 clock-frequency = <24000000>;
37 regulators: regulators {
38 compatible = "simple-bus";
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>;
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>;
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>;
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>;
80 compatible = "gpio-keys";
81 pinctrl-names = "default";
82 pinctrl-0 = <&pinctrl_key_gpio_default>;
87 gpios = <&pioD 18 GPIO_ACTIVE_LOW>;
88 linux,code=<KEY_PROG1>;
94 compatible = "gpio-leds";
95 status = "okay"; /* Conflict with pwm0. */
99 gpios = <&pioB 11 GPIO_ACTIVE_HIGH>;
104 gpios = <&pioB 12 GPIO_ACTIVE_HIGH>;
109 gpios = <&pioB 13 GPIO_ACTIVE_HIGH>;
110 linux,default-trigger = "heartbeat";
116 vddana-supply = <&vdd1_3v3>;
117 vref-supply = <&vdd1_3v3>;
118 pinctrl-names = "default";
119 pinctrl-0 = <&pinctrl_adc_default &pinctrl_adtrg_default>;
124 pinctrl-names = "default";
125 pinctrl-0 = <&pinctrl_can0_rx_tx>;
126 status = "disabled"; /* Conflict with dbgu. */
130 pinctrl-names = "default";
131 pinctrl-0 = <&pinctrl_can1_rx_tx>;
136 pinctrl-names = "default";
137 pinctrl-0 = <&pinctrl_classd_default>;
138 atmel,pwm-type = "diff";
139 atmel,non-overlap-time = <10>;
144 pinctrl-names = "default";
145 pinctrl-0 = <&pinctrl_dbgu>;
146 status = "okay"; /* Conflict with can0. */
150 pinctrl-names = "default";
151 pinctrl-0 = <&pinctrl_ebi_addr_nand &pinctrl_ebi_data_0_7>;
154 nand_controller: nand-controller {
155 pinctrl-names = "default";
156 pinctrl-0 = <&pinctrl_nand_oe_we &pinctrl_nand_cs &pinctrl_nand_rb>;
160 reg = <0x3 0x0 0x800000>;
161 rb-gpios = <&pioD 5 GPIO_ACTIVE_HIGH>;
162 cs-gpios = <&pioD 4 GPIO_ACTIVE_HIGH>;
163 nand-bus-width = <8>;
164 nand-ecc-mode = "hw";
165 nand-ecc-strength = <8>;
166 nand-ecc-step-size = <512>;
168 label = "atmel_nand";
171 compatible = "fixed-partitions";
172 #address-cells = <1>;
176 label = "at91bootstrap";
182 reg = <0x40000 0xc0000>;
186 label = "U-Boot Env Redundant";
187 reg = <0x100000 0x40000>;
191 label = "U-Boot Env";
192 reg = <0x140000 0x40000>;
196 label = "device tree";
197 reg = <0x180000 0x80000>;
202 reg = <0x200000 0x600000>;
207 reg = <0x800000 0x1f800000>;
215 atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_TWI>;
219 compatible = "microchip,sam9x60-i2c";
221 interrupts = <5 IRQ_TYPE_LEVEL_HIGH 7>;
222 #address-cells = <1>;
224 clocks = <&pmc PMC_TYPE_PERIPHERAL 5>;
225 pinctrl-names = "default";
226 pinctrl-0 = <&pinctrl_flx0_default>;
227 atmel,fifo-size = <16>;
230 i2c-digital-filter-width-ns = <35>;
234 compatible = "atmel,24c32";
244 atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_SPI>;
248 compatible = "microchip,sam9x60-spi", "atmel,at91rm9200-spi";
250 interrupts = <13 IRQ_TYPE_LEVEL_HIGH 7>;
251 clocks = <&pmc PMC_TYPE_PERIPHERAL 13>;
252 clock-names = "spi_clk";
253 pinctrl-names = "default";
254 pinctrl-0 = <&pinctrl_flx4_default>;
255 atmel,fifo-size = <16>;
256 #address-cells = <1>;
263 atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_USART>;
267 compatible = "microchip,sam9x60-usart", "atmel,at91sam9260-usart";
269 interrupts = <14 IRQ_TYPE_LEVEL_HIGH 7>;
271 (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
272 AT91_XDMAC_DT_PERID(10))>,
274 (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
275 AT91_XDMAC_DT_PERID(11))>;
276 dma-names = "tx", "rx";
277 clocks = <&pmc PMC_TYPE_PERIPHERAL 14>;
278 clock-names = "usart";
279 pinctrl-0 = <&pinctrl_flx5_default>;
280 pinctrl-names = "default";
288 atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_TWI>;
292 compatible = "microchip,sam9x60-i2c";
294 interrupts = <9 IRQ_TYPE_LEVEL_HIGH 7>;
295 #address-cells = <1>;
297 clocks = <&pmc PMC_TYPE_PERIPHERAL 9>;
298 pinctrl-names = "default";
299 pinctrl-0 = <&pinctrl_flx6_default>;
300 atmel,fifo-size = <16>;
303 i2c-digital-filter-width-ns = <35>;
306 gpio_exp: mcp23008@20 {
307 compatible = "microchip,mcp23008";
318 pinctrl-names = "default";
319 pinctrl-0 = <&pinctrl_i2s_default>;
320 #sound-dai-cells = <0>;
321 status = "disabled"; /* Conflict with QSPI. */
326 #address-cells = <1>;
328 pinctrl-names = "default";
329 pinctrl-0 = <&pinctrl_macb0_rmii>;
339 pinctrl_adc_default: adc_default {
340 atmel,pins = <AT91_PIOB 15 AT91_PERIPH_A AT91_PINCTRL_NONE>;
343 pinctrl_adtrg_default: adtrg_default {
344 atmel,pins = <AT91_PIOB 18 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>;
349 pinctrl_dbgu: dbgu-0 {
350 atmel,pins = <AT91_PIOA 9 AT91_PERIPH_A AT91_PINCTRL_PULL_UP
351 AT91_PIOA 10 AT91_PERIPH_A AT91_PINCTRL_NONE>;
356 pinctrl_i2s_default: i2s {
358 <AT91_PIOB 19 AT91_PERIPH_B AT91_PINCTRL_NONE /* I2SCK */
359 AT91_PIOB 20 AT91_PERIPH_B AT91_PINCTRL_NONE /* I2SWS */
360 AT91_PIOB 21 AT91_PERIPH_B AT91_PINCTRL_NONE /* I2SDIN */
361 AT91_PIOB 22 AT91_PERIPH_B AT91_PINCTRL_NONE /* I2SDOUT */
362 AT91_PIOB 23 AT91_PERIPH_B AT91_PINCTRL_NONE>; /* I2SMCK */
369 <AT91_PIOB 19 AT91_PERIPH_A AT91_PINCTRL_SLEWRATE_DIS
370 AT91_PIOB 20 AT91_PERIPH_A AT91_PINCTRL_SLEWRATE_DIS
371 AT91_PIOB 21 AT91_PERIPH_A (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_SLEWRATE_DIS)
372 AT91_PIOB 22 AT91_PERIPH_A (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_SLEWRATE_DIS)
373 AT91_PIOB 23 AT91_PERIPH_A (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_SLEWRATE_DIS)
374 AT91_PIOB 24 AT91_PERIPH_A (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_SLEWRATE_DIS)>;
379 pinctrl_nand_oe_we: nand-oe-we-0 {
381 <AT91_PIOD 0 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)
382 AT91_PIOD 1 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)>;
385 pinctrl_nand_rb: nand-rb-0 {
387 <AT91_PIOD 5 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;
390 pinctrl_nand_cs: nand-cs-0 {
392 <AT91_PIOD 4 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;
397 pinctrl_ebi_data_0_7: ebi-data-lsb-0 {
399 <AT91_PIOD 6 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)
400 AT91_PIOD 7 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)
401 AT91_PIOD 8 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)
402 AT91_PIOD 9 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)
403 AT91_PIOD 10 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)
404 AT91_PIOD 11 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)
405 AT91_PIOD 12 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)
406 AT91_PIOD 13 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)>;
409 pinctrl_ebi_data_0_15: ebi-data-msb-0 {
411 <AT91_PIOD 6 AT91_PERIPH_A AT91_PINCTRL_NONE
412 AT91_PIOD 7 AT91_PERIPH_A AT91_PINCTRL_NONE
413 AT91_PIOD 8 AT91_PERIPH_A AT91_PINCTRL_NONE
414 AT91_PIOD 9 AT91_PERIPH_A AT91_PINCTRL_NONE
415 AT91_PIOD 10 AT91_PERIPH_A AT91_PINCTRL_NONE
416 AT91_PIOD 11 AT91_PERIPH_A AT91_PINCTRL_NONE
417 AT91_PIOD 12 AT91_PERIPH_A AT91_PINCTRL_NONE
418 AT91_PIOD 13 AT91_PERIPH_A AT91_PINCTRL_NONE
419 AT91_PIOD 14 AT91_PERIPH_A AT91_PINCTRL_NONE
420 AT91_PIOD 15 AT91_PERIPH_A AT91_PINCTRL_NONE
421 AT91_PIOD 16 AT91_PERIPH_A AT91_PINCTRL_NONE
422 AT91_PIOD 17 AT91_PERIPH_A AT91_PINCTRL_NONE
423 AT91_PIOD 18 AT91_PERIPH_A AT91_PINCTRL_NONE
424 AT91_PIOD 19 AT91_PERIPH_A AT91_PINCTRL_NONE
425 AT91_PIOD 20 AT91_PERIPH_A AT91_PINCTRL_NONE
426 AT91_PIOD 21 AT91_PERIPH_A AT91_PINCTRL_NONE>;
429 pinctrl_ebi_addr_nand: ebi-addr-0 {
431 <AT91_PIOD 2 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)
432 AT91_PIOD 3 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)>;
437 pinctrl_flx0_default: flx0_twi {
439 <AT91_PIOA 0 AT91_PERIPH_A AT91_PINCTRL_PULL_UP
440 AT91_PIOA 1 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
443 pinctrl_flx4_default: flx4_spi {
445 <AT91_PIOA 11 AT91_PERIPH_A AT91_PINCTRL_NONE
446 AT91_PIOA 12 AT91_PERIPH_A AT91_PINCTRL_NONE
447 AT91_PIOA 13 AT91_PERIPH_A AT91_PINCTRL_NONE
448 AT91_PIOA 14 AT91_PERIPH_A AT91_PINCTRL_NONE>;
451 pinctrl_flx5_default: flx_uart {
453 <AT91_PIOA 7 AT91_PERIPH_C AT91_PINCTRL_NONE
454 AT91_PIOA 8 AT91_PERIPH_B AT91_PINCTRL_NONE
455 AT91_PIOA 21 AT91_PERIPH_B AT91_PINCTRL_NONE
456 AT91_PIOA 22 AT91_PERIPH_B AT91_PINCTRL_NONE>;
459 pinctrl_flx6_default: flx6_twi {
461 <AT91_PIOA 30 AT91_PERIPH_A AT91_PINCTRL_PULL_UP
462 AT91_PIOA 31 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
467 pinctrl_classd_default: classd {
469 <AT91_PIOA 24 AT91_PERIPH_C AT91_PINCTRL_PULL_UP
470 AT91_PIOA 25 AT91_PERIPH_C AT91_PINCTRL_PULL_DOWN
471 AT91_PIOA 26 AT91_PERIPH_C AT91_PINCTRL_PULL_UP
472 AT91_PIOA 27 AT91_PERIPH_C AT91_PINCTRL_PULL_DOWN>;
477 pinctrl_can0_rx_tx: can0_rx_tx {
479 <AT91_PIOA 9 AT91_PERIPH_B AT91_PINCTRL_NONE /* CANRX0 */
480 AT91_PIOA 10 AT91_PERIPH_B AT91_PINCTRL_NONE /* CANTX0 */
481 AT91_PIOD 20 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_DOWN /* Enable CAN0 mux */
482 AT91_PIOD 21 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_DOWN>; /* Enable CAN Transceivers */
487 pinctrl_can1_rx_tx: can1_rx_tx {
489 <AT91_PIOA 6 AT91_PERIPH_B AT91_PINCTRL_NONE /* CANRX1 RXD1 */
490 AT91_PIOA 5 AT91_PERIPH_B AT91_PINCTRL_NONE /* CANTX1 TXD1 */
491 AT91_PIOD 19 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_DOWN /* Enable CAN1 mux */
492 AT91_PIOD 21 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_DOWN>; /* Enable CAN Transceivers */
497 pinctrl_macb0_rmii: macb0_rmii-0 {
499 <AT91_PIOB 0 AT91_PERIPH_A AT91_PINCTRL_NONE /* PB0 periph A */
500 AT91_PIOB 1 AT91_PERIPH_A AT91_PINCTRL_NONE /* PB1 periph A */
501 AT91_PIOB 2 AT91_PERIPH_A AT91_PINCTRL_NONE /* PB2 periph A */
502 AT91_PIOB 3 AT91_PERIPH_A AT91_PINCTRL_NONE /* PB3 periph A */
503 AT91_PIOB 4 AT91_PERIPH_A AT91_PINCTRL_NONE /* PB4 periph A */
504 AT91_PIOB 5 AT91_PERIPH_A AT91_PINCTRL_NONE /* PB5 periph A */
505 AT91_PIOB 6 AT91_PERIPH_A AT91_PINCTRL_NONE /* PB6 periph A */
506 AT91_PIOB 7 AT91_PERIPH_A AT91_PINCTRL_NONE /* PB7 periph A */
507 AT91_PIOB 9 AT91_PERIPH_A AT91_PINCTRL_NONE /* PB9 periph A */
508 AT91_PIOB 10 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PB10 periph A */
513 pinctrl_pwm0_0: pwm0_0 {
514 atmel,pins = <AT91_PIOB 11 AT91_PERIPH_B AT91_PINCTRL_NONE>;
517 pinctrl_pwm0_1: pwm0_1 {
518 atmel,pins = <AT91_PIOB 12 AT91_PERIPH_B AT91_PINCTRL_NONE>;
521 pinctrl_pwm0_2: pwm0_2 {
522 atmel,pins = <AT91_PIOB 13 AT91_PERIPH_B AT91_PINCTRL_NONE>;
525 pinctrl_pwm0_3: pwm0_3 {
526 atmel,pins = <AT91_PIOB 14 AT91_PERIPH_B AT91_PINCTRL_NONE>;
531 pinctrl_sdmmc0_default: sdmmc0 {
533 <AT91_PIOA 17 AT91_PERIPH_A (AT91_PINCTRL_DRIVE_STRENGTH_HI) /* PA17 CK periph A with pullup */
534 AT91_PIOA 16 AT91_PERIPH_A (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DRIVE_STRENGTH_HI) /* PA16 CMD periph A with pullup */
535 AT91_PIOA 15 AT91_PERIPH_A (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DRIVE_STRENGTH_HI) /* PA15 DAT0 periph A */
536 AT91_PIOA 18 AT91_PERIPH_A (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DRIVE_STRENGTH_HI) /* PA18 DAT1 periph A with pullup */
537 AT91_PIOA 19 AT91_PERIPH_A (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DRIVE_STRENGTH_HI) /* PA19 DAT2 periph A with pullup */
538 AT91_PIOA 20 AT91_PERIPH_A (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DRIVE_STRENGTH_HI)>; /* PA20 DAT3 periph A with pullup */
543 pinctrl_sdmmc1_default: sdmmc1 {
545 <AT91_PIOA 13 AT91_PERIPH_B (AT91_PINCTRL_DRIVE_STRENGTH_HI) /* PA13 CK periph B */
546 AT91_PIOA 12 AT91_PERIPH_B (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DRIVE_STRENGTH_HI) /* PA12 CMD periph B with pullup */
547 AT91_PIOA 11 AT91_PERIPH_B (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DRIVE_STRENGTH_HI) /* PA11 DAT0 periph B with pullup */
548 AT91_PIOA 2 AT91_PERIPH_B (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DRIVE_STRENGTH_HI) /* PA2 DAT1 periph B with pullup */
549 AT91_PIOA 3 AT91_PERIPH_B (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DRIVE_STRENGTH_HI) /* PA3 DAT2 periph B with pullup */
550 AT91_PIOA 4 AT91_PERIPH_B (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DRIVE_STRENGTH_HI)>; /* PA4 DAT3 periph B with pullup */
555 pinctrl_key_gpio_default: pinctrl_key_gpio {
556 atmel,pins = <AT91_PIOD 18 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
561 pinctrl_usba_vbus: usba_vbus {
562 atmel,pins = <AT91_PIOB 16 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
567 pinctrl_usb_default: usb_default {
568 atmel,pins = <AT91_PIOD 15 AT91_PERIPH_GPIO AT91_PINCTRL_NONE
569 AT91_PIOD 16 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
575 pinctrl-names = "default";
576 pinctrl-0 = <&pinctrl_pwm0_0 &pinctrl_pwm0_1 &pinctrl_pwm0_2 &pinctrl_pwm0_3>;
577 status = "disabled"; /* Conflict with leds. */
582 pinctrl-names = "default";
583 pinctrl-0 = <&pinctrl_sdmmc0_default>;
585 cd-gpios = <&pioA 23 GPIO_ACTIVE_LOW>;
591 pinctrl-names = "default";
592 pinctrl-0 = <&pinctrl_sdmmc1_default>;
595 status = "disabled"; /* Conflict with flx4. */
599 pinctrl-names = "default";
600 pinctrl-0 = <&pinctrl_qspi>;
601 status = "okay"; /* Conflict with i2s. */
604 #address-cells = <1>;
606 compatible = "jedec,spi-nor";
608 spi-max-frequency = <80000000>;
609 spi-tx-bus-width = <4>;
610 spi-rx-bus-width = <4>;
614 label = "qspi: at91bootstrap";
619 label = "qspi: bootloader";
620 reg = <0x40000 0xc0000>;
623 bootloaderenvred@100000 {
624 label = "qspi: bootloader env redundant";
625 reg = <0x100000 0x40000>;
628 bootloaderenv@140000 {
629 label = "qspi: bootloader env";
630 reg = <0x140000 0x40000>;
634 label = "qspi: device tree";
635 reg = <0x180000 0x80000>;
639 label = "qspi: kernel";
640 reg = <0x200000 0x600000>;
646 atmel,rtt-rtc-time-reg = <&gpbr 0x0>;
650 &shutdown_controller {
651 atmel,shdwc-debouncer = <976>;
661 compatible = "atmel,tcb-timer";
666 compatible = "atmel,tcb-timer";
672 atmel,vbus-gpio = <&pioB 16 GPIO_ACTIVE_HIGH>;
673 pinctrl-names = "default";
674 pinctrl-0 = <&pinctrl_usba_vbus>;
681 &pioD 15 GPIO_ACTIVE_HIGH
682 &pioD 16 GPIO_ACTIVE_HIGH>;
683 pinctrl-names = "default";
684 pinctrl-0 = <&pinctrl_usb_default>;