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

config FLASH_JESD216
	bool
	help
	 Selected by drivers that support JESD216-compatible flash
	 devices to enable building a common support module.

config FLASH_JESD216_API
	bool "Provide API to read JESD216 flash parameters"
	depends on FLASH_JESD216
	help
	  This option extends the Zephyr flash API with the ability
	  to access the Serial Flash Discoverable Parameter section
	  allowing runtime determination of serial flash parameters
	  for flash drivers that expose this capability.

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
	default y
	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.b91"

source "drivers/flash/Kconfig.at45"

source "drivers/flash/Kconfig.esp32"

source "drivers/flash/Kconfig.it8xxx2"

source "drivers/flash/Kconfig.nrf"

source "drivers/flash/Kconfig.lpc"

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.stm32_qspi"

source "drivers/flash/Kconfig.sam0"

source "drivers/flash/Kconfig.sam"

source "drivers/flash/Kconfig.simulator"

source "drivers/flash/Kconfig.rv32m1"

source "drivers/flash/Kconfig.nordic_qspi_nor"

endif # FLASH
