Skip to content

Commit 1df1f30

Browse files
authored
Merge pull request #195 from huming2207/feature/uc8151d
Initial UC8151D / GoodDisplay GDEW0154M10 DES e-paper panel support
2 parents cf6bc90 + 1ed360a commit 1df1f30

File tree

8 files changed

+345
-6
lines changed

8 files changed

+345
-6
lines changed

components/lvgl_esp32_drivers/lvgl_helpers.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,8 @@ extern "C" {
5050
#define DISP_BUF_SIZE (LV_HOR_RES_MAX * 40)
5151
#elif defined (CONFIG_LVGL_TFT_DISPLAY_CONTROLLER_JD79653A)
5252
#define DISP_BUF_SIZE ((CONFIG_LVGL_DISPLAY_HEIGHT * CONFIG_LVGL_DISPLAY_WIDTH) / 8) // 5KB
53+
#elif defined (CONFIG_LVGL_TFT_DISPLAY_CONTROLLER_UC8151D)
54+
#define DISP_BUF_SIZE ((CONFIG_LVGL_DISPLAY_HEIGHT * CONFIG_LVGL_DISPLAY_WIDTH) / 8) // 2888 bytes
5355
#else
5456
#error "No display controller selected"
5557
#endif

components/lvgl_esp32_drivers/lvgl_tft/CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ elseif(CONFIG_LVGL_TFT_DISPLAY_CONTROLLER_IL3820)
2929
list(APPEND SOURCES "il3820.c")
3030
elseif(CONFIG_LVGL_TFT_DISPLAY_CONTROLLER_JD79653A)
3131
list(APPEND SOURCES "jd79653a.c")
32+
elseif(CONFIG_LVGL_TFT_DISPLAY_CONTROLLER_UC8151D)
33+
list(APPEND SOURCES "uc8151d.c")
3234
elseif(CONFIG_LVGL_TFT_DISPLAY_CONTROLLER_RA8875)
3335
list(APPEND SOURCES "ra8875.c")
3436
elseif(CONFIG_LVGL_TFT_DISPLAY_CONTROLLER_GC9A01)

components/lvgl_esp32_drivers/lvgl_tft/Kconfig

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,11 @@ menu "LVGL TFT Display controller"
146146
help
147147
FitiPower JD79653A display controller for GoodDisplay GDEW0154M09 e-paper panel
148148

149+
config LVGL_TFT_DISPLAY_CONTROLLER_UC8151D
150+
bool
151+
help
152+
UltraChip UC8151D display controller with GoodDisplay GDEW0154M10 DES e-paper panel
153+
149154
config LVGL_TFT_DISPLAY_CONTROLLER_RA8875
150155
bool
151156
help
@@ -278,6 +283,11 @@ menu "LVGL TFT Display controller"
278283
select LVGL_TFT_DISPLAY_CONTROLLER_JD79653A
279284
select LVGL_TFT_DISPLAY_PROTOCOL_SPI
280285
select LVGL_TFT_DISPLAY_MONOCHROME
286+
config LVGL_TFT_DISPLAY_USER_CONTROLLER_UC8151D
287+
bool "UC8151D"
288+
select LVGL_TFT_DISPLAY_CONTROLLER_UC8151D
289+
select LVGL_TFT_DISPLAY_PROTOCOL_SPI
290+
select LVGL_TFT_DISPLAY_MONOCHROME
281291
config LVGL_TFT_DISPLAY_USER_CONTROLLER_RA8875
282292
bool "RA8875"
283293
select LVGL_TFT_DISPLAY_CONTROLLER_RA8875
@@ -324,8 +334,12 @@ menu "LVGL TFT Display controller"
324334
LVGL_TFT_DISPLAY_CONTROLLER_ST7735S || \
325335
LVGL_TFT_DISPLAY_CONTROLLER_IL3820 || \
326336
LVGL_TFT_DISPLAY_CONTROLLER_RA8875 || \
327-
LVGL_TFT_DISPLAY_CONTROLLER_JD79653A
328-
default LVGL_DISPLAY_ORIENTATION_LANDSCAPE
337+
LVGL_TFT_DISPLAY_CONTROLLER_JD79653A || \
338+
LVGL_TFT_DISPLAY_CONTROLLER_UC8151D
339+
default LVGL_DISPLAY_ORIENTATION_LANDSCAPE \
340+
if !LVGL_TFT_DISPLAY_CONTROLLER_JD79653A || \
341+
!LVGL_TFT_DISPLAY_CONTROLLER_UC8151D
342+
default LVGL_DISPLAY_ORIENTATION_PORTRAIT if LVGL_TFT_DISPLAY_CONTROLLER_JD79653A || LVGL_TFT_DISPLAY_CONTROLLER_UC8151D
329343
help
330344
Display orientation.
331345

@@ -337,10 +351,12 @@ menu "LVGL TFT Display controller"
337351
config LVGL_DISPLAY_ORIENTATION_LANDSCAPE
338352
bool "Landscape"
339353
depends on !LVGL_TFT_DISPLAY_CONTROLLER_JD79653A
354+
depends on !LVGL_TFT_DISPLAY_CONTROLLER_UC8151D
340355
config LVGL_DISPLAY_ORIENTATION_LANDSCAPE_INVERTED
341356
bool "Inverted Landscape"
342357
depends on !LVGL_TFT_DISPLAY_CONTROLLER_IL3820
343358
depends on !LVGL_TFT_DISPLAY_CONTROLLER_JD79653A
359+
depends on !LVGL_TFT_DISPLAY_CONTROLLER_UC8151D
344360
endchoice
345361

346362

@@ -407,7 +423,7 @@ menu "LVGL TFT Display controller"
407423
default LVGL_TFT_SPI_CLK_DIVIDER_5 if LVGL_TFT_DISPLAY_CONTROLLER_ILI9481
408424
default LVGL_TFT_SPI_CLK_DIVIDER_3 if LVGL_TFT_DISPLAY_CONTROLLER_HX8357
409425
default LVGL_TFT_SPI_CLK_DIVIDER_10 if LVGL_TFT_DISPLAY_CONTROLLER_SH1107
410-
default LVGL_TFT_SPI_CLK_DIVIDER_16 if LVGL_TFT_DISPLAY_CONTROLLER_JD79653A
426+
default LVGL_TFT_SPI_CLK_DIVIDER_16 if LVGL_TFT_DISPLAY_CONTROLLER_JD79653A || LVGL_TFT_DISPLAY_CONTROLLER_UC8151D
411427
default LVGL_TFT_SPI_CLK_DIVIDER_2
412428

413429
config LVGL_TFT_SPI_CLK_DIVIDER_1
@@ -758,9 +774,9 @@ menu "LVGL TFT Display controller"
758774
Configure the display Reset pin here.
759775

760776
config LVGL_DISP_PIN_BUSY
761-
int "GPIO for Busy" if LVGL_TFT_DISPLAY_CONTROLLER_IL3820 || LVGL_TFT_DISPLAY_CONTROLLER_JD79653A
777+
int "GPIO for Busy" if LVGL_TFT_DISPLAY_CONTROLLER_IL3820 || LVGL_TFT_DISPLAY_CONTROLLER_JD79653A || LVGL_TFT_DISPLAY_CONTROLLER_UC8151D
762778
range 0 39
763-
default 35 if LVGL_TFT_DISPLAY_CONTROLLER_IL3820 || LVGL_TFT_DISPLAY_CONTROLLER_JD79653A
779+
default 35 if LVGL_TFT_DISPLAY_CONTROLLER_IL3820 || LVGL_TFT_DISPLAY_CONTROLLER_JD79653A || LVGL_TFT_DISPLAY_CONTROLLER_UC8151D
764780
default 35
765781

766782
help

components/lvgl_esp32_drivers/lvgl_tft/disp_driver.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@ void disp_driver_init(void)
3535
GC9A01_init();
3636
#elif defined CONFIG_LVGL_TFT_DISPLAY_CONTROLLER_JD79653A
3737
jd79653a_init();
38+
#elif defined CONFIG_LVGL_TFT_DISPLAY_CONTROLLER_UC8151D
39+
uc8151d_init();
3840
#endif
3941
}
4042

