# Kconfig - 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
