/dts-v1/; #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include // 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 = ; }; // i2s0 must be before i2c0 so the codecs can reference it. i2s0 { compatible = "espressif,esp32-i2s"; port = ; 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 = ; 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 = ; 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 = ; 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"; }; }; };