1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
3 * at91-sama5d2_icp.dts - Device Tree file for SAMA5D2-ICP board
5 * Copyright (C) 2019 Microchip Technology Inc. and its subsidiaries
7 * Author: Radu Pirea & Razvan Stefanescu,
8 * Codrin Ciubotariu <codrin.ciubotariu@microchip.com>,
9 * Cristian Birsan <cristian.birsan@microchip.com>
12 #include "sama5d2.dtsi"
13 #include "sama5d2-pinfunc.h"
14 #include <dt-bindings/gpio/gpio.h>
15 #include <dt-bindings/input/input.h>
16 #include <dt-bindings/mfd/atmel-flexcom.h>
19 model = "Microchip SAMA5D2-ICP";
20 compatible = "microchip,sama5d2-icp", "atmel,sama5d27", "atmel,sama5d2", "atmel,sama5";
23 serial0 = &uart0; /* debug uart0 + mikro BUS 1 */
24 serial1 = &uart1; /* mikro BUS 3 */
25 serial3 = &uart3; /* mikro BUS 2 */
26 serial5 = &uart7; /* flx2 */
32 stdout-path = "serial0:115200n8";
37 clock-frequency = <32768>;
41 clock-frequency = <12000000>;
46 compatible = "gpio-keys";
48 pinctrl-names = "default";
49 pinctrl-0 = <&pinctrl_key_gpio_default>;
54 gpios = <&pioA PIN_PD0 GPIO_ACTIVE_LOW>;
55 linux,code = <KEY_PROG1>;
61 compatible = "gpio-leds";
62 pinctrl-names = "default";
63 pinctrl-0 = <&pinctrl_led_gpio_default>;
64 status = "okay"; /* conflict with pwm0 */
68 gpios = <&pioA PIN_PB0 GPIO_ACTIVE_HIGH>;
73 gpios = <&pioA PIN_PB1 GPIO_ACTIVE_HIGH>;
78 gpios = <&pioA PIN_PA31 GPIO_ACTIVE_HIGH>;
79 linux,default-trigger = "heartbeat";
85 vddana-supply = <&vdd_io_reg>;
86 vref-supply = <&vdd_io_reg>;
87 pinctrl-names = "default";
88 pinctrl-0 = <&pinctrl_adc_default &pinctrl_adtrg_default>;
93 pinctrl-names = "default";
94 pinctrl-0 = <&pinctrl_can0_default>;
99 pinctrl-names = "default";
100 pinctrl-0 = <&pinctrl_can1_default>;
104 &flx0 { /* mikrobus2 spi */
105 atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_SPI>;
110 cs-gpios = <&pioA PIN_PC0 GPIO_ACTIVE_LOW>;
111 pinctrl-names = "default";
112 pinctrl-0 = <&pinctrl_mikrobus2_spi &pinctrl_ksz_spi_cs>;
114 #address-cells = <1>;
118 compatible = "microchip,ksz8563";
120 reset-gpios = <&pioA PIN_PD4 GPIO_ACTIVE_LOW>;
122 spi-max-frequency = <500000>;
127 #address-cells = <1>;
155 atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_USART>;
159 pinctrl-0 = <&pinctrl_flx2_default>;
160 pinctrl-names = "default";
163 status = "okay"; /* Conflict w/ qspi1. */
167 &flx3 { /* mikrobus1 spi */
168 atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_SPI>;
173 pinctrl-names = "default";
174 pinctrl-0 = <&pinctrl_mikrobus1_spi &pinctrl_mikrobus1_spi_cs>;
180 atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_TWI>;
185 pinctrl-names = "default";
186 pinctrl-0 = <&pinctrl_flx4_default>;
188 i2c-digital-filter-width-ns = <35>;
192 compatible = "microchip,mcp16502";
195 lpm-gpios = <&pioBU 7 GPIO_ACTIVE_LOW>;
199 regulator-name = "VDD_IO";
200 regulator-min-microvolt = <1200000>;
201 regulator-max-microvolt = <3700000>;
202 regulator-initial-mode = <2>;
203 regulator-allowed-modes = <2>, <4>;
206 regulator-state-standby {
207 regulator-on-in-suspend;
208 regulator-mode = <4>;
211 regulator-state-mem {
212 regulator-off-in-suspend;
213 regulator-mode = <4>;
218 regulator-name = "VDD_DDR";
219 regulator-min-microvolt = <600000>;
220 regulator-max-microvolt = <1850000>;
221 regulator-initial-mode = <2>;
222 regulator-allowed-modes = <2>, <4>;
225 regulator-state-standby {
226 regulator-on-in-suspend;
227 regulator-mode = <4>;
230 regulator-state-mem {
231 regulator-on-in-suspend;
232 regulator-mode = <4>;
237 regulator-name = "VDD_CORE";
238 regulator-min-microvolt = <600000>;
239 regulator-max-microvolt = <1850000>;
240 regulator-initial-mode = <2>;
241 regulator-allowed-modes = <2>, <4>;
244 regulator-state-standby {
245 regulator-on-in-suspend;
246 regulator-mode = <4>;
249 regulator-state-mem {
250 regulator-off-in-suspend;
251 regulator-mode = <4>;
256 regulator-name = "VDD_OTHER";
257 regulator-min-microvolt = <600000>;
258 regulator-max-microvolt = <1850000>;
259 regulator-initial-mode = <2>;
260 regulator-allowed-modes = <2>, <4>;
263 regulator-state-standby {
264 regulator-on-in-suspend;
265 regulator-mode = <4>;
268 regulator-state-mem {
269 regulator-off-in-suspend;
270 regulator-mode = <4>;
275 regulator-name = "LDO1";
276 regulator-min-microvolt = <1200000>;
277 regulator-max-microvolt = <3700000>;
280 regulator-state-standby {
281 regulator-on-in-suspend;
284 regulator-state-mem {
285 regulator-off-in-suspend;
290 regulator-name = "LDO2";
291 regulator-min-microvolt = <1200000>;
292 regulator-max-microvolt = <3700000>;
295 regulator-state-standby {
296 regulator-on-in-suspend;
299 regulator-state-mem {
300 regulator-off-in-suspend;
309 &i2c0 { /* mikrobus i2c */
310 pinctrl-names = "default", "gpio";
311 pinctrl-0 = <&pinctrl_mikrobus_i2c>;
312 pinctrl-1 = <&pinctrl_i2c0_gpio>;
313 sda-gpios = <&pioA PIN_PD21 GPIO_ACTIVE_HIGH>;
314 scl-gpios = <&pioA PIN_PD22 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
316 i2c-digital-filter-width-ns = <35>;
322 pinctrl-names = "default", "gpio";
323 pinctrl-0 = <&pinctrl_i2c1_default>;
324 pinctrl-1 = <&pinctrl_i2c1_gpio>;
325 sda-gpios = <&pioA PIN_PD19 GPIO_ACTIVE_HIGH>;
326 scl-gpios = <&pioA PIN_PD20 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
328 i2c-digital-filter-width-ns = <35>;
332 compatible = "atmel,24c32";
339 compatible = "atmel,24c32";
346 compatible = "atmel,24c32";
354 pinctrl-names = "default";
355 pinctrl-0 = <&pinctrl_macb0_default &pinctrl_macb0_phy_irq &pinctrl_macb0_rst>;
366 pinctrl_adc_default: adc_default {
367 pinmux = <PIN_PD24__GPIO>,
374 * The ADTRG pin can work on any edge type.
375 * In here it's being pulled up, so need to
376 * connect it to ground to get an edge e.g.
377 * Trigger can be configured on falling, rise
378 * or any edge, and the pull-up can be changed
379 * to pull-down or left floating according to
382 pinctrl_adtrg_default: adtrg_default {
383 pinmux = <PIN_PD31__ADTRG>;
387 pinctrl_flx4_default: flx4_default {
388 pinmux = <PIN_PC28__FLEXCOM4_IO0>,
389 <PIN_PC29__FLEXCOM4_IO1>;
393 pinctrl_can0_default: can0_default {
394 pinmux = <PIN_PC10__CANTX0>,
399 pinctrl_can1_default: can1_default {
400 pinmux = <PIN_PC26__CANTX1>,
405 pinctrl_i2c1_default: i2c1_default {
406 pinmux = <PIN_PD19__TWD1>,
411 pinctrl_i2c1_gpio: i2c1_gpio {
412 pinmux = <PIN_PD19__GPIO>,
417 pinctrl_key_gpio_default: key_gpio_default {
418 pinmux = <PIN_PD0__GPIO>;
422 pinctrl_led_gpio_default: led_gpio_default {
423 pinmux = <PIN_PB0__GPIO>,
429 pinctrl_qspi1_default: qspi1_default {
430 pinmux = <PIN_PA6__QSPI1_SCK>,
431 <PIN_PA7__QSPI1_IO0>,
432 <PIN_PA8__QSPI1_IO1>,
433 <PIN_PA9__QSPI1_IO2>,
434 <PIN_PA10__QSPI1_IO3>,
435 <PIN_PA11__QSPI1_CS>;
439 pinctrl_sdmmc0_default: sdmmc0_default {
441 pinmux = <PIN_PA1__SDMMC0_CMD>,
442 <PIN_PA2__SDMMC0_DAT0>,
443 <PIN_PA3__SDMMC0_DAT1>,
444 <PIN_PA4__SDMMC0_DAT2>,
445 <PIN_PA5__SDMMC0_DAT3>;
450 pinmux = <PIN_PA0__SDMMC0_CK>,
451 <PIN_PA13__SDMMC0_CD>;
456 pinctrl_sdmmc1_default: sdmmc1_default {
458 pinmux = <PIN_PA18__SDMMC1_DAT0>,
459 <PIN_PA19__SDMMC1_DAT1>,
460 <PIN_PA20__SDMMC1_DAT2>,
461 <PIN_PA21__SDMMC1_DAT3>;
466 pinmux = <PIN_PA22__SDMMC1_CK>,
467 <PIN_PA28__SDMMC1_CMD>;
472 pinctrl_mikrobus_i2c: mikrobus_i2c {
473 pinmux = <PIN_PD22__TWCK0>,
478 pinctrl_i2c0_gpio: i2c0_gpio {
479 pinmux = <PIN_PD21__GPIO>,
484 pinctrl_mikrobus1_an: mikrobus1_an {
485 pinmux = <PIN_PD26__GPIO>;
489 pinctrl_mikrobus1_rst: mikrobus1_rst {
490 pinmux = <PIN_PC5__GPIO>;
494 pinctrl_mikrobus1_spi_cs: mikrobus1_spi_cs {
495 pinmux = <PIN_PC21__FLEXCOM3_IO3>;
499 pinctrl_mikrobus1_spi: mikrobus1_spi {
500 pinmux = <PIN_PC20__FLEXCOM3_IO0>,
501 <PIN_PC19__FLEXCOM3_IO1>,
502 <PIN_PC18__FLEXCOM3_IO2>;
506 pinctrl_mikrobus1_pwm: mikrobus1_pwm {
507 pinmux = <PIN_PC4__TIOB1>;
511 pinctrl_mikrobus1_int: mikrobus1_int {
512 pinmux = <PIN_PC3__GPIO>;
516 pinctrl_mikrobus1_uart: mikrobus1_uart {
517 pinmux = <PIN_PB26__URXD0>,
522 pinctrl_mikrobus2_an: mikrobus2_an {
523 pinmux = <PIN_PD25__GPIO>;
527 pinctrl_mikrobus2_rst: mikrobus2_rst {
528 pinmux = <PIN_PB24__GPIO>;
532 pinctrl_mikrobus2_spi_cs: mikrobus2_spi_cs {
533 pinmux = <PIN_PB31__FLEXCOM0_IO3>;
537 pinctrl_mikrobus2_spi: mikrobus2_spi {
538 pinmux = <PIN_PB28__FLEXCOM0_IO0>,
539 <PIN_PB29__FLEXCOM0_IO1>,
540 <PIN_PB30__FLEXCOM0_IO2>;
544 pinctrl_ksz_spi_cs: ksz_spi_cs {
545 pinmux = <PIN_PC0__GPIO>;
549 pinctrl_mikrobus2_pwm: mikrobus2_pwm {
550 pinmux = <PIN_PB23__TIOB2>;
554 pinctrl_mikrobus2_int: mikrobus2_int {
555 pinmux = <PIN_PB22__GPIO>;
559 pinctrl_mikrobus2_uart: mikrobus2_uart {
560 pinmux = <PIN_PC12__URXD3>,
565 pinctrl_mikrobus3_an: mikrobus3_an {
566 pinmux = <PIN_PD24__GPIO>;
570 pinctrl_mikrobus3_rst: mikrobus3_rst {
571 pinmux = <PIN_PB21__GPIO>;
575 pinctrl_mikrobus3_spi_cs: mikrobus3_spi_cs {
576 pinmux = <PIN_PA17__SPI0_NPCS0>;
580 pinctrl_mikrobus3_spi: mikrobus3_spi {
581 pinmux = <PIN_PA14__SPI0_SPCK>,
582 <PIN_PA16__SPI0_MISO>,
583 <PIN_PA15__SPI0_MOSI>;
587 pinctrl_mikrobus3_pwm: mikrobus3_pwm {
588 pinmux = <PIN_PB20__TIOB3>;
592 pinctrl_mikrobus3_int: mikrobus3_int {
593 pinmux = <PIN_PB18__GPIO>;
597 pinctrl_mikrobus3_uart: mikrobus3_uart {
598 pinmux = <PIN_PC7__URXD1>,
603 pinctrl_usb_default: usb_default {
604 pinmux = <PIN_PC17__GPIO>;
608 pinctrl_usba_vbus: usba_vbus {
609 pinmux = <PIN_PD23__GPIO>;
613 pinctrl_pwm0_pwm2_default: pwm0_pwm2_default {
614 pinmux = <PIN_PB5__PWMH2>,
619 pinctrl_macb0_default: macb0_default {
620 pinmux = <PIN_PD1__GRXCK>,
639 pinctrl_macb0_phy_irq: macb0_phy_irq {
640 pinmux = <PIN_PD3__GPIO>;
644 pinctrl_macb0_rst: macb0_sw_rst {
645 pinmux = <PIN_PD4__GPIO>;
649 pinctrl_flx2_default: flx2_default {
650 pinmux = <PIN_PA6__FLEXCOM2_IO0>,
651 <PIN_PA7__FLEXCOM2_IO1>,
652 <PIN_PA9__FLEXCOM2_IO3>,
653 <PIN_PA10__FLEXCOM2_IO4>;
659 pinctrl-names = "default";
660 pinctrl-0 = <&pinctrl_pwm0_pwm2_default>;
661 status = "disabled"; /* conflict with leds, HSIC */
665 pinctrl-names = "default";
666 pinctrl-0 = <&pinctrl_qspi1_default>;
667 status = "disabled"; /* Conflict with wilc_pwrseq, flx2 */
670 #address-cells = <1>;
672 compatible = "jedec,spi-nor";
674 spi-max-frequency = <80000000>;
675 spi-tx-bus-width = <4>;
676 spi-rx-bus-width = <4>;
680 label = "qspi: at91bootstrap";
681 reg = <0x00000000 0x00040000>;
685 label = "qspi: bootloader";
686 reg = <0x00040000 0x000c0000>;
689 bootloaderenvred@100000 {
690 label = "qspi: bootloader env redundant";
691 reg = <0x00100000 0x00040000>;
694 bootloaderenv@140000 {
695 label = "qspi: bootloader env";
696 reg = <0x00140000 0x00040000>;
700 label = "qspi: device tree";
701 reg = <0x00180000 0x00080000>;
705 label = "qspi: kernel";
706 reg = <0x00200000 0x00600000>;
714 pinctrl-names = "default";
715 pinctrl-0 = <&pinctrl_sdmmc0_default>;
719 &shutdown_controller {
720 debounce-delay-us = <976>;
721 atmel,wakeup-rtc-timer;
728 &spi0 { /* mikrobus3 spi */
729 pinctrl-names = "default";
730 pinctrl-0 = <&pinctrl_mikrobus3_spi &pinctrl_mikrobus3_spi_cs>;
736 compatible = "atmel,tcb-timer";
741 compatible = "atmel,tcb-timer";
747 pinctrl-names = "default";
748 pinctrl-0 = <&pinctrl_mikrobus1_uart>;
755 pinctrl-names = "default";
756 pinctrl-0 = <&pinctrl_mikrobus3_uart>;
763 pinctrl-names = "default";
764 pinctrl-0 = <&pinctrl_mikrobus2_uart>;
771 atmel,vbus-gpio = <&pioA PIN_PD23 GPIO_ACTIVE_HIGH>;
772 pinctrl-names = "default";
773 pinctrl-0 = <&pinctrl_usba_vbus>;
779 pinctrl-names = "default";
780 pinctrl-0 = <&pinctrl_usb_default>;