# SensorTile.box board configuration

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

if BOARD_SENSORTILE_BOX

config BOARD
	default "sensortile_box"

if BT

config SPI
	default y

choice BT_HCI_BUS_TYPE
	default BT_SPI
endchoice

config BT_BLUENRG_ACI
	default y
# Disable Flow control
config BT_HCI_ACL_FLOW_CONTROL
	default n
config BT_HCI_VS_EXT
	default n

endif # BT

config SPI_STM32_INTERRUPT
	default y
	depends on SPI

endif # BOARD_SENSORTILE_BOX
