# reel board configuration

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

if BOARD_REEL_BOARD || BOARD_REEL_BOARD_V2

config BOARD
	default "reel_board" if BOARD_REEL_BOARD
	default "reel_board_v2" if BOARD_REEL_BOARD_V2

config I2C
	default y

config BT_CTLR
	default y
	depends on BT

if FXOS8700

choice FXOS8700_MODE
	default FXOS8700_MODE_ACCEL
endchoice

endif # FXOS8700

if LVGL

choice LV_COLOR_DEPTH
	default LV_COLOR_DEPTH_1
endchoice

config LV_Z_BITS_PER_PIXEL
	default 1

config LV_Z_DPI
	default 130

config LV_Z_VDB_SIZE
	default 16

endif # LVGL

endif # BOARD_REEL_BOARD || BOARD_REEL_BOARD_V2
