# Copyright (c) 2019 Jan Van Winkel <jan.van_winkel@dxplore.eu>
# SPDX-License-Identifier: Apache-2.0

if SHIELD_ST7789V_TL019FQV01 || SHIELD_ST7789V_WAVESHARE_240X240

if DISPLAY

config SPI
	default y

config ST7789V
	default y

choice ST7789V_PIXEL_FORMAT
	default ST7789V_RGB888 if SHIELD_ST7789V_TL019FQV01
	default ST7789V_RGB565 if SHIELD_ST7789V_WAVESHARE_240X240
endchoice

if LVGL

config LV_Z_BITS_PER_PIXEL
	default 24 if SHIELD_ST7789V_TL019FQV01
	default 16 if SHIELD_ST7789V_WAVESHARE_240X240

choice LV_COLOR_DEPTH
	default LV_COLOR_DEPTH_16 if SHIELD_ST7789V_WAVESHARE_240X240
endchoice

config LV_COLOR_16_SWAP
	default y if SHIELD_ST7789V_WAVESHARE_240X240

endif # LVGL

endif # DISPLAY

endif # SHIELD_ST7789V_TL019FQV01 || SHIELD_ST7789V_WAVESHARE_240X240
