// SPDX-License-Identifier: (GPL-2.0+ OR MIT) /* * at91-sama7g54_curiosity.dts - Device Tree file for SAMA7G54 Curiosity Board * * Copyright (C) 2024 Microchip Technology Inc. and its subsidiaries * * Author: Mihai Sain * */ /dts-v1/; #include "sama7g5-pinfunc.h" #include "sama7g5.dtsi" #include #include #include #include / { model = "Microchip SAMA7G54 Curiosity"; compatible = "microchip,sama7g54-curiosity", "microchip,sama7g5", "microchip,sama7"; aliases { serial0 = &uart3; i2c0 = &i2c10; }; chosen { stdout-path = "serial0:115200n8"; }; gpio-keys { compatible = "gpio-keys"; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_key_gpio_default>; button-user { label = "user-button"; gpios = <&pioA PIN_PD19 GPIO_ACTIVE_LOW>; linux,code = ; wakeup-source; }; }; leds { compatible = "gpio-leds"; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_led_gpio_default>; led-red { color = ; function = LED_FUNCTION_POWER; gpios = <&pioA PIN_PD13 GPIO_ACTIVE_HIGH>; default-state = "off"; }; led-green { color = ; function = LED_FUNCTION_BOOT; gpios = <&pioA PIN_PD14 GPIO_ACTIVE_HIGH>; default-state = "off"; }; led-blue { color = ; function = LED_FUNCTION_CPU; gpios = <&pioA PIN_PB15 GPIO_ACTIVE_HIGH>; linux,default-trigger = "heartbeat"; }; }; memory@60000000 { device_type = "memory"; reg = <0x60000000 0x10000000>; /* 256 MiB DDR3L-1066 16-bit */ }; }; &adc { vddana-supply = <&vddout25>; vref-supply = <&vddout25>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_mikrobus1_an_default &pinctrl_mikrobus2_an_default>; status = "okay"; }; &cpu0 { cpu-supply = <&vddcpu>; }; &dma0 { status = "okay"; }; &dma1 { status = "okay"; }; &dma2 { status = "okay"; }; &ebi { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_nand_default>; status = "okay"; nand_controller: nand-controller { status = "okay"; nand@3 { reg = <0x3 0x0 0x800000>; atmel,rb = <0>; nand-bus-width = <8>; nand-ecc-mode = "hw"; nand-ecc-strength = <8>; nand-ecc-step-size = <512>; nand-on-flash-bbt; label = "nand"; partitions { compatible = "fixed-partitions"; #address-cells = <1>; #size-cells = <1>; at91bootstrap@0 { label = "nand: at91bootstrap"; reg = <0x0 0x40000>; }; bootloader@40000 { label = "nand: u-boot"; reg = <0x40000 0x100000>; }; bootloaderenv@140000 { label = "nand: u-boot env"; reg = <0x140000 0x40000>; }; dtb@180000 { label = "nand: device tree"; reg = <0x180000 0x80000>; }; kernel@200000 { label = "nand: kernel"; reg = <0x200000 0x600000>; }; rootfs@800000 { label = "nand: rootfs"; reg = <0x800000 0x1f800000>; }; }; }; }; }; &flx3 { atmel,flexcom-mode = ; status = "okay"; uart3: serial@200 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_flx3_default>; status = "okay"; }; }; &flx10 { atmel,flexcom-mode = ; status = "okay"; i2c10: i2c@600 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_flx10_default>; i2c-analog-filter; i2c-digital-filter; i2c-digital-filter-width-ns = <35>; status = "okay"; eeprom@51 { compatible = "atmel,24c02"; reg = <0x51>; pagesize = <16>; size = <256>; vcc-supply = <&vdd_3v3>; }; pmic@5b { compatible = "microchip,mcp16502"; reg = <0x5b>; regulators { vdd_3v3: VDD_IO { regulator-name = "VDD_IO"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; regulator-initial-mode = <2>; regulator-allowed-modes = <2>, <4>; regulator-always-on; regulator-state-standby { regulator-on-in-suspend; regulator-suspend-microvolt = <3300000>; regulator-mode = <4>; }; regulator-state-mem { regulator-off-in-suspend; regulator-mode = <4>; }; }; vddioddr: VDD_DDR { regulator-name = "VDD_DDR"; regulator-min-microvolt = <1350000>; regulator-max-microvolt = <1350000>; regulator-initial-mode = <2>; regulator-allowed-modes = <2>, <4>; regulator-always-on; regulator-state-standby { regulator-on-in-suspend; regulator-suspend-microvolt = <1350000>; regulator-mode = <4>; }; regulator-state-mem { regulator-on-in-suspend; regulator-suspend-microvolt = <1350000>; regulator-mode = <4>; }; }; vddcore: VDD_CORE { regulator-name = "VDD_CORE"; regulator-min-microvolt = <1150000>; regulator-max-microvolt = <1150000>; regulator-initial-mode = <2>; regulator-allowed-modes = <2>, <4>; regulator-always-on; regulator-state-standby { regulator-on-in-suspend; regulator-suspend-voltage = <1150000>; regulator-mode = <4>; }; regulator-state-mem { regulator-off-in-suspend; regulator-mode = <4>; }; }; vddcpu: VDD_OTHER { regulator-name = "VDD_OTHER"; regulator-min-microvolt = <1050000>; regulator-max-microvolt = <1250000>; regulator-initial-mode = <2>; regulator-allowed-modes = <2>, <4>; regulator-ramp-delay = <3125>; regulator-always-on; regulator-state-standby { regulator-on-in-suspend; regulator-suspend-voltage = <1050000>; regulator-mode = <4>; }; regulator-state-mem { regulator-off-in-suspend; regulator-mode = <4>; }; }; vldo1: LDO1 { regulator-name = "LDO1"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; regulator-always-on; regulator-state-standby { regulator-suspend-voltage = <1800000>; regulator-on-in-suspend; }; regulator-state-mem { regulator-off-in-suspend; }; }; vldo2: LDO2 { regulator-name = "LDO2"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; regulator-always-on; regulator-state-standby { regulator-suspend-voltage = <3300000>; regulator-on-in-suspend; }; regulator-state-mem { regulator-off-in-suspend; }; }; }; }; }; }; &main_xtal { clock-frequency = <24000000>; }; &qspi1 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_qspi1_default>; status = "okay"; flash@0 { compatible = "jedec,spi-nor"; reg = <0x0>; spi-max-frequency = <100000000>; spi-tx-bus-width = <4>; spi-rx-bus-width = <4>; m25p,fast-read; }; }; &pioA { pinctrl_flx3_default: flx3-default { pinmux = , ; bias-pull-up; }; pinctrl_flx10_default: flx10-default { pinmux = , ; bias-pull-up; }; pinctrl_key_gpio_default: key-gpio-default { pinmux = ; bias-pull-up; }; pinctrl_led_gpio_default: led-gpio-default { pinmux = , , ; bias-pull-up; }; pinctrl_mikrobus1_an_default: mikrobus1-an-default { pinmux = ; bias-disable; }; pinctrl_mikrobus2_an_default: mikrobus2-an-default { pinmux = ; bias-disable; }; pinctrl_nand_default: nand-default { pinmux = , , , , , , , , , , , , , ; bias-disable; slew-rate = <0>; }; pinctrl_qspi1_default: qspi1-default { pinmux = , , , , , ; bias-pull-up; slew-rate = <0>; }; pinctrl_sdmmc0_default: sdmmc0-default { pinmux = , , , , , , ; bias-pull-up; slew-rate = <0>; }; pinctrl_sdmmc1_default: sdmmc1-default { pinmux = , , , , , , ; bias-pull-up; slew-rate = <0>; }; }; &rtt { atmel,rtt-rtc-time-reg = <&gpbr 0x0>; }; /* M.2 slot for wireless card */ &sdmmc0 { bus-width = <4>; cd-gpios = <&pioA 31 GPIO_ACTIVE_LOW>; disable-wp; sdhci-caps-mask = <0x0 0x00200000>; vmmc-supply = <&vdd_3v3>; vqmmc-supply = <&vdd_3v3>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_sdmmc0_default>; status = "okay"; }; /* micro SD socket */ &sdmmc1 { bus-width = <4>; disable-wp; sdhci-caps-mask = <0x0 0x00200000>; vmmc-supply = <&vdd_3v3>; vqmmc-supply = <&vdd_3v3>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_sdmmc1_default>; status = "okay"; }; &slow_xtal { clock-frequency = <32768>; }; &shdwc { debounce-delay-us = <976>; status = "okay"; input@0 { reg = <0>; }; }; &tcb0 { timer0: timer@0 { compatible = "atmel,tcb-timer"; reg = <0>; }; timer1: timer@1 { compatible = "atmel,tcb-timer"; reg = <1>; }; }; &trng { status = "okay"; }; &vddout25 { vin-supply = <&vdd_3v3>; status = "okay"; };