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.

choice
	prompt "Data-width of the flash device"
	depends on FLASH_CFI_DRIVER
	default SYS_FLASH_CFI_WIDTH_8BIT

config SYS_FLASH_CFI_WIDTH_8BIT
	bool "Data-width of the device is 8-bit"

config SYS_FLASH_CFI_WIDTH_16BIT
	bool "Data-width of the device is 16-bit"

config SYS_FLASH_CFI_WIDTH_32BIT
	bool "Data-width of the device is 32-bit"

config SYS_FLASH_CFI_WIDTH_64BIT
	bool "Data-width of the device is 64-bit"

endchoice

config SYS_FLASH_CFI_WIDTH
	hex
	depends on FLASH_CFI_DRIVER
	default 0x1 if SYS_FLASH_CFI_WIDTH_8BIT
	default 0x2 if SYS_FLASH_CFI_WIDTH_16BIT
	default 0x4 if SYS_FLASH_CFI_WIDTH_32BIT
	default 0x8 if SYS_FLASH_CFI_WIDTH_64BIT
	help
	  This must be kept in sync with the table in include/flash.h

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_CFI_FLASH_STATUS_POLL
	bool "Poll status on AMD flash chips"
	depends on FLASH_CFI_DRIVER

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 SAMSUNG_ONENAND
	bool "Samsung OneNAND driver support"

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
