From daded517aaf80dcbc74492f0c031399b99f89d69 Mon Sep 17 00:00:00 2001 From: Ken Van Hoeylandt Date: Tue, 14 Jul 2026 00:09:22 +0200 Subject: [PATCH] Migrate cyd-e32r32p to kernel drivers --- Devices/cyd-e32r32p/CMakeLists.txt | 5 ++- Devices/cyd-e32r32p/cyd,e32r32p.dts | 50 +++++++++++++++++++++++---- Devices/cyd-e32r32p/device.properties | 2 ++ Devices/cyd-e32r32p/devicetree.yaml | 2 ++ 4 files changed, 50 insertions(+), 9 deletions(-) diff --git a/Devices/cyd-e32r32p/CMakeLists.txt b/Devices/cyd-e32r32p/CMakeLists.txt index ce394afbf..a832a83a2 100644 --- a/Devices/cyd-e32r32p/CMakeLists.txt +++ b/Devices/cyd-e32r32p/CMakeLists.txt @@ -1,7 +1,6 @@ -file(GLOB_RECURSE SOURCE_FILES Source/*.c*) +file(GLOB_RECURSE SOURCE_FILES source/*.c*) idf_component_register( SRCS ${SOURCE_FILES} - INCLUDE_DIRS "Source" - REQUIRES Tactility esp_lvgl_port ST7789 XPT2046 PwmBacklight EstimatedPower driver vfs fatfs + REQUIRES TactilityKernel driver ) diff --git a/Devices/cyd-e32r32p/cyd,e32r32p.dts b/Devices/cyd-e32r32p/cyd,e32r32p.dts index b47d2735c..384fb36ea 100644 --- a/Devices/cyd-e32r32p/cyd,e32r32p.dts +++ b/Devices/cyd-e32r32p/cyd,e32r32p.dts @@ -1,13 +1,16 @@ /dts-v1/; #include +#include +#include #include #include #include #include #include -#include -#include +#include +#include +#include / { compatible = "root"; @@ -31,6 +34,31 @@ pin-scl = <&gpio0 25 GPIO_FLAG_NONE>; }; + adc0 { + compatible = "espressif,esp32-adc-oneshot"; + unit-id = ; + channels = ; + }; + + // Matches the deprecated HAL's old ChargeFromAdcVoltage config: adcMultiplier=2.11, + // adcRefVoltage=3.3 (default), voltageMin/Max=3.2/4.2 (default, same as battery-sense's own + // fixed curve - see TactilityKernel/source/drivers/battery_sense.cpp). + battery-sense { + compatible = "battery-sense"; + io-channel = <&adc0 0>; + reference-voltage-mv = <3300>; + multiplier = <2110>; + }; + + display_backlight { + compatible = "espressif,esp32-ledc-backlight"; + // Off by default so display power-on won't show the screen from before the last power loss. + // The display backlight is turned on during the boot process. + status = "disabled"; + pin-backlight = <&gpio0 27 GPIO_FLAG_NONE>; + frequency-hz = <40000>; + }; + spi0 { compatible = "espressif,esp32-spi"; host = ; @@ -39,13 +67,23 @@ pin-mosi = <&gpio0 13 GPIO_FLAG_NONE>; pin-miso = <&gpio0 12 GPIO_FLAG_NONE>; pin-sclk = <&gpio0 14 GPIO_FLAG_NONE>; - + display@0 { - compatible = "display-placeholder"; + compatible = "sitronix,st7789"; + horizontal-resolution = <240>; + vertical-resolution = <320>; + bgr-order; + pixel-clock-hz = <40000000>; + pin-dc = <&gpio0 2 GPIO_FLAG_NONE>; + backlight = <&display_backlight>; }; touch@1 { - compatible = "pointer-placeholder"; + compatible = "xptek,xpt2046"; + x-max = <240>; + y-max = <320>; + mirror-x; + mirror-y; }; }; @@ -56,7 +94,7 @@ pin-mosi = <&gpio0 23 GPIO_FLAG_NONE>; pin-miso = <&gpio0 19 GPIO_FLAG_NONE>; pin-sclk = <&gpio0 18 GPIO_FLAG_NONE>; - + sdcard@0 { compatible = "espressif,esp32-sdspi"; frequency-khz = <20000>; diff --git a/Devices/cyd-e32r32p/device.properties b/Devices/cyd-e32r32p/device.properties index 27f2ad0a6..1a60af40c 100644 --- a/Devices/cyd-e32r32p/device.properties +++ b/Devices/cyd-e32r32p/device.properties @@ -7,6 +7,8 @@ hardware.target=ESP32 hardware.flashSize=4MB hardware.spiRam=false +dependencies.useDeprecatedHal=false + storage.userDataLocation=SD display.size=2.8" diff --git a/Devices/cyd-e32r32p/devicetree.yaml b/Devices/cyd-e32r32p/devicetree.yaml index 34099aabc..5817b2267 100644 --- a/Devices/cyd-e32r32p/devicetree.yaml +++ b/Devices/cyd-e32r32p/devicetree.yaml @@ -1,3 +1,5 @@ dependencies: - Platforms/platform-esp32 + - Drivers/st7789-module + - Drivers/xpt2046-module dts: cyd,e32r32p.dts