#
# Copyright (c) 2019, PHYTEC Messtechnik GmbH
# Copyright (c) 2019 Linaro Limited
#
# SPDX-License-Identifier: Apache-2.0
#

if SHIELD_WAVESHARE_EPAPER_GDEH029A1 || SHIELD_WAVESHARE_EPAPER_GDEH0213B1 || SHIELD_WAVESHARE_EPAPER_GDEH0213B72 || SHIELD_WAVESHARE_EPAPER_GDEW075T7 || SHIELD_WAVESHARE_EPAPER_GDEH0154A07 || SHIELD_WAVESHARE_EPAPER_GDEW042T2


if DISPLAY

config SPI
	default y

config SSD16XX
	default y if SHIELD_WAVESHARE_EPAPER_GDEH029A1
	default y if SHIELD_WAVESHARE_EPAPER_GDEH0213B1
	default y if SHIELD_WAVESHARE_EPAPER_GDEH0213B72
	default y if SHIELD_WAVESHARE_EPAPER_GDEH0154A07

config GD7965
	default y if SHIELD_WAVESHARE_EPAPER_GDEW075T7
	default y if SHIELD_WAVESHARE_EPAPER_GDEW042T2

if LVGL

config LVGL_VDB_SIZE
	default 16 if SHIELD_WAVESHARE_EPAPER_GDEW075T7
	default 16

config LVGL_DPI
	default 188 if SHIELD_WAVESHARE_EPAPER_GDEH0154A07
	default 120 if SHIELD_WAVESHARE_EPAPER_GDEW042T2
	default 130

choice LVGL_COLOR_DEPTH
	default LVGL_COLOR_DEPTH_1
endchoice

config LVGL_BITS_PER_PIXEL
	default 1

endif # LVGL

endif # DISPLAY

endif # SHIELD_WAVESHARE_EPAPER_GDEH02
