# Mikroe MINI-M4 for STM32 board configuration

# Copyright (c) 2019, Kwon Tae-young <tykwon@m2i.co.kr>
# SPDX-License-Identifier: Apache-2.0

if BOARD_MIKROE_MINI_M4_FOR_STM32

config BOARD
	default "mikroe_mini_m4_for_stm32"

if UART_CONSOLE

config UART_2
	default y

endif # UART_CONSOLE

if I2C

config I2C_2
	default y

config I2C_STM32_INTERRUPT
	default y

endif # I2C

if SPI

config SPI_1
	default y

config SPI_STM32_INTERRUPT
	default y

endif # SPI

if PWM

config PWM_STM32_3
	default y

endif # PWM

if USB

config USB_DC_STM32
	default y

endif # USB

endif # BOARD_MIKROE_MINI_M4_FOR_STM32
