# Flash driver configuration options

# Copyright (c) 2016 Intel Corporation
# SPDX-License-Identifier: Apache-2.0

#
# Flash driver
#
config FLASH_HAS_DRIVER_ENABLED
	bool
	help
	  This option is enabled when any flash driver is enabled.

config FLASH_HAS_PAGE_LAYOUT
	bool
	help
	  This option is enabled when the SoC flash driver supports
	  retrieving the layout of flash memory pages.

menuconfig FLASH
	bool "Flash hardware support"
	help
	  Enable support for the flash hardware.

if FLASH

module = FLASH
module-str = flash
source "subsys/logging/Kconfig.template.log_config"

config FLASH_SHELL
	bool "Enable Flash shell"
	depends on SHELL && FLASH_PAGE_LAYOUT
	help
	  Enable the flash shell with flash related commands such as test,
	  write, read and erase.

config FLASH_PAGE_LAYOUT
	bool "API for retrieving the layout of pages"
	depends on FLASH_HAS_PAGE_LAYOUT
	default y
	help
	  Enables API for retrieving the layout of flash memory pages.

source "drivers/flash/Kconfig.at45"

source "drivers/flash/Kconfig.nrf"

source "drivers/flash/Kconfig.mcux"

source "drivers/flash/Kconfig.nios2_qspi"

source "drivers/flash/Kconfig.gecko"

source "drivers/flash/Kconfig.nor"

source "drivers/flash/Kconfig.stm32"

source "drivers/flash/Kconfig.sam0"

source "drivers/flash/Kconfig.sam"

source "drivers/flash/Kconfig.w25qxxdv"

source "drivers/flash/Kconfig.simulator"

source "drivers/flash/Kconfig.rv32m1"

source "drivers/flash/Kconfig.nordic_qspi_nor"

endif # FLASH
