# 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
