mirror of
https://github.com/ByteWelder/Tactility.git
synced 2026-10-17 02:45:05 +00:00
180 lines
4.6 KiB
Plaintext
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";
|
|
};
|
|
};
|
|
};
|