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

if SOC_SERIES_STM32F4X

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

config SOC_SERIES
	default stm32f4

config SERIAL
	def_bool y

if SERIAL

config CONSOLE
	def_bool y

config UART_CONSOLE
	def_bool y

config UART_STM32
	def_bool y

endif #SERIAL

if GPIO

config GPIO_STM32
	def_bool y

config GPIO_STM32_PORTA
	def_bool y

config GPIO_STM32_PORTB
	def_bool y

config GPIO_STM32_PORTC
	def_bool y

config GPIO_STM32_PORTD
       def_bool y

endif #GPIO

if PINMUX

config PINMUX_STM32
	def_bool y

endif #PINMUX

if USB

config USB_DC_STM32
	def_bool y

# USB OTG FS has four endpoints including ep0
config USB_DC_STM32_EP_NUM
        int
        default 4

# 320 4-Byte words FIFO for USB OTG FS controller
config USB_DC_STM32_RAM_SIZE
        int
        default 1280

endif #USB

if WATCHDOG

config IWDG_STM32
	def_bool y

endif # WATCHDOG

endif # SOC_SERIES_STM32F4X
