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

config UART_2
	default y
	depends on UART_CONSOLE

config I2C_2
	default y
	depends on I2C

if SPI

config SPI_1
	default y

config SPI_STM32_INTERRUPT
	default y

endif # SPI

config PWM_STM32_3
	default y
	depends on PWM

config USB_DC_STM32
	default y
	depends on USB

endif # BOARD_MIKROE_MINI_M4_FOR_STM32
