# 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
