# 96boards Carbon board configuration

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

if BOARD_96B_CARBON_STM32F401XE

config SPI_STM32_INTERRUPT
	default y
	depends on SPI

if BT

config SPI
	default y

choice BT_HCI_BUS_TYPE
	default BT_SPI
endchoice

endif # BT

if NETWORKING

# Re-create the NET_L2_BT dependencies here
config BT
	default y

config BT_PERIPHERAL
	default BT

config BT_CENTRAL
	default BT

config BT_SMP
	default BT

config BT_L2CAP_DYNAMIC_CHANNEL
	default BT

# BT is the only onboard network iface, so use it for IP networking
# if it's enabled

config NET_L2_BT
	depends on NET_IPV6
	default BT

config NET_L2_BT_ZEP1656
	depends on NET_IPV6
	default BT

endif # NETWORKING

endif # BOARD_96B_CARBON_STM32F401XE

if BOARD_96B_CARBON_NRF51822

config BT_CTLR
	default BT

endif # BOARD_96B_CARBON_NRF51822
