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