# STM32L452RE Nucleo board configuration
#
# Copyright (c) 2019 Libre Solar Technologies GmbH
#
# SPDX-License-Identifier: Apache-2.0

if BOARD_NUCLEO_L452RE

config BOARD
	default "nucleo_l452re"

if UART_CONSOLE

config UART_2
	default y

endif # UART_CONSOLE

if PWM

config PWM_STM32_2
	default y

endif # PWM

if SPI

config SPI_1
	default y

config SPI_STM32_INTERRUPT
	default y

endif # SPI

if CAN

config CAN_1
	default y

endif # CAN

endif # BOARD_NUCLEO_L452RE
