Tactility/Devices/waveshare-s3-touch-amoled-206/waveshare,s3-touch-amoled-206.dts

180 lines
4.6 KiB
Plaintext

/dts-v1/;
#include <tactility/bindings/root.h>
#include <tactility/bindings/esp32_ble.h>
#include <tactility/bindings/esp32_wifi_pinned.h>
#include <tactility/bindings/esp32_gpio.h>
#include <tactility/bindings/esp32_i2c_master.h>
#include <tactility/bindings/esp32_i2s.h>
#include <tactility/bindings/esp32_spi.h>
#include <tactility/bindings/esp32_sdspi.h>
#include <tactility/bindings/esp32_usbdevice.h>
#include <tactility/bindings/gpio_hog.h>
#include <bindings/bm8563.h>
#include <bindings/qmi8658.h>
#include <bindings/axp2101.h>
#include <bindings/ft5x06.h>
#include <bindings/es8311.h>
#include <bindings/es7210.h>
#include <bindings/sh8601.h>
#include <bindings/sh8601_backlight.h>
// Reference: https://www.waveshare.com/wiki/ESP32-S3-Touch-AMOLED-2.06
/ {
compatible = "root";
model = "Waveshare S3 Touch AMOLED 2.06";
wifi0 {
compatible = "espressif,esp32-wifi-pinned";
};
ble0 {
compatible = "espressif,esp32-ble";
};
gpio0 {
compatible = "espressif,esp32-gpio";
gpio-count = <49>;
};
// ES8311 speaker amplifier enable, active-high on GPIO46.
amp_enable {
compatible = "gpio-hog";
pin = <&gpio0 46 GPIO_FLAG_NONE>;
mode = <GPIO_HOG_MODE_OUTPUT_HIGH>;
};
// i2s0 must be before i2c0 so the codecs can reference it.
i2s0 {
compatible = "espressif,esp32-i2s";
port = <I2S_NUM_1>;
pin-bclk = <&gpio0 41 GPIO_FLAG_NONE>;
pin-ws = <&gpio0 45 GPIO_FLAG_NONE>;
pin-data-out = <&gpio0 40 GPIO_FLAG_NONE>;
pin-data-in = <&gpio0 42 GPIO_FLAG_NONE>;
pin-mclk = <&gpio0 16 GPIO_FLAG_NONE>;
};
i2c0 {
compatible = "espressif,esp32-i2c-master";
port = <I2C_NUM_0>;
clock-frequency = <400000>;
pin-sda = <&gpio0 15 GPIO_FLAG_PULL_UP>;
pin-scl = <&gpio0 14 GPIO_FLAG_PULL_UP>;
bm8563 {
compatible = "belling,bm8563";
reg = <0x51>;
};
qmi8658 {
compatible = "qst,qmi8658";
reg = <0x6B>;
// Maps the sensor frame onto the device frame (Linux IIO "mount-matrix" convention).
// The QMI8658C is rotated relative to the panel; this matrix is the one calibrated
// on-device so auto-rotate orients the UI correctly.
mount-matrix = <0 -1 0
1 0 0
0 0 1>;
};
// Mirrors the board's original power-up register writes: every LDO enabled, with
// ALDO1 at 1.8V and ALDO2-4 at 3.3V. The BLDO/DLDO rails keep their chip defaults.
axp2101: axp2101 {
compatible = "x-powers,axp2101";
reg = <0x34>;
aldo1-millivolt = <1800>;
aldo1-enabled;
aldo2-millivolt = <3300>;
aldo2-enabled;
aldo3-millivolt = <3300>;
aldo3-enabled;
aldo4-millivolt = <3300>;
aldo4-enabled;
bldo1-enabled;
bldo2-enabled;
dldo1-enabled;
dldo2-enabled;
};
// FT3168, register-compatible with the FT5x06.
touch0 {
compatible = "focaltech,ft5x06";
reg = <0x38>;
x-max = <410>;
y-max = <502>;
pin-reset = <&gpio0 9 GPIO_FLAG_NONE>;
pin-interrupt = <&gpio0 38 GPIO_FLAG_NONE>;
disable-monitor-timeout;
};
es8311: es8311 {
compatible = "everest,es8311";
reg = <0x18>;
i2s = <&i2s0>;
};
es7210 {
compatible = "everest,es7210";
reg = <0x40>;
i2s = <&i2s0>;
// Only MIC1 is wired to a real capsule on this board.
mic-mask = <1>;
};
};
// AMOLED display on QSPI: CS=12, PCLK=11, D0..D3=4..7, RST=8.
spi2 {
compatible = "espressif,esp32-spi";
host = <SPI2_HOST>;
cs-gpios = <&gpio0 12 GPIO_FLAG_NONE>;
pin-mosi = <&gpio0 4 GPIO_FLAG_NONE>;
pin-miso = <&gpio0 5 GPIO_FLAG_NONE>;
pin-wp = <&gpio0 6 GPIO_FLAG_NONE>;
pin-hd = <&gpio0 7 GPIO_FLAG_NONE>;
pin-sclk = <&gpio0 11 GPIO_FLAG_NONE>;
max-transfer-size = <65536>;
display0: display@0 {
compatible = "shenghe,sh8601";
horizontal-resolution = <410>;
vertical-resolution = <502>;
gap-x = <22>;
gap-y = <0>;
pixel-clock-hz = <40000000>;
pin-reset = <&gpio0 8 GPIO_FLAG_NONE>;
// The SH8601 has no backlight pin; brightness is a panel command. The driver finds
// this child device via the display's children, and the backlight uses its parent.
display_backlight {
compatible = "sh8601-backlight";
brightness-default = <255>;
};
};
};
// SD card on SPI3: CS=17, MOSI=1, MISO=3, SCLK=2.
spi3 {
compatible = "espressif,esp32-spi";
host = <SPI3_HOST>;
cs-gpios = <&gpio0 17 GPIO_FLAG_NONE>;
pin-mosi = <&gpio0 1 GPIO_FLAG_NONE>;
pin-miso = <&gpio0 3 GPIO_FLAG_NONE>;
pin-sclk = <&gpio0 2 GPIO_FLAG_NONE>;
max-transfer-size = <4096>;
sdcard@0 {
compatible = "espressif,esp32-sdspi";
frequency-khz = <20000>;
};
};
usbdevice0 {
compatible = "espressif,esp32-usbdevice";
usbdevicemsc0 {
compatible = "espressif,esp32-usbdevice-msc";
};
};
};