# Kconfig - ST Microelectronics STM32L4 MCU line
#
# Copyright (c) 2016 Open-RnD Sp. z o.o.
# Copyright (c) 2016 BayLibre, SAS
#
# SPDX-License-Identifier: Apache-2.0
#

# Kconfig symbols common to STM32L4 series

if SOC_SERIES_STM32L4X

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

config SOC_SERIES
	default "stm32l4"


if GPIO_STM32

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

config GPIO_STM32_PORTH
	default y

endif # GPIO_STM32

if I2C_STM32

config I2C_STM32_V2
	default y

endif # I2C_STM32

if ENTROPY_GENERATOR

config ENTROPY_STM32_RNG
	default y

endif # ENTROPY_GENERATOR

endif # SOC_SERIES_STM32L4X