@@ -68,6 +70,8 @@ void disp_driver_flush(lv_disp_drv_t * drv, const lv_area_t * area, lv_color_t *
6870
GC9A01_flush(drv, area, color_map);
6971
#elif defined CONFIG_LVGL_TFT_DISPLAY_CONTROLLER_JD79653A
7072
jd79653a_lv_fb_flush(drv, area, color_map);
73+
#elif defined CONFIG_LVGL_TFT_DISPLAY_CONTROLLER_UC8151D
74+
uc8151d_lv_fb_flush(drv, area, color_map);
7175
#endif
7276
}
7377

@@ -81,6 +85,8 @@ void disp_driver_rounder(lv_disp_drv_t * disp_drv, lv_area_t * area)
8185
il3820_rounder(disp_drv, area);
8286
#elif defined CONFIG_LVGL_TFT_DISPLAY_CONTROLLER_JD79653A
8387
jd79653a_lv_rounder_cb(disp_drv, area);
88+
#elif defined CONFIG_LVGL_TFT_DISPLAY_CONTROLLER_UC8151D
89+
uc8151d_lv_rounder_cb(disp_drv, area);
8490
#endif
8591
}
8692

@@ -95,5 +101,7 @@ void disp_driver_set_px(lv_disp_drv_t * disp_drv, uint8_t * buf, lv_coord_t buf_
95101
il3820_set_px_cb(disp_drv, buf, buf_w, x, y, color, opa);
96102
#elif defined CONFIG_LVGL_TFT_DISPLAY_CONTROLLER_JD79653A
97103
jd79653a_lv_set_fb_cb(disp_drv, buf, buf_w, x, y, color, opa);
104+
#elif defined CONFIG_LVGL_TFT_DISPLAY_CONTROLLER_UC8151D
105+
uc8151d_lv_set_fb_cb(disp_drv, buf, buf_w, x, y, color, opa);
98106
#endif
99107
}

components/lvgl_esp32_drivers/lvgl_tft/disp_driver.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,8 @@ extern "C" {
4242
#include "GC9A01.h"
4343
#elif defined CONFIG_LVGL_TFT_DISPLAY_CONTROLLER_JD79653A
4444
#include "jd79653a.h"
45+
#elif defined CONFIG_LVGL_TFT_DISPLAY_CONTROLLER_UC8151D
46+
#include "uc8151d.h"
4547
#endif
4648

4749
/*********************

0 commit comments

Comments
 (0)