diff --git a/Devices/cyd-8048s043c/CMakeLists.txt b/Devices/cyd-8048s043c/CMakeLists.txt index c6e98b904..a832a83a2 100644 --- a/Devices/cyd-8048s043c/CMakeLists.txt +++ b/Devices/cyd-8048s043c/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 esp_lcd RgbDisplay GT911 PwmBacklight driver vfs fatfs + REQUIRES TactilityKernel driver ) diff --git a/Devices/cyd-8048s043c/Source/Configuration.cpp b/Devices/cyd-8048s043c/Source/Configuration.cpp deleted file mode 100644 index fb4a31a9d..000000000 --- a/Devices/cyd-8048s043c/Source/Configuration.cpp +++ /dev/null @@ -1,22 +0,0 @@ -#include "PwmBacklight.h" -#include "devices/Display.h" - -#include - -using namespace tt::hal; - -static bool initBoot() { - // Display backlight - return driver::pwmbacklight::init(GPIO_NUM_2, 200); -} - -static DeviceVector createDevices() { - return { - createDisplay(), - }; -} - -extern const Configuration hardwareConfiguration = { - .initBoot = initBoot, - .createDevices = createDevices -}; diff --git a/Devices/cyd-8048s043c/Source/devices/Display.cpp b/Devices/cyd-8048s043c/Source/devices/Display.cpp deleted file mode 100644 index c2ecaae72..000000000 --- a/Devices/cyd-8048s043c/Source/devices/Display.cpp +++ /dev/null @@ -1,108 +0,0 @@ -#include "Display.h" - -#include -#include -#include -#include -#include - -std::shared_ptr createTouch() { - // Note for future changes: Reset pin is 38 and interrupt pin is 18 - // or INT = NC, schematic and other info floating around is kinda conflicting... - auto* i2c = device_find_by_name("i2c_internal"); - check(i2c); - auto configuration = std::make_unique( - i2c, - 800, - 480 - ); - - return std::make_shared(std::move(configuration)); -} - -std::shared_ptr createDisplay() { - auto touch = createTouch(); - - constexpr uint32_t bufferPixels = 800 * 10; - - esp_lcd_rgb_panel_config_t rgb_panel_config = { - .clk_src = LCD_CLK_SRC_DEFAULT, - .timings = { - .pclk_hz = 16000000, - .h_res = 800, - .v_res = 480, - .hsync_pulse_width = 4, - .hsync_back_porch = 8, - .hsync_front_porch = 8, - .vsync_pulse_width = 4, - .vsync_back_porch = 8, - .vsync_front_porch = 8, - .flags = { - .hsync_idle_low = false, - .vsync_idle_low = false, - .de_idle_high = false, - .pclk_active_neg = true, - .pclk_idle_high = false - } - }, - .data_width = 16, - .bits_per_pixel = 0, - .num_fbs = 2, - .bounce_buffer_size_px = bufferPixels, - .sram_trans_align = 8, - .psram_trans_align = 64, - .hsync_gpio_num = GPIO_NUM_39, - .vsync_gpio_num = GPIO_NUM_41, - .de_gpio_num = GPIO_NUM_40 , - .pclk_gpio_num = GPIO_NUM_42, - .disp_gpio_num = GPIO_NUM_NC, - .data_gpio_nums = { - GPIO_NUM_8, // B3 - GPIO_NUM_3, // B4 - GPIO_NUM_46, // B5 - GPIO_NUM_9, // B6 - GPIO_NUM_1, // B7 - GPIO_NUM_5, // G2 - GPIO_NUM_6, // G3 - GPIO_NUM_7, // G4 - GPIO_NUM_15, // G5 - GPIO_NUM_16, // G6 - GPIO_NUM_4, // G7 - GPIO_NUM_45, // R3 - GPIO_NUM_48, // R4 - GPIO_NUM_47, // R5 - GPIO_NUM_21, // R6 - GPIO_NUM_14, // R7 - }, - .flags = { - .disp_active_low = false, - .refresh_on_demand = false, - .fb_in_psram = true, - .double_fb = true, - .no_fb = false, - .bb_invalidate_cache = false - } - }; - - RgbDisplay::BufferConfiguration buffer_config = { - .size = (800 * 480), - .useSpi = true, - .doubleBuffer = true, - .bounceBufferMode = true, - .avoidTearing = false - }; - - auto configuration = std::make_unique( - rgb_panel_config, - buffer_config, - touch, - LV_COLOR_FORMAT_RGB565, - false, - false, - false, - false, - driver::pwmbacklight::setBacklightDuty - ); - - return std::make_shared(std::move(configuration)); -} diff --git a/Devices/cyd-8048s043c/Source/devices/Display.h b/Devices/cyd-8048s043c/Source/devices/Display.h deleted file mode 100644 index 5a0d81b38..000000000 --- a/Devices/cyd-8048s043c/Source/devices/Display.h +++ /dev/null @@ -1,5 +0,0 @@ -#pragma once - -#include "Tactility/hal/display/DisplayDevice.h" - -std::shared_ptr createDisplay(); diff --git a/Devices/cyd-8048s043c/cyd,8048s043c.dts b/Devices/cyd-8048s043c/cyd,8048s043c.dts index 68087ce95..0d82c1d20 100644 --- a/Devices/cyd-8048s043c/cyd,8048s043c.dts +++ b/Devices/cyd-8048s043c/cyd,8048s043c.dts @@ -8,6 +8,9 @@ #include #include #include +#include +#include +#include / { compatible = "root"; @@ -34,6 +37,16 @@ clock-frequency = <400000>; pin-sda = <&gpio0 19 GPIO_FLAG_NONE>; pin-scl = <&gpio0 20 GPIO_FLAG_NONE>; + + touch0 { + // Reset pin 38 and interrupt pin 18 (or INT = NC) exist on the board but are not + // wired up here - conflicting schematic info, unverified (matches the original + // deprecated-HAL config). + compatible = "goodix,gt911"; + reg = <0x5D>; + x-max = <800>; + y-max = <480>; + }; }; i2c_external { @@ -51,13 +64,56 @@ pin-mosi = <&gpio0 11 GPIO_FLAG_NONE>; pin-miso = <&gpio0 13 GPIO_FLAG_NONE>; pin-sclk = <&gpio0 12 GPIO_FLAG_NONE>; - + sdcard@0 { compatible = "espressif,esp32-sdspi"; frequency-khz = <20000>; }; }; + display_backlight { + compatible = "espressif,esp32-ledc-backlight"; + pin-backlight = <&gpio0 2 GPIO_FLAG_NONE>; + }; + + display0 { + compatible = "espressif,esp32-rgb-display"; + horizontal-resolution = <800>; + vertical-resolution = <480>; + pixel-clock-hz = <16000000>; + hsync-pulse-width = <4>; + hsync-back-porch = <8>; + hsync-front-porch = <8>; + vsync-pulse-width = <4>; + vsync-back-porch = <8>; + vsync-front-porch = <8>; + pclk-active-neg; + num-fbs = <2>; + double-fb; + bounce-buffer-size-px = <8000>; + pin-hsync = <&gpio0 39 GPIO_FLAG_NONE>; + pin-vsync = <&gpio0 41 GPIO_FLAG_NONE>; + pin-de = <&gpio0 40 GPIO_FLAG_NONE>; + pin-pclk = <&gpio0 42 GPIO_FLAG_NONE>; + pin-data0 = <&gpio0 8 GPIO_FLAG_NONE>; // B3 + pin-data1 = <&gpio0 3 GPIO_FLAG_NONE>; // B4 + pin-data2 = <&gpio0 46 GPIO_FLAG_NONE>; // B5 + pin-data3 = <&gpio0 9 GPIO_FLAG_NONE>; // B6 + pin-data4 = <&gpio0 1 GPIO_FLAG_NONE>; // B7 + pin-data5 = <&gpio0 5 GPIO_FLAG_NONE>; // G2 + pin-data6 = <&gpio0 6 GPIO_FLAG_NONE>; // G3 + pin-data7 = <&gpio0 7 GPIO_FLAG_NONE>; // G4 + pin-data8 = <&gpio0 15 GPIO_FLAG_NONE>; // G5 + pin-data9 = <&gpio0 16 GPIO_FLAG_NONE>; // G6 + pin-data10 = <&gpio0 4 GPIO_FLAG_NONE>; // G7 + pin-data11 = <&gpio0 45 GPIO_FLAG_NONE>; // R3 + pin-data12 = <&gpio0 48 GPIO_FLAG_NONE>; // R4 + pin-data13 = <&gpio0 47 GPIO_FLAG_NONE>; // R5 + pin-data14 = <&gpio0 21 GPIO_FLAG_NONE>; // R6 + pin-data15 = <&gpio0 14 GPIO_FLAG_NONE>; // R7 + backlight = <&display_backlight>; + }; + uart1 { compatible = "espressif,esp32-uart"; status = "disabled"; diff --git a/Devices/cyd-8048s043c/device.properties b/Devices/cyd-8048s043c/device.properties index 8056421d5..6b9a7b3e7 100644 --- a/Devices/cyd-8048s043c/device.properties +++ b/Devices/cyd-8048s043c/device.properties @@ -12,6 +12,8 @@ hardware.spiRamSpeed=80M hardware.esptoolFlashFreq=80M hardware.bluetooth=true +dependencies.useDeprecatedHal=false + storage.userDataLocation=SD display.size=4.3" diff --git a/Devices/cyd-8048s043c/devicetree.yaml b/Devices/cyd-8048s043c/devicetree.yaml index 59692b414..bc3c70e6c 100644 --- a/Devices/cyd-8048s043c/devicetree.yaml +++ b/Devices/cyd-8048s043c/devicetree.yaml @@ -1,3 +1,5 @@ dependencies: - Platforms/platform-esp32 + - Drivers/rgb-display-module + - Drivers/gt911-module dts: cyd,8048s043c.dts diff --git a/Devices/cyd-8048s043c/Source/module.cpp b/Devices/cyd-8048s043c/source/module.cpp similarity index 100% rename from Devices/cyd-8048s043c/Source/module.cpp rename to Devices/cyd-8048s043c/source/module.cpp