#
# 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_DISPLAY_DEV_NAME
	default "GD7965" if SHIELD_WAVESHARE_EPAPER_GDEW075T7
	default "GD7965" if SHIELD_WAVESHARE_EPAPER_GDEW042T2
	default "SSD16XX"

config LVGL_HOR_RES_MAX
	default 296 if SHIELD_WAVESHARE_EPAPER_GDEH029A1
	default 250 if SHIELD_WAVESHARE_EPAPER_GDEH0213B1
	default 250 if SHIELD_WAVESHARE_EPAPER_GDEH0213B72
	default 800 if SHIELD_WAVESHARE_EPAPER_GDEW075T7
	default 200 if SHIELD_WAVESHARE_EPAPER_GDEH0154A07
	default 400 if SHIELD_WAVESHARE_EPAPER_GDEW042T2

config LVGL_VER_RES_MAX
	default 128 if SHIELD_WAVESHARE_EPAPER_GDEH029A1
	default 120 if SHIELD_WAVESHARE_EPAPER_GDEH0213B1
	default 120 if SHIELD_WAVESHARE_EPAPER_GDEH0213B72
	default 480 if SHIELD_WAVESHARE_EPAPER_GDEW075T7
	default 200 if SHIELD_WAVESHARE_EPAPER_GDEH0154A07
	default 300 if SHIELD_WAVESHARE_EPAPER_GDEW042T2

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
