# Copyright (c) 2023 BrainCo Inc.
# SPDX-License-Identifier: Apache-2.0

if SHIELD_ST_B_LCD40_DSI1_MB1166

# Double frame buffer maintained by lvgl.
if LVGL

config STM32_LTDC_FB_NUM
	default 0

config INPUT
	default y

config LV_Z_VDB_SIZE
	default 100

config LV_Z_DOUBLE_VDB
	default y

config LV_Z_VBD_CUSTOM_SECTION
	default y

config LV_Z_FULL_REFRESH
	default y

config LV_Z_BITS_PER_PIXEL
	default 32

config LV_DPI_DEF
	default 128

config LV_Z_FLUSH_THREAD
	default y

choice LV_COLOR_DEPTH
	default LV_COLOR_DEPTH_32
endchoice

endif # LVGL

endif # SHIELD_ST_B_LCD40_DSI1_MB1166
