zephyr/boards/seeed/wio_terminal/wio_terminal.dts

307 lines
6.3 KiB
Plaintext

/*
* Copyright (c) 2023 Joel Guittet
* SPDX-License-Identifier: Apache-2.0
*/
/dts-v1/;
#include <atmel/samd5xx19.dtsi>
#include "wio_terminal-pinctrl.dtsi"
#include "grove_connectors.dtsi"
#include "raspberrypi_40pins_connector.dtsi"
#include <zephyr/dt-bindings/display/ili9xxx.h>
#include <zephyr/dt-bindings/input/input-event-codes.h>
/ {
model = "Wio Terminal";
compatible = "seeed,wio-terminal";
chosen {
zephyr,sram = &sram0;
zephyr,flash = &flash0;
zephyr,console = &wio_terminal_console;
zephyr,shell-uart = &wio_terminal_console;
zephyr,code-partition = &code_partition;
zephyr,display = &ili9341;
};
/* These aliases are provided for compatibility with samples */
aliases {
led0 = &led0;
sw0 = &user_button_0;
sw1 = &user_button_1;
sw2 = &user_button_2;
i2c0 = &sercom4;
i2c1 = &sercom3;
spi0 = &sercom5;
uart0 = &sercom2;
accel0 = &lis3dh;
sdhc0 = &sdhc0;
};
/* LEDs */
leds {
compatible = "gpio-leds";
led0: led_0 {
label = "LED";
gpios = <&porta 15 GPIO_ACTIVE_HIGH>;
};
};
/* Buttons */
buttons: buttons {
compatible = "gpio-keys";
user_button_0: button_0 {
label = "User Button 0";
gpios = <&portc 26 GPIO_ACTIVE_LOW>;
zephyr,code = <INPUT_KEY_0>;
};
user_button_1: button_1 {
label = "User Button 1";
gpios = <&portc 27 GPIO_ACTIVE_LOW>;
zephyr,code = <INPUT_KEY_1>;
};
user_button_2: button_2 {
label = "User Button 2";
gpios = <&portc 28 GPIO_ACTIVE_LOW>;
zephyr,code = <INPUT_KEY_2>;
};
};
/* Joystick */
joystick: joystick {
compatible = "gpio-keys";
polling-mode;
debounce-interval-ms = <100>;
joy_sel: joystick_selection {
label = "joystick selection";
gpios = <&portd 10 GPIO_ACTIVE_LOW>;
zephyr,code = <INPUT_KEY_ENTER>;
};
joy_down: joystick_down {
label = "joystick down";
gpios = <&portd 8 GPIO_ACTIVE_LOW>;
zephyr,code = <INPUT_KEY_DOWN>;
};
joy_up: joystick_up {
label = "joystick up";
gpios = <&portd 20 GPIO_ACTIVE_LOW>;
zephyr,code = <INPUT_KEY_UP>;
};
joy_left: joystick_left {
label = "joystick left";
gpios = <&portd 12 GPIO_ACTIVE_LOW>;
zephyr,code = <INPUT_KEY_LEFT>;
};
joy_right: joystick_right {
label = "joystick right";
gpios = <&portd 9 GPIO_ACTIVE_LOW>;
zephyr,code = <INPUT_KEY_RIGHT>;
};
};
/* Regulators */
lcd_backlight_en {
compatible = "regulator-fixed";
regulator-name = "lcd_backlight_enable";
enable-gpios = <&portc 5 GPIO_ACTIVE_HIGH>;
regulator-boot-on;
};
rpi_power_3v3_en {
compatible = "regulator-fixed";
regulator-name = "rpi_power_3v3_enable";
enable-gpios = <&portc 15 GPIO_ACTIVE_LOW>;
regulator-boot-on;
};
rpi_power_5v_en {
compatible = "regulator-fixed";
regulator-name = "rpi_power_5v_enable";
enable-gpios = <&portc 14 GPIO_ACTIVE_HIGH>;
regulator-boot-on;
};
usb_power_5v_en {
compatible = "regulator-fixed";
regulator-name = "usb_power_5v_en";
enable-gpios = <&porta 27 GPIO_ACTIVE_LOW>;
};
/* LCD */
mipi_dbi {
compatible = "zephyr,mipi-dbi-spi";
dc-gpios = <&portc 6 GPIO_ACTIVE_HIGH>;
reset-gpios = <&portc 7 GPIO_ACTIVE_LOW>;
#address-cells = <1>;
#size-cells = <0>;
spi-dev = <&sercom7>;
write-only;
ili9341: ili9341@0 {
compatible = "ilitek,ili9341";
mipi-max-frequency = <24000000>;
reg = <0>;
pixel-format = <ILI9XXX_PIXEL_FORMAT_RGB565>;
rotation = <270>;
width = <320>;
height = <240>;
};
};
};
&cpu0 {
clock-frequency = <120000000>;
};
&dmac {
status = "okay";
};
&flash0 {
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
boot_partition: partition@0 {
label = "uf2";
reg = <0x00000000 DT_SIZE_K(16)>;
read-only;
};
code_partition: partition@4000 {
label = "code";
reg = <0x4000 DT_SIZE_K(512-16)>;
read-only;
};
};
};
/* RTL8720D (Wifi/BLE) */
&sercom0 {
status = "okay";
compatible = "atmel,sam0-spi";
#address-cells = <1>;
#size-cells = <0>;
dipo = <2>;
dopo = <0>;
pinctrl-0 = <&sercom0_spi_default>;
pinctrl-names = "default";
cs-gpios = <&portc 25 GPIO_ACTIVE_LOW>;
};
/* RTL8720D (Wifi/BLE) */
&sercom1 {
status = "okay";
compatible = "atmel,sam0-uart";
current-speed = <115200>;
rxpo = <1>;
txpo = <0>;
pinctrl-0 = <&sercom1_uart_default>;
pinctrl-names = "default";
};
/* UART, Raspberry Pi connector */
&sercom2 {
status = "okay";
compatible = "atmel,sam0-uart";
current-speed = <115200>;
rxpo = <1>;
txpo = <0>;
pinctrl-0 = <&sercom2_uart_default>;
pinctrl-names = "default";
};
/* I2C1, Raspberry Pi and Groove connectors */
&sercom3 {
status = "okay";
compatible = "atmel,sam0-i2c";
clock-frequency = <I2C_BITRATE_FAST>;
#address-cells = <1>;
#size-cells = <0>;
pinctrl-0 = <&sercom3_i2c_default>;
pinctrl-names = "default";
};
/* I2C0, LIS3DH, ATECC608, Raspberry Pi connector */
&sercom4 {
status = "okay";
compatible = "atmel,sam0-i2c";
clock-frequency = <I2C_BITRATE_HIGH>;
#address-cells = <1>;
#size-cells = <0>;
pinctrl-0 = <&sercom4_i2c_default>;
pinctrl-names = "default";
/* LIS3DH */
lis3dh: lis3dh@18 {
compatible = "st,lis3dh", "st,lis2dh";
status = "okay";
reg = <0x18>;
irq-gpios = <&portc 21 GPIO_ACTIVE_HIGH>;
};
/* ATECC608A */
atecc608a@6a {
compatible = "atmel,atecc608";
reg = <0x6a>;
};
};
/* SPI, Raspberry Pi connector */
&sercom5 {
status = "okay";
compatible = "atmel,sam0-spi";
#address-cells = <1>;
#size-cells = <0>;
dipo = <2>;
dopo = <0>;
pinctrl-0 = <&sercom5_spi_default>;
pinctrl-names = "default";
cs-gpios = <&portb 1 GPIO_ACTIVE_LOW>;
};
/* microSD Card */
&sercom6 {
status = "okay";
compatible = "atmel,sam0-spi";
#address-cells = <1>;
#size-cells = <0>;
dipo = <2>;
dopo = <0>;
pinctrl-0 = <&sercom6_spi_default>;
pinctrl-names = "default";
cs-gpios = <&portc 19 GPIO_ACTIVE_LOW>;
/* microSD Card */
sdhc0: sdhc@0 {
compatible = "zephyr,sdhc-spi-slot";
reg = <0>;
spi-max-frequency = <24000000>;
mmc {
compatible = "zephyr,sdmmc-disk";
};
};
};
/* LCD */
&sercom7 {
status = "okay";
compatible = "atmel,sam0-spi";
#address-cells = <1>;
#size-cells = <0>;
dipo = <2>;
dopo = <3>;
pinctrl-0 = <&sercom7_spi_default>;
pinctrl-names = "default";
cs-gpios = <&portb 21 GPIO_ACTIVE_LOW>;
};
/* USB */
zephyr_udc0: &usb0 {
status = "okay";
pinctrl-0 = <&usb_dc_default>;
pinctrl-names = "default";
wio_terminal_console: wio_terminal_console {
compatible = "zephyr,cdc-acm-uart";
};
};