From bd8fea043624ea01682d804ad2aec5da6cd1e36d Mon Sep 17 00:00:00 2001 From: Adolfo Reyna Date: Thu, 9 Jul 2026 23:18:10 -0400 Subject: [PATCH] Fix display mirroring and update SDMMC card pins --- .../waveshare,esp32-s3-rlcd.dts | 6 +++--- Drivers/ST7305/Source/St7305Display.cpp | 2 +- Drivers/ST7305/Source/esp_lcd_st7305.c | 12 ++++++------ 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/Devices/waveshare-esp32-s3-rlcd/waveshare,esp32-s3-rlcd.dts b/Devices/waveshare-esp32-s3-rlcd/waveshare,esp32-s3-rlcd.dts index 8712d4b3..a712aa86 100644 --- a/Devices/waveshare-esp32-s3-rlcd/waveshare,esp32-s3-rlcd.dts +++ b/Devices/waveshare-esp32-s3-rlcd/waveshare,esp32-s3-rlcd.dts @@ -45,9 +45,9 @@ sdmmc0 { compatible = "espressif,esp32-sdmmc"; - pin-clk = <&gpio0 38 GPIO_FLAG_NONE>; - pin-cmd = <&gpio0 21 GPIO_FLAG_NONE>; - pin-d0 = <&gpio0 39 GPIO_FLAG_NONE>; + pin-clk = <&gpio0 2 GPIO_FLAG_NONE>; + pin-cmd = <&gpio0 1 GPIO_FLAG_NONE>; + pin-d0 = <&gpio0 3 GPIO_FLAG_NONE>; slot = ; bus-width = <1>; }; diff --git a/Drivers/ST7305/Source/St7305Display.cpp b/Drivers/ST7305/Source/St7305Display.cpp index e1223712..b9c3b058 100644 --- a/Drivers/ST7305/Source/St7305Display.cpp +++ b/Drivers/ST7305/Source/St7305Display.cpp @@ -83,7 +83,7 @@ lvgl_port_display_cfg_t St7305Display::getLvglPortDisplayConfig(esp_lcd_panel_io .monochrome = true, // Enables esp_lvgl_port monochrome converter .rotation = { .swap_xy = false, - .mirror_x = false, + .mirror_x = true, .mirror_y = false, }, .color_format = LV_COLOR_FORMAT_RGB565, // Must be RGB565 for monochrome mode to trigger converter diff --git a/Drivers/ST7305/Source/esp_lcd_st7305.c b/Drivers/ST7305/Source/esp_lcd_st7305.c index 9500df98..48386305 100644 --- a/Drivers/ST7305/Source/esp_lcd_st7305.c +++ b/Drivers/ST7305/Source/esp_lcd_st7305.c @@ -247,16 +247,16 @@ static esp_err_t panel_st7305_mirror(esp_lcd_panel_t *panel, bool mirror_x, bool st7305_panel_t *st7305 = __containerof(panel, st7305_panel_t, base); esp_lcd_panel_io_handle_t io = st7305->io; if (mirror_x) { - st7305->madctl_val |= ST7305_MADCTL_MY; - } else { - st7305->madctl_val &= ~ST7305_MADCTL_MY; - } - if (mirror_y) { st7305->madctl_val |= ST7305_MADCTL_MX; } else { st7305->madctl_val &= ~ST7305_MADCTL_MX; } - return esp_lcd_panel_io_tx_param(io, ST7305_CMD_MADCTL, (uint8_t[]) { st7305->madctl_val }, 1); + if (mirror_y) { + st7305->madctl_val |= ST7305_MADCTL_MY; + } else { + st7305->madctl_val &= ~ST7305_MADCTL_MY; + } + return esp_lcd_panel_io_tx_param(io, ST7305_CMD_MADCTL, &st7305->madctl_val, 1); } static esp_err_t panel_st7305_swap_xy(esp_lcd_panel_t *panel, bool swap_axes)