# 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
	prompt "STM32 flash driver"
	depends on (SOC_SERIES_STM32F0X || SOC_SERIES_STM32F3X || SOC_SERIES_STM32F4X || SOC_SERIES_STM32L4X)
	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.

config SOC_FLASH_STM32_DEV_NAME
	string "STM32 flash device name"
	depends on SOC_FLASH_STM32
	default "FLASH_STM32"
	help
	 Specify the device name for the flash driver.

endif
