Path: blob/master/arch/arm/boot/dts/microchip/at91-sama7g54_curiosity.dts
29271 views
// 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 <[email protected]> * */ /dts-v1/; #include "sama7g5-pinfunc.h" #include "sama7g5.dtsi" #include <dt-bindings/input/input.h> #include <dt-bindings/leds/common.h> #include <dt-bindings/mfd/atmel-flexcom.h> #include <dt-bindings/pinctrl/at91.h> / { 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 = <KEY_PROG1>; wakeup-source; }; }; leds { compatible = "gpio-leds"; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_led_gpio_default>; led-red { color = <LED_COLOR_ID_RED>; function = LED_FUNCTION_POWER; gpios = <&pioA PIN_PD13 GPIO_ACTIVE_HIGH>; default-state = "off"; }; led-green { color = <LED_COLOR_ID_GREEN>; function = LED_FUNCTION_BOOT; gpios = <&pioA PIN_PD14 GPIO_ACTIVE_HIGH>; default-state = "off"; }; led-blue { color = <LED_COLOR_ID_BLUE>; 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 */ }; reg_5v: regulator-5v { compatible = "regulator-fixed"; regulator-name = "5V_MAIN"; regulator-min-microvolt = <5000000>; regulator-max-microvolt = <5000000>; regulator-always-on; }; }; &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 = <ATMEL_FLEXCOM_MODE_USART>; status = "okay"; uart3: serial@200 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_flx3_default>; status = "okay"; }; }; &flx10 { atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_TWI>; 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"; power-monitor@1f { compatible = "microchip,pac1934"; reg = <0x1f>; #address-cells = <1>; #size-cells = <0>; channel@1 { reg = <0x1>; shunt-resistor-micro-ohms = <47000>; label = "VDD3V3"; }; channel@2 { reg = <0x2>; shunt-resistor-micro-ohms = <47000>; label = "VDDIODDR"; }; channel@3 { reg = <0x3>; shunt-resistor-micro-ohms = <47000>; label = "VDDCORE"; }; channel@4 { reg = <0x4>; shunt-resistor-micro-ohms = <47000>; label = "VDDCPU"; }; }; eeprom@51 { compatible = "atmel,24c02"; reg = <0x51>; pagesize = <16>; size = <256>; vcc-supply = <&vdd_3v3>; }; pmic@5b { compatible = "microchip,mcp16502"; reg = <0x5b>; lvin-supply = <®_5v>; pvin1-supply = <®_5v>; pvin2-supply = <®_5v>; pvin3-supply = <®_5v>; pvin4-supply = <®_5v>; 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-microvolt = <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-microvolt = <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-microvolt = <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-microvolt = <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; label = "at91-qspi"; partitions { compatible = "fixed-partitions"; #address-cells = <1>; #size-cells = <1>; at91bootstrap@0 { label = "qspi1: at91bootstrap"; reg = <0x0 0x40000>; }; bootloader@40000 { label = "qspi1: u-boot"; reg = <0x40000 0x100000>; }; bootloaderenv@140000 { label = "qspi1: u-boot env"; reg = <0x140000 0x40000>; }; dtb@180000 { label = "qspi1: device tree"; reg = <0x180000 0x80000>; }; kernel@200000 { label = "qspi1: kernel"; reg = <0x200000 0x600000>; }; }; }; }; &pioA { pinctrl_flx3_default: flx3-default { pinmux = <PIN_PD16__FLEXCOM3_IO0>, <PIN_PD17__FLEXCOM3_IO1>; bias-pull-up; }; pinctrl_flx10_default: flx10-default { pinmux = <PIN_PC30__FLEXCOM10_IO0>, <PIN_PC31__FLEXCOM10_IO1>; bias-pull-up; }; pinctrl_key_gpio_default: key-gpio-default { pinmux = <PIN_PD19__GPIO>; bias-pull-up; }; pinctrl_led_gpio_default: led-gpio-default { pinmux = <PIN_PD13__GPIO>, <PIN_PD14__GPIO>, <PIN_PB15__GPIO>; bias-pull-up; }; pinctrl_mikrobus1_an_default: mikrobus1-an-default { pinmux = <PIN_PC15__GPIO>; bias-disable; }; pinctrl_mikrobus2_an_default: mikrobus2-an-default { pinmux = <PIN_PC13__GPIO>; bias-disable; }; pinctrl_nand_default: nand-default { pinmux = <PIN_PD9__D0>, <PIN_PD10__D1>, <PIN_PD11__D2>, <PIN_PC21__D3>, <PIN_PC22__D4>, <PIN_PC23__D5>, <PIN_PC24__D6>, <PIN_PD2__D7>, <PIN_PD3__NANDRDY>, <PIN_PD4__NCS3_NANDCS>, <PIN_PD5__NWE_NWR0_NANDWE>, <PIN_PD6__NRD_NANDOE>, <PIN_PD7__A21_NANDALE>, <PIN_PD8__A22_NANDCLE>; bias-disable; slew-rate = <0>; }; pinctrl_qspi1_default: qspi1-default { pinmux = <PIN_PB22__QSPI1_IO3>, <PIN_PB23__QSPI1_IO2>, <PIN_PB24__QSPI1_IO1>, <PIN_PB25__QSPI1_IO0>, <PIN_PB26__QSPI1_CS>, <PIN_PB27__QSPI1_SCK>; bias-pull-up; slew-rate = <0>; }; pinctrl_sdmmc0_default: sdmmc0-default { pinmux = <PIN_PA0__SDMMC0_CK>, <PIN_PA1__SDMMC0_CMD>, <PIN_PA2__SDMMC0_RSTN>, <PIN_PA3__SDMMC0_DAT0>, <PIN_PA4__SDMMC0_DAT1>, <PIN_PA5__SDMMC0_DAT2>, <PIN_PA6__SDMMC0_DAT3>; bias-pull-up; slew-rate = <0>; }; pinctrl_sdmmc1_default: sdmmc1-default { pinmux = <PIN_PB29__SDMMC1_CMD>, <PIN_PB30__SDMMC1_CK>, <PIN_PB31__SDMMC1_DAT0>, <PIN_PC0__SDMMC1_DAT1>, <PIN_PC1__SDMMC1_DAT2>, <PIN_PC2__SDMMC1_DAT3>, <PIN_PC4__SDMMC1_CD>; 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"; };