|  | # Copyright (c) 2023 Fabian Blatz <fabianblatz@gmail.com> | 
|  | # Copyright 2023 NXP | 
|  | # SPDX-License-Identifier: Apache-2.0 | 
|  |  | 
|  | config ZEPHYR_LVGL_MODULE | 
|  | bool | 
|  |  | 
|  | config LVGL | 
|  | bool "LVGL support" | 
|  | help | 
|  | This option enables the LVGL graphics library. | 
|  |  | 
|  | if LVGL | 
|  |  | 
|  | config LV_USE_MONKEY | 
|  | bool | 
|  |  | 
|  | config LV_DPI_DEF | 
|  | int | 
|  |  | 
|  | config LV_CONF_SKIP | 
|  | bool | 
|  | default n | 
|  |  | 
|  | config LV_USE_PRIVATE_API | 
|  | bool | 
|  |  | 
|  | config LV_USE_LOG | 
|  | bool | 
|  |  | 
|  | config LV_LOG_LEVEL_NONE | 
|  | bool | 
|  |  | 
|  | config LV_LOG_LEVEL_ERROR | 
|  | bool | 
|  |  | 
|  | config LV_LOG_LEVEL_WARN | 
|  | bool | 
|  |  | 
|  | config LV_LOG_LEVEL_INFO | 
|  | bool | 
|  |  | 
|  | config LV_LOG_LEVEL_USER | 
|  | bool | 
|  |  | 
|  | config LV_LOG_LEVEL_TRACE | 
|  | bool | 
|  |  | 
|  | config LV_Z_LOG_LEVEL | 
|  | int | 
|  | default 0 if LV_LOG_LEVEL_NONE || !LV_USE_LOG | 
|  | default 1 if LV_LOG_LEVEL_ERROR | 
|  | default 2 if LV_LOG_LEVEL_WARN | 
|  | default 3 if LV_LOG_LEVEL_INFO | 
|  | default 3 if LV_LOG_LEVEL_USER | 
|  | default 4 if LV_LOG_LEVEL_TRACE | 
|  |  | 
|  | config LV_Z_USE_ROUNDER_CB | 
|  | bool | 
|  | default y if LV_Z_AREA_X_ALIGNMENT_WIDTH != 1 || LV_Z_AREA_Y_ALIGNMENT_WIDTH != 1 | 
|  |  | 
|  | config APP_LINK_WITH_LVGL | 
|  | bool "Link 'app' with LVGL" | 
|  | default y | 
|  | help | 
|  | Add LVGL header files to the 'app' include path. It may be | 
|  | disabled if the include paths for LVGL are causing aliasing | 
|  | issues for 'app'. | 
|  |  | 
|  | config LV_Z_USE_FILESYSTEM | 
|  | bool "LVGL file system support" | 
|  | depends on FILE_SYSTEM | 
|  | default y if FILE_SYSTEM | 
|  | help | 
|  | Enable LittlevGL file system | 
|  |  | 
|  | choice LV_COLOR_DEPTH | 
|  | default LV_COLOR_DEPTH_16 | 
|  | prompt "Color depth (bits per pixel)" | 
|  |  | 
|  | config LV_COLOR_DEPTH_32 | 
|  | bool "32: ARGB8888" | 
|  | config LV_COLOR_DEPTH_24 | 
|  | bool "24: RGB888" | 
|  | config LV_COLOR_DEPTH_16 | 
|  | bool "16: RGB565" | 
|  | config LV_COLOR_DEPTH_8 | 
|  | bool "8: RGB232" | 
|  | config LV_COLOR_DEPTH_1 | 
|  | bool "1: monochrome" | 
|  | endchoice | 
|  |  | 
|  | config LV_COLOR_16_SWAP | 
|  | bool "Swap the 2 bytes of RGB565 color." | 
|  | depends on LV_COLOR_DEPTH_16 | 
|  |  | 
|  | config LV_Z_COLOR_MONO_HW_INVERSION | 
|  | bool "Hardware pixel inversion (disables software pixel inversion)." | 
|  | depends on LV_COLOR_DEPTH_1 | 
|  |  | 
|  | config LV_Z_COLOR_24_BGR_TO_RGB | 
|  | bool "Convert BGR888 to RGB888 color before flushing" | 
|  | default y | 
|  | depends on LV_COLOR_DEPTH_24 | 
|  |  | 
|  | config LV_Z_FLUSH_THREAD | 
|  | bool "Flush LVGL frames in a separate thread" | 
|  | help | 
|  | Flush LVGL frames in a separate thread, while the primary thread | 
|  | renders the next LVGL frame. Can be disabled if the performance | 
|  | gain this approach offers is not required | 
|  |  | 
|  | if LV_Z_FLUSH_THREAD | 
|  |  | 
|  | config LV_Z_FLUSH_THREAD_STACK_SIZE | 
|  | int "Stack size for flushing thread" | 
|  | default 1024 | 
|  | help | 
|  | Stack size for LVGL flush thread, which will call display_write | 
|  |  | 
|  | config LV_Z_FLUSH_THREAD_PRIORITY | 
|  | int "LVGL flush thread priority" | 
|  | default -1 | 
|  | help | 
|  | Priority of LVGL flush thread. | 
|  |  | 
|  | endif # LV_Z_FLUSH_THREAD | 
|  |  | 
|  | config LV_Z_AREA_X_ALIGNMENT_WIDTH | 
|  | int "Frame X alignment size" | 
|  | default 1 | 
|  | help | 
|  | Number of pixels, X axis should be rounded to. Should be used to override | 
|  | the current frame dimensions to meet display and/or LCD host | 
|  | controller requirements. The value must be power of 2. | 
|  |  | 
|  | config LV_Z_AREA_Y_ALIGNMENT_WIDTH | 
|  | int "Frame Y alignment size" | 
|  | default 1 | 
|  | help | 
|  | Number of pixels, Y axis should be rounded to. Should be used to override | 
|  | the current frame dimensions to meet display and/or LCD host | 
|  | controller requirements. The value must be power of 2. | 
|  |  | 
|  | config LV_Z_AUTO_INIT | 
|  | bool "Initialize LVGL before application startup" | 
|  | default y | 
|  | help | 
|  | Configure LVGL callbacks and display initialization before the application starts. | 
|  | This can be useful to disable if you need to change a display's pixel format | 
|  | prior to initialization. If using static allocation, ensure that LV_Z_BITS_PER_PIXEL | 
|  | is set correctly. | 
|  |  | 
|  | config LV_Z_INIT_PRIORITY | 
|  | int "Default init priority for LVGL" | 
|  | default 90 | 
|  | depends on LV_Z_AUTO_INIT | 
|  | help | 
|  | Priority used for the automatic initialization of LVGL. | 
|  |  | 
|  | config LV_Z_LVGL_MUTEX | 
|  | bool "Provide LVGL API mutex (un)locking functions" | 
|  | help | 
|  | LVGL API functions are not thread-safe, provide functions for locking and unlocking. | 
|  |  | 
|  | config LV_Z_RUN_LVGL_ON_WORKQUEUE | 
|  | bool "Use a dedicated workqueue to run LVGL core" | 
|  | imply LV_Z_AUTO_INIT | 
|  | imply LV_Z_LVGL_MUTEX | 
|  | help | 
|  | Runs the LVGL in a separate workqueue automatically | 
|  | without requiring user to add a timed loop for that. User can | 
|  | disable this option if periodic calls of LV timer | 
|  | is application responsibillity | 
|  |  | 
|  | if LV_Z_RUN_LVGL_ON_WORKQUEUE | 
|  |  | 
|  | config LV_Z_LVGL_WORKQUEUE_STACK_SIZE | 
|  | int "Stack size of LVGL workqueue" | 
|  | default 4096 | 
|  | help | 
|  | Stack size of the LVGL dedicated workqueue | 
|  |  | 
|  | config LV_Z_LVGL_WORKQUEUE_PRIORITY | 
|  | int "Priority of the LVGL workqueue" | 
|  | default 0 | 
|  | help | 
|  | Priority of the LVGL dedicated workequeue. | 
|  |  | 
|  | endif # LV_Z_RUN_LVGL_ON_WORKQUEUE | 
|  |  | 
|  | config LV_USE_DRAW_DMA2D | 
|  | bool | 
|  |  | 
|  | config LV_DRAW_DMA2D_HAL_INCLUDE | 
|  | string | 
|  | help | 
|  | Must be defined to include path of CMSIS header of target processor | 
|  | e.g. "stm32f769xx.h" or "stm32f429xx.h" | 
|  |  | 
|  | config LV_Z_USE_OSAL | 
|  | bool "Use OSAL enabling parallel rendering" | 
|  | depends on DYNAMIC_THREAD | 
|  | select LV_USE_PRIVATE_API | 
|  | help | 
|  | Use the Zephyr LVGL OSAL to enable parallel rendering | 
|  | pipelines. | 
|  |  | 
|  | config LV_USE_PXP | 
|  | bool | 
|  |  | 
|  | config LV_USE_GPU_NXP_PXP | 
|  | bool | 
|  | default y if LV_USE_PXP | 
|  |  | 
|  | config LV_Z_PXP_INTERRUPT_PRIORITY | 
|  | int "PXP interrupt priority" | 
|  | depends on LV_USE_PXP | 
|  | default 3 | 
|  | help | 
|  | Sets the interrupt priority for PXP | 
|  |  | 
|  | rsource "Kconfig.memory" | 
|  | rsource "Kconfig.input" | 
|  | rsource "Kconfig.shell" | 
|  |  | 
|  |  | 
|  | endif |