# 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 SOC_FAMILY_STM32

menuconfig SOC_FLASH_STM32
	bool "STM32 flash driver"
	depends on (SOC_SERIES_STM32F0X || SOC_SERIES_STM32F3X || SOC_SERIES_STM32F4X || SOC_SERIES_STM32F7X || 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_STM32F3X
	select FLASH_PAGE_LAYOUT if SOC_SERIES_STM32F4X
	select FLASH_PAGE_LAYOUT if SOC_SERIES_STM32F7X
	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_STM32F3X
	select FLASH_HAS_PAGE_LAYOUT if SOC_SERIES_STM32F4X
	select FLASH_HAS_PAGE_LAYOUT if SOC_SERIES_STM32F7X
	select FLASH_HAS_PAGE_LAYOUT if SOC_SERIES_STM32L4X
	help
	 Enable STM32F0x, STM32F3x, STM32F4x, STM32F7x OR STM32L4x series flash driver.

endif
