# Kconfig - NUCLEO-64 F401RE board configuration
#
# Copyright (c) 2016 Linaro Limited.
#
# SPDX-License-Identifier: Apache-2.0
#

if BOARD_NUCLEO_F401RE

config BOARD
	default nucleo_f401re

if UART_CONSOLE

config UART_STM32_PORT_2
	default y

endif # UART_CONSOLE

if I2C

config I2C_1
	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 PWM

config PWM_STM32_2
	default y

endif # PWM

endif # BOARD_NUCLEO_F401RE
