# Kconfig.defconfig.series - ST Microelectronics STM32F4 MCU line
#
# Copyright (c) 2016 Linaro Limited
#
# SPDX-License-Identifier: Apache-2.0
#

# Kconfig symbols common to STM32F4 series

if SOC_SERIES_STM32F4X

source "soc/arm/st_stm32/stm32f4/Kconfig.defconfig.stm32f4*"

config SOC_SERIES
	default "stm32f4"

if GPIO_STM32

# GPIO ports A, B and C are set in ../common/Kconfig.defconfig.series

config GPIO_STM32_PORTD
	default y

config GPIO_STM32_PORTE
	default y

config GPIO_STM32_PORTH
	default y

endif # GPIO_STM32

if I2C_STM32

config I2C_STM32_V1
	default y

endif # I2C_STM32

if DMA

config DMA_STM32F4X
	default y

endif # DMA

endif # SOC_SERIES_STM32F4X
