From 38652e19aa45daa81248d99e16b5867138bdb034 Mon Sep 17 00:00:00 2001 From: wangjianyu3 Date: Wed, 2 Apr 2025 00:49:39 +0800 Subject: [PATCH] drivers/lcd/st7789: Support mirror V Mirror X and V can rotate the screen 90 degrees. Signed-off-by: wangjianyu3 --- drivers/lcd/Kconfig | 4 ++++ drivers/lcd/st7789.c | 6 +++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/drivers/lcd/Kconfig b/drivers/lcd/Kconfig index b4dc69b76fe..029ffb5ffbe 100644 --- a/drivers/lcd/Kconfig +++ b/drivers/lcd/Kconfig @@ -749,6 +749,10 @@ config LCD_ST7789_MIRRORY bool "ST7789 Mirror Y" default n +config LCD_ST7789_MIRRORV + bool "ST7789 Mirror V" + default n + config LCD_ST7789_INVCOLOR bool "ST7789 Invert Color" default y diff --git a/drivers/lcd/st7789.c b/drivers/lcd/st7789.c index 7d061d6f05d..8e4fd02d32a 100644 --- a/drivers/lcd/st7789.c +++ b/drivers/lcd/st7789.c @@ -477,7 +477,11 @@ static void st7789_setorientation(FAR struct st7789_dev_s *dev) #endif - /* Mirror X/Y for current setting */ + /* Mirror X/Y/V for current setting */ + +#ifdef CONFIG_LCD_ST7789_MIRRORV + madctl ^= 0x20; +#endif #ifdef CONFIG_LCD_ST7789_MIRRORX madctl ^= 0x40;