# Kconfig - ST Microelectronics STM32 MCUs Flash driver config
#
# Copyright (c) 2016 RnDity Sp. z o.o.
# Copyright (c) 2017 BayLibre, SAS
#
# SPDX-License-Identifier: Apache-2.0
#

if FLASH && SOC_FAMILY_STM32

menuconfig SOC_FLASH_STM32
	bool "STM32 flash driver"
	depends on (SOC_SERIES_STM32F0X || SOC_SERIES_STM32F3X || SOC_SERIES_STM32F4X || SOC_SERIES_STM32L4X)
	select FLASH_HAS_DRIVER_ENABLED
	default y
	select FLASH_PAGE_LAYOUT if SOC_SERIES_STM32F0X
	select FLASH_PAGE_LAYOUT if SOC_SERIES_STM32F4X
	select FLASH_PAGE_LAYOUT if SOC_SERIES_STM32L4X
	select FLASH_HAS_PAGE_LAYOUT if SOC_SERIES_STM32F0X
	select FLASH_HAS_PAGE_LAYOUT if SOC_SERIES_STM32F4X
	select FLASH_HAS_PAGE_LAYOUT if SOC_SERIES_STM32L4X
	help
	 Enable STM32F0x, STM32F3x, STM32F4x OR STM32L4x series flash driver.

endif
