Remove all USB and CDC ACM configuration in favor of common configuraiton. Do not adapt board-specific configurations such as unknown PID/VID or string descriptors. There is no justification for using them on specific boards, and we do not have formal approval to use them in the project tree. Also, we need more uniform configuration, since the main reason for enabling CDC ACM here is to allow users to run examples like hello_world right out of the box. Of course, anyone is free to customize these settings in their fork or downstream project. Signed-off-by: Johann Fischer <johann.fischer@nordicsemi.no>
303 lines
6.2 KiB
Text
303 lines
6.2 KiB
Text
/*
|
|
* 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,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";
|
|
disk-name = "SD";
|
|
};
|
|
};
|
|
};
|
|
|
|
/* 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";
|
|
};
|
|
|
|
#include <../boards/common/usb/cdc_acm_serial.dtsi>
|