1# Copyright (c) 2023 Fabian Blatz <fabianblatz@gmail.com>
2# Copyright 2023 NXP
3# SPDX-License-Identifier: Apache-2.0
4
5config ZEPHYR_LVGL_MODULE
6	bool
7
8config LVGL
9	bool "LVGL support"
10	help
11	  This option enables the LVGL graphics library.
12
13if LVGL
14
15config LV_USE_MONKEY
16	bool
17
18config LV_DPI_DEF
19	int
20
21config LV_CONF_SKIP
22	bool
23	default n
24
25config LV_USE_LOG
26	bool
27
28config LV_LOG_LEVEL_NONE
29	bool
30
31config LV_LOG_LEVEL_ERROR
32	bool
33
34config LV_LOG_LEVEL_WARN
35	bool
36
37config LV_LOG_LEVEL_INFO
38	bool
39
40config LV_LOG_LEVEL_USER
41	bool
42
43config LV_LOG_LEVEL_TRACE
44	bool
45
46config LV_Z_LOG_LEVEL
47	int
48	default 0 if LV_LOG_LEVEL_NONE || !LV_USE_LOG
49	default 1 if LV_LOG_LEVEL_ERROR
50	default 2 if LV_LOG_LEVEL_WARN
51	default 3 if LV_LOG_LEVEL_INFO
52	default 3 if LV_LOG_LEVEL_USER
53	default 4 if LV_LOG_LEVEL_TRACE
54
55config LV_Z_USE_ROUNDER_CB
56	bool
57	default y if LV_Z_AREA_X_ALIGNMENT_WIDTH != 1 || LV_Z_AREA_Y_ALIGNMENT_WIDTH != 1
58
59config APP_LINK_WITH_LVGL
60	bool "Link 'app' with LVGL"
61	default y
62	help
63	  Add LVGL header files to the 'app' include path. It may be
64	  disabled if the include paths for LVGL are causing aliasing
65	  issues for 'app'.
66
67config LV_Z_USE_FILESYSTEM
68	bool "LVGL file system support"
69	depends on FILE_SYSTEM
70	default y if FILE_SYSTEM
71	help
72	  Enable LittlevGL file system
73
74choice LV_COLOR_DEPTH
75	default LV_COLOR_DEPTH_16
76	prompt "Color depth (bits per pixel)"
77
78	config LV_COLOR_DEPTH_32
79		bool "32: ARGB8888"
80	config LV_COLOR_DEPTH_24
81		bool "24: RGB888"
82	config LV_COLOR_DEPTH_16
83		bool "16: RGB565"
84	config LV_COLOR_DEPTH_8
85		bool "8: RGB232"
86	config LV_COLOR_DEPTH_1
87		bool "1: monochrome"
88endchoice
89
90config LV_COLOR_16_SWAP
91	bool "Swap the 2 bytes of RGB565 color."
92	depends on LV_COLOR_DEPTH_16
93
94config LV_Z_FLUSH_THREAD
95	bool "Flush LVGL frames in a separate thread"
96	help
97	  Flush LVGL frames in a separate thread, while the primary thread
98	  renders the next LVGL frame. Can be disabled if the performance
99	  gain this approach offers is not required
100
101if LV_Z_FLUSH_THREAD
102
103config LV_Z_FLUSH_THREAD_STACK_SIZE
104	int "Stack size for flushing thread"
105	default 1024
106	help
107	  Stack size for LVGL flush thread, which will call display_write
108
109config LV_Z_FLUSH_THREAD_PRIORITY
110	int "LVGL flush thread priority"
111	default -1
112	help
113	  Priority of LVGL flush thread.
114
115endif # LV_Z_FLUSH_THREAD
116
117config LV_Z_AREA_X_ALIGNMENT_WIDTH
118	int "Frame X alignment size"
119	default 1
120	help
121	  Number of pixels, X axis should be rounded to. Should be used to override
122	  the current frame dimensions to meet display and/or LCD host
123	  controller requirements. The value must be power of 2.
124
125config LV_Z_AREA_Y_ALIGNMENT_WIDTH
126	int "Frame Y alignment size"
127	default 1
128	help
129	  Number of pixels, Y axis should be rounded to. Should be used to override
130	  the current frame dimensions to meet display and/or LCD host
131	  controller requirements. The value must be power of 2.
132
133config LV_Z_AUTO_INIT
134	bool "Initialize LVGL before application startup"
135	default y
136	help
137	  Configure LVGL callbacks and display initialization before the application starts.
138	  This can be useful to disable if you need to change a display's pixel format
139	  prior to initialization. If using static allocation, ensure that LV_Z_BITS_PER_PIXEL
140	  is set correctly.
141
142config LV_Z_INIT_PRIORITY
143	int "Default init priority for LVGL"
144	default 90
145	depends on LV_Z_AUTO_INIT
146	help
147	  Priority used for the automatic initialization of LVGL.
148
149config LV_USE_DRAW_DMA2D
150	bool
151
152config LV_DRAW_DMA2D_HAL_INCLUDE
153	string
154	help
155	  Must be defined to include path of CMSIS header of target processor
156	  e.g. "stm32f769xx.h" or "stm32f429xx.h"
157
158config LV_Z_USE_OSAL
159	bool "Use OSAL enabling parallel rendering"
160	depends on DYNAMIC_THREAD
161	help
162	  Use the Zephyr LVGL OSAL to enable parallel rendering
163	  pipelines.
164
165config LV_USE_PXP
166	bool
167
168config LV_USE_GPU_NXP_PXP
169	bool
170	default y if LV_USE_PXP
171
172config LV_Z_PXP_INTERRUPT_PRIORITY
173	int "PXP interrupt priority"
174	depends on LV_USE_PXP
175	default 3
176	help
177	  Sets the interrupt priority for PXP
178
179rsource "Kconfig.memory"
180rsource "Kconfig.input"
181rsource "Kconfig.shell"
182
183
184endif
185