inside of its own thread when user enable it on
the LVGL Zephyr options menu, using this option makes
the calling of the lv_timer_handler driven by an internal
timer and thread. Options like priority and stack size
for this thread are exposed making it configurable by the
application.
Signed-off-by: Felipe Neves <ryukokki.felipe@gmail.com>
modules: lvgl: put LVGL core into a dedicated workqueue
Replacing the initial approach based on timers and semaphore
Signed-off-by: Felipe Neves <ryukokki.felipe@gmail.com>
Add support for the frame buffer address and stride alignment.
If user set the CONFIG_LV_DRAW_BUF_ALIGN to not be 4, the buffers
shall be allocated aoocrdingly.
If user set the CONFIG_LV_DRAW_BUF_STRIDE_ALIGN to not be 1, the
methods of flushing the display shall set the pitch accordingly.
Signed-off-by: Kate Wang <yumeng.wang@nxp.com>
Move initialization of the print callback handler after calling lv_init, as
the latter zeroes the global callback structure.
Signed-off-by: Fabian Blatz <fabianblatz@gmail.com>
Add multi-display support in Zephyr ontop of LVGL which already supports
it.
This change allows for creating buffers and structures for each display
statically and automatically from deviceTree info, and call LV init
routines for each display
Signed-off-by: Abderrahmane JARMOUNI <git@jarmouni.me>
There are 4 Kconfig names about the "Draw Buffer". Rename 'VBD' to 'VDB'
in Kconfig option 'LV_Z_*VBD*_CUSTOM_SECTION' to make name consistent.
config LV_Z_VDB_ALIGN
int "Rending buffer alignment"
config LV_Z_VBD_CUSTOM_SECTION
bool "Link rendering buffers to custom section"
config LV_Z_DOUBLE_VDB
bool "Use two rendering buffers"
config LV_Z_VDB_SIZE
int "Rendering buffer size"
default 100 if LV_Z_FULL_REFRESH
And the draw buffer definition is now:
static uint8_t buf0[BUFFER_SIZE]
#ifdef CONFIG_LV_Z_VDB_CUSTOM_SECTION
Z_GENERIC_SECTION(.lvgl_buf)
#endif
__aligned(CONFIG_LV_Z_VDB_ALIGN);
Signed-off-by: Haiyue Wang <haiyuewa@163.com>
This patch updates the module gluecode to be compatible with LVGL version
9.2. This includes changes done to display and input driver initialization
and draw buffer handling.
Signed-off-by: Fabian Blatz <fabianblatz@gmail.com>
Introduces a Kconfig symbol `LV_Z_LOG_LEVEL` because contrary to Zephyr the
numerical value of log levels in LVGL increases with severity. Also support
for the `LV_LOG_LEVEL_USER` is added.
Resolves issue #64351.
Signed-off-by: Fabian Blatz <fabianblatz@gmail.com>
Removes the pseudo device prerequisite that the LVGL setup routine has been
executed before initialization. The pseudo devices are now registered at
the end of the LVGL setup routine, the driver is not concerned with
configuring the devices anymore. This also removes the need for enforcing
certain priorities within the same init level.
This resolves issue #62753.
Signed-off-by: Fabian Blatz <fabianblatz@gmail.com>
Call lvgl_heap_init from lvgl_init rather than using two separate
SYS_INIT, this sensures that the heap is initialized correctly
regardless of the relation between CONFIG_KERNEL_INIT_PRIORITY_DEFAULT
and CONFIG_APPLICATION_INIT_PRIORITY.
Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
Moves lvgl pointer driver handling based on kscan to its own file, to ease
deletion when the usage of kscan for display touch input has been
deprecated.
Signed-off-by: Fabian Blatz <fabianblatz@gmail.com>