# Copyright (c) 2019 Linaro Limited
# SPDX-License-Identifier: Apache-2.0

if SHIELD_SSD1306_128X64 || SHIELD_SSD1306_128X64_SPI || SHIELD_SSD1306_128X32 || SHIELD_SH1106_128X64

if DISPLAY

if SHIELD_SSD1306_128X64_SPI

config SPI
	default y

endif # SHIELD_SSD1306_128X64_SPI

if SHIELD_SSD1306_128X64 || SHIELD_SSD1306_128X32 || SHIELD_SH1106_128X64

config I2C
	default y

endif # SHIELD_SSD1306_128X64 || SHIELD_SSD1306_128X32 || SHIELD_SH1106_128X64

config SSD1306
	default y

choice SSD1306_CONTROLLER_TYPE
	default SSD1306_SH1106_COMPATIBLE if SHIELD_SH1106_128X64
endchoice

if LVGL

config LV_Z_VDB_SIZE
	default 64

config LV_Z_DPI
	default 116 if SHIELD_SH1106_128X64
	default 148

config LV_Z_BITS_PER_PIXEL
	default 1

choice LV_COLOR_DEPTH
	default LV_COLOR_DEPTH_1
endchoice

endif # LVGL

endif # DISPLAY

endif # SHIELD_SSD1306_128X64 || SHIELD_SSD1306_128X64_SPI || SHIELD_SSD1306_128X32 || SHIELD_SH1106_128X64
