# STM32L4R5ZI Nucleo board configuration

# Copyright (c) 2018 Pushpal Sidhu
# SPDX-License-Identifier: Apache-2.0

if BOARD_NUCLEO_L4R5ZI

config BOARD
	default "nucleo_l4r5zi"

if STM32_LPTIM_TIMER

choice STM32_LPTIM_CLOCK
	default STM32_LPTIM_CLOCK_LSI

endchoice

endif #STM32_LPTIM_TIMER

if UART_CONSOLE

config LPUART_1
	default y

endif # UART_CONSOLE

if I2C

config I2C_1
	default y

endif # I2C

if SPI

config SPI_1
	default y

config SPI_STM32_INTERRUPT
	default y

endif # SPI

if PWM

config PWM_STM32_2
	default y

endif # PWM

if NETWORKING

config USB
	default y

config USB_DEVICE_STACK
	default y

config USB_DEVICE_NETWORK_EEM
	default y

endif # NETWORKING

endif # BOARD_NUCLEO_L4R5ZI
