# reel board configuration

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

if BOARD_REEL_BOARD

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_DPI_DEF
	default 130

config LV_Z_VDB_SIZE
	default 16

endif # LVGL

endif # BOARD_REEL_BOARD
