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

if BOARD_NUCLEO_F401RE

config BOARD
	default "nucleo_f401re"

if UART_CONSOLE

config UART_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

if WATCHDOG

config WWDG_STM32
	default y

config IWDG_STM32
	default n

endif # WATCHDOG

endif # BOARD_NUCLEO_F401RE
