# Kconfig - STM32F3DISCOVERY board configuration
#
# Copyright (c) 2017 I-SENSE group of ICCS
#
# SPDX-License-Identifier: Apache-2.0
#

if BOARD_STM32F3_DISCO

config BOARD
	default "stm32f3_disco"

if UART_CONSOLE

config UART_1
	default y

endif # UART_CONSOLE

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

endif # SPI

endif # BOARD_STM32F3_DISCO
