menuconfig MTD
	tristate "Memory Technology Device (MTD) support"
	imply NVMEM
	help
	  Memory Technology Devices are flash, RAM and similar chips, often
	  used for solid state file systems on embedded devices. This option
	  will provide the generic support for MTD drivers to register
	  themselves with the kernel and for potential users of MTD devices
	  to enumerate the devices which are present and obtain a handle on
	  them. It will also allow you to select individual drivers for
	  particular hardware and users of MTD devices. If unsure, say N.

if MTD

config MTD_TESTS
	tristate "MTD tests support (DANGEROUS)"
	depends on m
	help
	  This option includes various MTD tests into compilation. The tests
	  should normally be compiled as kernel modules. The modules perform
	  various checks and verifications when loaded.

	  WARNING: some of the tests will ERASE entire MTD device which they
	  test. Do not use these tests unless you really know what you do.

config MTD_CMDLINE_PARTS
	tristate "Command line partition table parsing"
	depends on MTD
	help
	  Allow generic configuration of the MTD partition tables via the kernel
	  command line. Multiple flash resources are supported for hardware where
	  different kinds of flash memory are available.

	  You will still need the parsing functions to be called by the driver
	  for your particular device. It won't happen automatically. The
	  SA1100 map driver (CONFIG_MTD_SA1100) has an option for this, for
	  example.

	  The format for the command line is as follows:

	  mtdparts=<mtddef>[;<mtddef]
	  <mtddef>  := <mtd-id>:<partdef>[,<partdef>]
	  <partdef> := <size>[@offset][<name>][ro]
	  <mtd-id>  := unique id used in mapping driver/device
	  <size>    := standard linux memsize OR "-" to denote all
	  remaining space
	  <name>    := (NAME)

	  Due to the way Linux handles the command line, no spaces are
	  allowed in the partition definition, including mtd id's and partition
	  names.

	  Examples:

	  1 flash resource (mtd-id "sa1100"), with 1 single writable partition:
	  mtdparts=sa1100:-

	  Same flash, but 2 named partitions, the first one being read-only:
	  mtdparts=sa1100:256k(ARMboot)ro,-(root)

	  If unsure, say 'N'.

config MTD_AFS_PARTS
	tristate "ARM Firmware Suite partition parsing"
	depends on (ARM || ARM64)
	help
	  The ARM Firmware Suite allows the user to divide flash devices into
	  multiple 'images'. Each such image has a header containing its name
	  and offset/size etc.

	  If you need code which can detect and parse these tables, and
	  register MTD 'partitions' corresponding to each image detected,
	  enable this option.

	  You will still need the parsing functions to be called by the driver
	  for your particular device. It won't happen automatically. The
	  'physmap' map driver (CONFIG_MTD_PHYSMAP) does this, for example.

config MTD_OF_PARTS
	tristate "OpenFirmware partitioning information support"
	default y
	depends on OF
	help
	  This provides a partition parsing function which derives
	  the partition map from the children of the flash node,
	  as described in Documentation/devicetree/bindings/mtd/partition.txt.

config MTD_AR7_PARTS
	tristate "TI AR7 partitioning support"
	help
	  TI AR7 partitioning support

config MTD_BCM63XX_PARTS
	tristate "BCM63XX CFE partitioning support"
	depends on BCM63XX || BMIPS_GENERIC || COMPILE_TEST
	select CRC32
	help
	  This provides partition parsing for BCM63xx devices with CFE
	  bootloaders.

config MTD_BCM47XX_PARTS
	tristate "BCM47XX partitioning support"
	depends on BCM47XX || ARCH_BCM_5301X
	help
	  This provides partitions parser for devices based on BCM47xx
	  boards.

menu "Partition parsers"
source "drivers/mtd/parsers/Kconfig"
endmenu

comment "User Modules And Translation Layers"

#
# MTD block device support is select'ed if needed
#
config MTD_BLKDEVS
	tristate

config MTD_BLOCK
	tristate "Caching block device access to MTD devices"
	depends on BLOCK
	select MTD_BLKDEVS
	help
	  Although most flash chips have an erase size too large to be useful
	  as block devices, it is possible to use MTD devices which are based
	  on RAM chips in this manner. This block device is a user of MTD
	  devices performing that function.

	  At the moment, it is also required for the Journalling Flash File
	  System(s) to obtain a handle on the MTD device when it's mounted
	  (although JFFS and JFFS2 don't actually use any of the functionality
	  of the mtdblock device).

	  Later, it may be extended to perform read/erase/modify/write cycles
	  on flash chips to emulate a smaller block size. Needless to say,
	  this is very unsafe, but could be useful for file systems which are
	  almost never written to.

	  You do not need this option for use with the DiskOnChip devices. For
	  those, enable NFTL support (CONFIG_NFTL) instead.

config MTD_BLOCK_RO
	tristate "Readonly block device access to MTD devices"
	depends on MTD_BLOCK!=y && BLOCK
	select MTD_BLKDEVS
	help
	  This allows you to mount read-only file systems (such as cramfs)
	  from an MTD device, without the overhead (and danger) of the caching
	  driver.

	  You do not need this option for use with the DiskOnChip devices. For
	  those, enable NFTL support (CONFIG_NFTL) instead.

