# Kconfig - 96boards Carbon board configuration
#
# Copyright (c) 2016 Linaro Limited.
#
# SPDX-License-Identifier: Apache-2.0
#

if BOARD_96B_CARBON

config BOARD
	default "96b_carbon"

if UART_CONSOLE

config UART_1
	default y

endif # UART_CONSOLE

if SERIAL

config UART_2
	default y

config UART_6
	default y

endif # SERIAL

if I2C

config I2C_1
	default y

config I2C_2
	default y

endif # I2C

if SPI

config SPI_1
	default y

config SPI_2
	default y

config SPI_STM32_INTERRUPT
	default y

endif # 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
