// SPDX-License-Identifier: (GPL-2.0+ OR MIT) /* * at91-sam9x75_curiosity.dts - Device Tree file for Microchip SAM9X75 Curiosity board * * Copyright (C) 2023 Microchip Technology Inc. and its subsidiaries * * Author: Varshini Rajendran */ /dts-v1/; #include "sam9x7.dtsi" #include / { model = "Microchip SAM9X75 Curiosity"; compatible = "microchip,sam9x75-curiosity", "microchip,sam9x7", "atmel,at91sam9"; aliases { i2c0 = &i2c6; i2c7 = &i2c7; serial1 = &uart1; can0 = &can0; can1 = &can1; serial5 = &uart5; /* TX not working */ }; chosen { stdout-path = "serial0:115200n8"; }; gpio-keys { compatible = "gpio-keys"; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_key_gpio_default>; button-user { label = "USER"; gpios = <&pioC 9 GPIO_ACTIVE_LOW>; linux,code = ; wakeup-source; }; }; led-controller { compatible = "gpio-leds"; led_red: led-red { label = "red"; gpios = <&pioC 14 GPIO_ACTIVE_HIGH>; pinctrl-0 = <&pinctrl_red_led_gpio_default>; }; led_green: led-green { label = "green"; gpios = <&pioC 21 GPIO_ACTIVE_HIGH>; pinctrl-0 = <&pinctrl_green_led_gpio_default>; }; led_blue: led-blue { label = "blue"; gpios = <&pioC 20 GPIO_ACTIVE_HIGH>; pinctrl-0 = <&pinctrl_blue_led_gpio_default>; linux,default-trigger = "heartbeat"; }; }; memory@20000000 { reg = <0x20000000 0x10000000>; device_type = "memory"; }; cc33xx_en_reg: fixedregulator@1 { compatible = "regulator-fixed"; regulator-name = "cc33xx-en-regulator"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; gpio = <&pioA 21 GPIO_ACTIVE_HIGH>; enable-active-high; }; }; &classd { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_classd_default>; atmel,pwm-type = "single"; atmel,non-overlap-time = <20>; status = "okay"; }; &adc { vddana-supply = <&vdd_3v3>; vref-supply = <&vdd_3v3>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_adc_default &pinctrl_adtrg_default>; status = "okay"; }; &dbgu { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_dbgu_default>; status = "okay"; }; &flx5 { atmel,flexcom-mode = ; status = "okay"; }; &uart5 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_flx5_uart5_default>; status = "okay"; /* bluetooth { compatible = "ti,cc33xx-bt"; cc33xx-supply = <&cc33xx_en_reg>; max-speed = <115200>; }; */ }; /* &can0 { status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_can0>; }; */ &can1 { status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_can1>; }; &dma0 { status = "okay"; }; &ebi { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_ebi_addr_nand &pinctrl_ebi_data_0_7>; status = "okay"; nand_controller: nand-controller { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_nand_oe_we &pinctrl_nand_cs &pinctrl_nand_rb>; status = "okay"; nand@2 { reg = <0x2 0x0 0x800000>; rb-gpios = <&pioD 14 GPIO_ACTIVE_HIGH>; cs-gpios = <&pioD 4 GPIO_ACTIVE_HIGH>; nand-bus-width = <8>; nand-ecc-mode = "hw"; nand-ecc-strength = <8>; nand-ecc-step-size = <512>; nand-on-flash-bbt; label = "atmel_nand"; }; }; }; &ehci0 { status = "okay"; }; /* &flx1 { atmel,flexcom-mode = ; status = "okay"; uart1: serial@200 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_flx1_usart_default>; status = "okay"; }; }; */ &flx6 { atmel,flexcom-mode = ; status = "okay"; }; &i2c6 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_flx6_default>; i2c-analog-filter; i2c-digital-filter; i2c-digital-filter-width-ns = <35>; status = "okay"; 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-mode = <4>; }; regulator-state-mem { 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-mode = <4>; }; regulator-state-mem { regulator-on-in-suspend; 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-mode = <4>; }; regulator-state-mem { regulator-mode = <4>; }; }; dcdc4: VDD_OTHER { regulator-name = "VDD_OTHER"; regulator-min-microvolt = <1150000>; regulator-max-microvolt = <1150000>; regulator-initial-mode = <2>; regulator-allowed-modes = <2>, <4>; regulator-ramp-delay = <3125>; regulator-always-on; regulator-state-standby { regulator-on-in-suspend; regulator-mode = <4>; }; regulator-state-mem { regulator-mode = <4>; }; }; vldo1: LDO1 { regulator-name = "LDO1"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; regulator-always-on; regulator-state-standby { regulator-on-in-suspend; }; }; vldo2: LDO2 { regulator-name = "LDO2"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; regulator-state-standby { regulator-on-in-suspend; }; }; }; }; }; &flx7 { atmel,flexcom-mode = ; status = "okay"; }; &i2c7 { dmas = <0>, <0>; i2c-analog-filter; i2c-digital-filter; i2c-digital-filter-width-ns = <35>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_flx7_default>; status = "okay"; power-monitor@10 { compatible = "microchip,pac1934"; reg = <0x10>; #address-cells = <1>; #size-cells = <0>; channel@1 { reg = <0x1>; shunt-resistor-micro-ohms = <10000>; label = "VDD3V3"; }; channel@2 { reg = <0x2>; shunt-resistor-micro-ohms = <10000>; label = "DCDC4"; }; channel@3 { reg = <0x3>; shunt-resistor-micro-ohms = <10000>; label = "VDDCORE"; }; channel@4 { reg = <0x4>; shunt-resistor-micro-ohms = <10000>; label = "VDDIODDR"; }; }; }; &i2s { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_i2s_default>; #sound-dai-cells = <0>; status = "disabled"; }; &main_xtal { clock-frequency = <24000000>; }; &ohci0 { num-ports = <3>; atmel,vbus-gpio = <0 &pioC 27 GPIO_ACTIVE_HIGH &pioC 31 GPIO_ACTIVE_HIGH>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_usb_default>; status = "okay"; }; &pinctrl { classd { pinctrl_classd_default: classd-default { atmel,pins = , ; }; }; /* can0 { pinctrl_can0: can0-pins { atmel,pins = < AT91_PIOA 26 AT91_PERIPH_B AT91_PINCTRL_NONE // CAN0_RX AT91_PIOA 27 AT91_PERIPH_B AT91_PINCTRL_NONE // CAN0_TX >; }; }; */ can1 { pinctrl_can1: can1-pins { atmel,pins = < AT91_PIOA 29 AT91_PERIPH_B AT91_PINCTRL_NONE /* CAN1_RX */ AT91_PIOA 28 AT91_PERIPH_B AT91_PINCTRL_NONE /* CAN1_TX */ >; }; }; adc { pinctrl_adc_default: adc-default { atmel,pins = ; }; pinctrl_adtrg_default: adtrg-default { atmel,pins = ; }; }; dbgu { pinctrl_dbgu_default: dbgu-default { atmel,pins = , ; }; }; ebi { pinctrl_ebi_data_0_7: ebi-data-lsb-0 { atmel,pins = ; }; pinctrl_ebi_addr_nand: ebi-addr-0 { atmel,pins = ; }; }; qspi { pinctrl_qspi: pinctrl-qspi { atmel,pins = ; }; }; flexcom { pinctrl_flx6_default: flx6-default { atmel,pins = , ; }; pinctrl_flx7_default: flx7-default { atmel,pins = , ; }; /* pinctrl_flx1_usart_default: flx1-usart-default { atmel,pins = ; }; */ pinctrl_flx5_uart5_default: flx5-uart-default { atmel,pins = < AT91_PIOA 16 AT91_PERIPH_B AT91_PINCTRL_NONE /* BLE TX */ AT91_PIOA 15 AT91_PERIPH_B AT91_PINCTRL_NONE /* BLE RX */ AT91_PIOA 14 AT91_PERIPH_B AT91_PINCTRL_NONE /* BLE CTS IO3*/ AT91_PIOA 30 AT91_PERIPH_B AT91_PINCTRL_NONE /* BLE RTS IO4*/ >; }; }; gpio-keys { pinctrl_key_gpio_default: key-gpio-default { atmel,pins = ; }; }; i2s { pinctrl_i2s_default: i2s-default { atmel,pins = , /* I2SCK */ , /* I2SWS */ , /* I2SDIN */ , /* I2SDOUT */ ; /* I2SMCK */ }; }; led-controller { pinctrl_red_led_gpio_default: red-led-gpio-default { atmel,pins = ; }; pinctrl_green_led_gpio_default: green-led-gpio-default { atmel,pins = ; }; pinctrl_blue_led_gpio_default: blue-led-gpio-default { atmel,pins = ; }; }; nand { pinctrl_nand_oe_we: nand-oe-we-0 { atmel,pins = ; }; pinctrl_nand_rb: nand-rb-0 { atmel,pins = ; }; pinctrl_nand_cs: nand-cs-0 { atmel,pins = ; }; }; ohci0 { pinctrl_usb_default: usb-default { atmel,pins = ; }; }; sdmmc0 { pinctrl_sdmmc0_default: sdmmc0-default { atmel,pins = , /* PA2 CK periph A with pullup */ , /* PA1 CMD periph A with pullup */ , /* PA0 DAT0 periph A */ , /* PA3 DAT1 periph A with pullup */ , /* PA4 DAT2 periph A with pullup */ ; /* PA5 DAT3 periph A with pullup */ }; }; /* for wifi */ sdmmc1 { pinctrl_sdmmc1_default: sdmmc1-default { atmel,pins = ; /* PA8 DAT3 periph B with pullup */ }; }; usb0 { pinctrl_usba_vbus: usba-vbus { atmel,pins = ; }; }; }; /* pinctrl */ &poweroff { debounce-delay-us = <976>; status = "okay"; input@0 { reg = <0>; }; }; &rtt { atmel,rtt-rtc-time-reg = <&gpbr 0x0>; }; &qspi { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_qspi>; status = "okay"; flash@0 { #address-cells = <1>; #size-cells = <1>; compatible = "jedec,spi-nor"; reg = <0>; spi-max-frequency = <100000000>; spi-tx-bus-width = <4>; spi-rx-bus-width = <4>; m25p,fast-read; at91bootstrap@0 { label = "qspi: at91bootstrap"; reg = <0x0 0x40000>; }; bootloader@40000 { label = "qspi: bootloader"; reg = <0x40000 0xc0000>; }; bootloaderenvred@100000 { label = "qspi: bootloader env redundant"; reg = <0x100000 0x40000>; }; bootloaderenv@140000 { label = "qspi: bootloader env"; reg = <0x140000 0x40000>; }; dtb@180000 { label = "qspi: device tree"; reg = <0x180000 0x80000>; }; kernel@200000 { label = "qspi: kernel"; reg = <0x200000 0x600000>; }; }; }; &sdmmc0 { bus-width = <4>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_sdmmc0_default>; cd-gpios = <&pioA 23 GPIO_ACTIVE_LOW>; disable-wp; status = "okay"; }; &sdmmc1 { bus-width = <4>; mmc-ddr-3_3v; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_sdmmc1_default>; status = "disabled"; }; &slow_xtal { clock-frequency = <32768>; }; &tcb { timer0: timer@0 { compatible = "atmel,tcb-timer"; reg = <0>; }; timer1: timer@1 { compatible = "atmel,tcb-timer"; reg = <1>; }; }; &trng { status = "okay"; }; &usb0 { atmel,vbus-gpio = <&pioC 8 GPIO_ACTIVE_HIGH>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_usba_vbus>; status = "okay"; }; &watchdog { status = "okay"; };