config FTL
	tristate "FTL (Flash Translation Layer) support"
	depends on BLOCK
	select MTD_BLKDEVS
	help
	  This provides support for the original Flash Translation Layer which
	  is part of the PCMCIA specification. It uses a kind of pseudo-
	  file system on a flash device to emulate a block device with
	  512-byte sectors, on top of which you put a 'normal' file system.

	  You may find that the algorithms used in this code are patented
	  unless you live in the Free World where software patents aren't
	  legal - in the USA you are only permitted to use this on PCMCIA
	  hardware, although under the terms of the GPL you're obviously
	  permitted to copy, modify and distribute the code as you wish. Just
	  not use it.

config NFTL
	tristate "NFTL (NAND Flash Translation Layer) support"
	depends on BLOCK
	select MTD_BLKDEVS
	help
	  This provides support for the NAND Flash Translation Layer which is
	  used on M-Systems' DiskOnChip devices. It uses a kind of pseudo-
	  file system on a flash device to emulate a block device with
	  512-byte sectors, on top of which you put a 'normal' file system.

	  You may find that the algorithms used in this code are patented
	  unless you live in the Free World where software patents aren't
	  legal - in the USA you are only permitted to use this on DiskOnChip
	  hardware, although under the terms of the GPL you're obviously
	  permitted to copy, modify and distribute the code as you wish. Just
	  not use it.

config NFTL_RW
	bool "Write support for NFTL"
	depends on NFTL
	help
	  Support for writing to the NAND Flash Translation Layer, as used
	  on the DiskOnChip.

config INFTL
	tristate "INFTL (Inverse NAND Flash Translation Layer) support"
	depends on BLOCK
	select MTD_BLKDEVS
	help
	  This provides support for the Inverse NAND Flash Translation
	  Layer which is used on M-Systems' newer DiskOnChip devices. It
	  uses a kind of pseudo-file system on a flash device to emulate
	  a block device with 512-byte sectors, on top of which you put
	  a 'normal' file system.

	  You may find that the algorithms used in this code are patented
	  unless you live in the Free World where software patents aren't
	  legal - in the USA you are only permitted to use this on DiskOnChip
	  hardware, although under the terms of the GPL you're obviously
	  permitted to copy, modify and distribute the code as you wish. Just
	  not use it.

config RFD_FTL
	tristate "Resident Flash Disk (Flash Translation Layer) support"
	depends on BLOCK
	select MTD_BLKDEVS
	help
	  This provides support for the flash translation layer known
	  as the Resident Flash Disk (RFD), as used by the Embedded BIOS
	  of General Software. There is a blurb at:

		http://www.gensw.com/pages/prod/bios/rfd.htm

config SSFDC
	tristate "NAND SSFDC (SmartMedia) read only translation layer"
	depends on BLOCK
	select MTD_BLKDEVS
	help
	  This enables read only access to SmartMedia formatted NAND
	  flash. You can mount it with FAT file system.


config SM_FTL
	tristate "SmartMedia/xD new translation layer"
	depends on BLOCK
	select MTD_BLKDEVS
	select MTD_NAND_ECC
	help
	  This enables EXPERIMENTAL R/W support for SmartMedia/xD
	  FTL (Flash translation layer).
	  Write support is only lightly tested, therefore this driver
	  isn't recommended to use with valuable data (anyway if you have
	  valuable data, do backups regardless of software/hardware you
	  use, because you never know what will eat your data...)
	  If you only need R/O access, you can use older R/O driver
	  (CONFIG_SSFDC)

config MTD_OOPS
	tristate "Log panic/oops to an MTD buffer"
	help
	  This enables panic and oops messages to be logged to a circular
	  buffer in a flash partition where it can be read back at some
	  later point.

config MTD_SWAP
	tristate "Swap on MTD device support"
	depends on MTD && SWAP
	select MTD_BLKDEVS
	help
	  Provides volatile block device driver on top of mtd partition
	  suitable for swapping.  The mapping of written blocks is not saved.
	  The driver provides wear leveling by storing erase counter into the
	  OOB.

config MTD_PARTITIONED_MASTER
	bool "Retain master device when partitioned"
	default n
	depends on MTD
	help
	  For historical reasons, by default, either a master is present or
	  several partitions are present, but not both. The concern was that
	  data listed in multiple partitions was dangerous; however, SCSI does
	  this and it is frequently useful for applications. This config option
	  leaves the master in even if the device is partitioned. It also makes
	  the parent of the partition device be the master device, rather than
	  what lies behind the master.

source "drivers/mtd/chips/Kconfig"

source "drivers/mtd/maps/Kconfig"

source "drivers/mtd/devices/Kconfig"

source "drivers/mtd/nand/Kconfig"

source "drivers/mtd/lpddr/Kconfig"

source "drivers/mtd/spi-nor/Kconfig"

source "drivers/mtd/ubi/Kconfig"

endif # MTD
