#
# 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 UC81XX
	default y if SHIELD_WAVESHARE_EPAPER_GDEW075T7
	default y if SHIELD_WAVESHARE_EPAPER_GDEW042T2

if LVGL

config LV_Z_VDB_SIZE
	default 16 if SHIELD_WAVESHARE_EPAPER_GDEW075T7
	default 16

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

choice LV_COLOR_DEPTH
	default LV_COLOR_DEPTH_1
endchoice

config LV_Z_BITS_PER_PIXEL
	default 1

endif # LVGL

endif # DISPLAY

endif # SHIELD_WAVESHARE_EPAPER_GDEH02
