This is an automated email from the ASF dual-hosted git repository. jerzy pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/mynewt-core.git
commit d4e17e8aedec079272149183e8f146381d848556 Author: Jerzy Kasenberg <jerzy.kasenb...@codecoup.pl> AuthorDate: Wed Aug 6 22:47:20 2025 +0200 lvgl/drivers: change rotation Driver is able to rotate screen by changing how addresses are change when data is transmitted. For 90 and 270 degree rotation screen appeared to rotate clock wise. Problem pops up when touch screen is present and in those rotations touch screen orientation which does not changed did not correspond to display orientation. Signed-off-by: Jerzy Kasenberg <je...@apache.org> --- hw/drivers/display/lvgl/tft/gc9a01/src/gc9a01.c | 4 ++-- hw/drivers/display/lvgl/tft/ili9341/src/ili9341.c | 4 ++-- hw/drivers/display/lvgl/tft/ili9486/src/ili9486.c | 4 ++-- hw/drivers/display/lvgl/tft/st7735s/src/st7735s.c | 5 ++--- hw/drivers/display/lvgl/tft/st7789/src/st7789.c | 4 ++-- hw/drivers/display/lvgl/tft/st7796S/src/st7796s.c | 4 ++-- 6 files changed, 12 insertions(+), 13 deletions(-) diff --git a/hw/drivers/display/lvgl/tft/gc9a01/src/gc9a01.c b/hw/drivers/display/lvgl/tft/gc9a01/src/gc9a01.c index 56a21c36b..8edfc3c92 100644 --- a/hw/drivers/display/lvgl/tft/gc9a01/src/gc9a01.c +++ b/hw/drivers/display/lvgl/tft/gc9a01/src/gc9a01.c @@ -106,9 +106,9 @@ static const uint8_t madctl[] = { GC9A01_MADCTL_MX, - GC9A01_MADCTL_MV | GC9A01_MADCTL_MY | GC9A01_MADCTL_ML, - GC9A01_MADCTL_MY, GC9A01_MADCTL_MX | GC9A01_MADCTL_MV, + GC9A01_MADCTL_MY, + GC9A01_MADCTL_MV | GC9A01_MADCTL_MY | GC9A01_MADCTL_ML, }; void diff --git a/hw/drivers/display/lvgl/tft/ili9341/src/ili9341.c b/hw/drivers/display/lvgl/tft/ili9341/src/ili9341.c index daf353583..280941800 100644 --- a/hw/drivers/display/lvgl/tft/ili9341/src/ili9341.c +++ b/hw/drivers/display/lvgl/tft/ili9341/src/ili9341.c @@ -132,9 +132,9 @@ static const uint8_t madctl[] = { MADCTL_MX, - MADCTL_MV, - MADCTL_MY, MADCTL_MX | MADCTL_MY | MADCTL_MV, + MADCTL_MY, + MADCTL_MV, }; void diff --git a/hw/drivers/display/lvgl/tft/ili9486/src/ili9486.c b/hw/drivers/display/lvgl/tft/ili9486/src/ili9486.c index 59826baf3..c888c170f 100644 --- a/hw/drivers/display/lvgl/tft/ili9486/src/ili9486.c +++ b/hw/drivers/display/lvgl/tft/ili9486/src/ili9486.c @@ -123,9 +123,9 @@ static const uint8_t madctl[] = { 0, - MADCTL_MX | MADCTL_MV, - MADCTL_MX | MADCTL_MY, MADCTL_MV | MADCTL_MY | MADCTL_ML, + MADCTL_MX | MADCTL_MY, + MADCTL_MX | MADCTL_MV, }; void diff --git a/hw/drivers/display/lvgl/tft/st7735s/src/st7735s.c b/hw/drivers/display/lvgl/tft/st7735s/src/st7735s.c index 7e980771f..3ddaf101e 100644 --- a/hw/drivers/display/lvgl/tft/st7735s/src/st7735s.c +++ b/hw/drivers/display/lvgl/tft/st7735s/src/st7735s.c @@ -107,13 +107,13 @@ st7735s_rotate(lv_disp_rot_t rotation) switch (rotation) { case LV_DISP_ROT_270: - madctl[1] |= ST7735S_MADCTL_MV | ST7735S_MADCTL_MY | ST7735S_MADCTL_ML; + madctl[1] |= ST7735S_MADCTL_MX | ST7735S_MADCTL_MV; break; case LV_DISP_ROT_180: madctl[1] |= ST7735S_MADCTL_MX | ST7735S_MADCTL_MY; break; case LV_DISP_ROT_90: - madctl[1] |= ST7735S_MADCTL_MX | ST7735S_MADCTL_MV; + madctl[1] |= ST7735S_MADCTL_MV | ST7735S_MADCTL_MY | ST7735S_MADCTL_ML; break; case LV_DISP_ROT_NONE: break; @@ -139,7 +139,6 @@ LCD_SEQUENCE(init_cmds) LCD_SEQUENCE_DELAY(5), 4, ST7735S_FRMCTR1, 0x01, 0x2C, 0x2D, 4, ST7735S_FRMCTR2, 0x01, 0x2C, 0x2D, - 7, ST7735S_FRMCTR2, 0x01, 0x2C, 0x2D, 0x01, 0x2C, 0x2D, 2, ST7735S_INVCTR, 0x07, 4, ST7735S_PWCTR1, 0xA2, 0x02, 0x84, 2, ST7735S_PWCTR2, 0xC5, diff --git a/hw/drivers/display/lvgl/tft/st7789/src/st7789.c b/hw/drivers/display/lvgl/tft/st7789/src/st7789.c index 44c24780e..633f1c98c 100644 --- a/hw/drivers/display/lvgl/tft/st7789/src/st7789.c +++ b/hw/drivers/display/lvgl/tft/st7789/src/st7789.c @@ -145,13 +145,13 @@ st7789_rotate(lv_disp_rot_t rotation) switch (rotation) { case LV_DISP_ROT_270: - madcmd[1] |= ST7789_MADCTL_MV | ST7789_MADCTL_MY | ST7789_MADCTL_ML; + madcmd[1] |= ST7789_MADCTL_MX | ST7789_MADCTL_MV; break; case LV_DISP_ROT_180: madcmd[1] |= ST7789_MADCTL_MX | ST7789_MADCTL_MY; break; case LV_DISP_ROT_90: - madcmd[1] |= ST7789_MADCTL_MX | ST7789_MADCTL_MV; + madcmd[1] |= ST7789_MADCTL_MV | ST7789_MADCTL_MY | ST7789_MADCTL_ML; break; case LV_DISP_ROT_NONE: break; diff --git a/hw/drivers/display/lvgl/tft/st7796S/src/st7796s.c b/hw/drivers/display/lvgl/tft/st7796S/src/st7796s.c index 4a498deeb..8fa11cef7 100644 --- a/hw/drivers/display/lvgl/tft/st7796S/src/st7796s.c +++ b/hw/drivers/display/lvgl/tft/st7796S/src/st7796s.c @@ -126,9 +126,9 @@ #define ST7796S_MADCTL_RGB 0x00 #define ST7796S_MADCTL_BGR 0x08 #define ST7796S_MADCTL_0 ST7796S_MADCTL_MX -#define ST7796S_MADCTL_90 (ST7796S_MADCTL_MV) +#define ST7796S_MADCTL_90 (ST7796S_MADCTL_MY | ST7796S_MADCTL_ML | ST7796S_MADCTL_MV | ST7796S_MADCTL_MX) #define ST7796S_MADCTL_180 (ST7796S_MADCTL_MY | ST7796S_MADCTL_ML) -#define ST7796S_MADCTL_270 (ST7796S_MADCTL_MY | ST7796S_MADCTL_ML | ST7796S_MADCTL_MV | ST7796S_MADCTL_MX) +#define ST7796S_MADCTL_270 (ST7796S_MADCTL_MV) #define ST7796S_HOR_RES MYNEWT_VAL(LVGL_DISPLAY_HORIZONTAL_RESOLUTION) #define ST7796S_VER_RES MYNEWT_VAL(LVGL_DISPLAY_VERTICAL_RESOLUTION)