menu "MTD Support"

config MTD_PARTITIONS
	bool

config MTD
	bool "Enable MTD layer"
	help
	  Enable the MTD stack, necessary to interact with NAND, NOR,
	  SPI-NOR, SPI-NAND, OneNAND, etc.

config DM_MTD
	bool "Enable Driver Model for MTD drivers"
	depends on DM
	help
	  Enable driver model for Memory Technology Devices (MTD), such as
	  flash, RAM and similar chips, often used for solid state file
	  systems on embedded devices.

config MTD_NOR_FLASH
	bool "Enable parallel NOR flash support"
	help
	  Enable support for parallel NOR flash.

config MTD_CONCAT
	bool "Enable MTD device concatenation"
	depends on MTD
	help
	  Enable support for concatenating multiple physical MTD devices
	  into a single logical device. The larger logical device can then
	  be partitioned.

config SYS_MTDPARTS_RUNTIME
	bool "Allow MTDPARTS to be configured at runtime"
	depends on MTD
	help
	  This option allows to call the function board_mtdparts_default to
	  dynamically build the variables mtdids and mtdparts at runtime.

config FLASH_CFI_DRIVER
	bool "Enable CFI Flash driver"
	select USE_SYS_MAX_FLASH_BANKS
	help
	  The Common Flash Interface specification was developed by Intel,
	  AMD and other flash manufactures. It provides a universal method
	  for probing the capabilities of flash devices. If you wish to
	  support any device that is CFI-compliant, you need to enable this
	  option. Visit <http://www.amd.com/products/nvd/overview/cfi.html>
	  for more information on CFI.

config CFI_FLASH
	bool "Enable Driver Model for CFI Flash driver"
	depends on DM_MTD
	select FLASH_CFI_DRIVER
	help
	  The Common Flash Interface specification was developed by Intel,
	  AMD and other flash manufactures. It provides a universal method
	  for probing the capabilities of flash devices. If you wish to
	  support any device that is CFI-compliant, you need to enable this
	  option. Visit <http://www.amd.com/products/nvd/overview/cfi.html>
	  for more information on CFI.

config CFI_FLASH_USE_WEAK_ACCESSORS
	bool "Allow read/write functions to be overridden"
	depends on FLASH_CFI_DRIVER
	help
	  Enable this option to allow for the flash_{read,write}{8,16,32,64}
	  functions to be overridden by the platform.

config SYS_FLASH_USE_BUFFER_WRITE
	bool "Enable buffered writes to flash"
	depends on FLASH_CFI_DRIVER
	help
	  Use buffered writes to flash.

config FLASH_CFI_MTD
	bool "Enable CFI MTD driver"
	depends on FLASH_CFI_DRIVER
	help
	  This option enables the building of the cfi_mtd driver
	  in the drivers directory. The driver exports CFI flash
	  to the MTD layer.

config SYS_FLASH_PROTECTION
	bool "Use hardware flash protection"
	depends on FLASH_CFI_DRIVER
	help
	  If defined, hardware flash sectors protection is used
	  instead of U-Boot software protection.

config SYS_FLASH_CFI
	bool "Define extra elements in CFI for flash geometry"
	depends on FLASH_CFI_DRIVER
	help
	  Define if the flash driver uses extra elements in the
	  common flash structure for storing flash geometry.

config ALTERA_QSPI
	bool "Altera Generic Quad SPI Controller"
	depends on DM_MTD
	select USE_SYS_MAX_FLASH_BANKS
	help
	  This enables access to Altera EPCQ/EPCS flash chips using the
	  Altera Generic Quad SPI Controller. The controller converts SPI
	  NOR flash to parallel flash interface. Please find details on the
	  "Embedded Peripherals IP User Guide" of Altera.

config FLASH_PIC32
	bool "Microchip PIC32 Flash driver"
	depends on MACH_PIC32 && DM_MTD
	select USE_SYS_MAX_FLASH_BANKS
	help
	  This enables access to Microchip PIC32 internal non-CFI flash
	  chips through PIC32 Non-Volatile-Memory Controller.

config RENESAS_RPC_HF
	bool "Renesas RCar Gen3 RPC HyperFlash driver"
	depends on RCAR_GEN3 && DM_MTD
	help
	  This enables access to HyperFlash memory through the Renesas
	  RCar Gen3 RPC controller.

config HBMC_AM654
	bool "HyperBus controller driver for AM65x SoC"
	depends on SYSCON
	help
	 This is the driver for HyperBus controller on TI's AM65x and
	 other SoCs

config STM32_FLASH
	bool "STM32 MCU Flash driver"
	depends on ARCH_STM32
	select USE_SYS_MAX_FLASH_BANKS
	help
	 This is the driver of embedded flash for some STMicroelectronics
	 STM32 MCU.

config USE_SYS_MAX_FLASH_BANKS
	bool "Enable Max number of Flash memory banks"
	help
	  When this option is enabled, the CONFIG_SYS_MAX_FLASH_BANKS
	  will be defined.

config SYS_MAX_FLASH_BANKS
	int "Max number of Flash memory banks"
	depends on USE_SYS_MAX_FLASH_BANKS
	default 1
	help
	 Max number of Flash memory banks using by the MTD framework, in the
	 flash CFI driver and in some other driver to define the flash_info
	 struct declaration.

config SYS_MAX_FLASH_BANKS_DETECT
	bool "Detection of flash banks number in CFI driver"
	depends on CFI_FLASH && FLASH_CFI_DRIVER
	help
	 This enables detection of number of flash banks in CFI driver,
	 to reduce the effective number of flash bank, between 0 and
	 CONFIG_SYS_MAX_FLASH_BANKS

source "drivers/mtd/nand/Kconfig"

config SYS_NAND_MAX_CHIPS
	int "NAND max chips"
	depends on MTD_RAW_NAND || CMD_ONENAND || TARGET_S5PC210_UNIVERSAL || \
		SPL_OMAP3_ID_NAND
	default 1
	help
	  The maximum number of NAND chips per device to be supported.

source "drivers/mtd/spi/Kconfig"

source "drivers/mtd/ubi/Kconfig"

endmenu