# Kconfig - STM32MP157 discovery board configuration
#
# Copyright (c) 2019 STMicroelectronics
#
# SPDX-License-Identifier: Apache-2.0
#

if BOARD_STM32MP157C_DK2

config BOARD
	default "stm32mp157c_dk2"

if UART_CONSOLE

config UART_3
	default y

endif # UART_CONSOLE

if SERIAL

config UART_7
	default y

endif # SERIAL

if I2C

config I2C_5
	default y

endif # I2C

if SPI

config SPI_STM32_INTERRUPT
	default y

config SPI_4
	default y

endif # SPI

endif # BOARD_STM32MP157_Dk2
