307 lines
6.3 KiB
Plaintext
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";
|
|
};
|
|
};
|