menu "Self-contained MTD device drivers"
	depends on MTD!=n
	depends on HAS_IOMEM

config MTD_PMC551
	tristate "Ramix PMC551 PCI Mezzanine RAM card support"
	depends on PCI
	---help---
	  This provides a MTD device driver for the Ramix PMC551 RAM PCI card
	  from Ramix Inc. <http://www.ramix.com/products/memory/pmc551.html>.
	  These devices come in memory configurations from 32M - 1G.  If you
	  have one, you probably want to enable this.

	  If this driver is compiled as a module you get the ability to select
	  the size of the aperture window pointing into the devices memory.
	  What this means is that if you have a 1G card, normally the kernel
	  will use a 1G memory map as its view of the device.  As a module,
	  you can select a 1M window into the memory and the driver will
	  "slide" the window around the PMC551's memory.  This was
	  particularly useful on the 2.2 kernels on PPC architectures as there
	  was limited kernel space to deal with.

config MTD_PMC551_BUGFIX
	bool "PMC551 256M DRAM Bugfix"
	depends on MTD_PMC551
	help
	  Some of Ramix's PMC551 boards with 256M configurations have invalid
	  column and row mux values.  This option will fix them, but will
	  break other memory configurations.  If unsure say N.

config MTD_PMC551_DEBUG
	bool "PMC551 Debugging"
	depends on MTD_PMC551
	help
	  This option makes the PMC551 more verbose during its operation and
	  is only really useful if you are developing on this driver or
	  suspect a possible hardware or driver bug.  If unsure say N.

config MTD_MS02NV
	tristate "DEC MS02-NV NVRAM module support"
	depends on MACH_DECSTATION
	help
	  This is an MTD driver for the DEC's MS02-NV (54-20948-01) battery
	  backed-up NVRAM module.  The module was originally meant as an NFS
	  accelerator.  Say Y here if you have a DECstation 5000/2x0 or a
	  DECsystem 5900 equipped with such a module.

	  If you want to compile this driver as a module ( = code which can be
	  inserted in and removed from the running kernel whenever you want),
	  say M here and read <file:Documentation/kbuild/modules.txt>.
	  The module will be called ms02-nv.

config MTD_MSM_QPIC_NAND
	tristate "MSM QPIC NAND Device Support"
	depends on MTD && (ARCH_QCOM || ARCH_MSM) && !MTD_MSM_NAND
	select CRC16
	select BITREVERSE
	select MTD_NAND_IDS
	default n
	help
	  Support for NAND controller in Qualcomm Technologies, Inc.
	  Parallel Interface controller (QPIC). This new controller
	  supports BAM mode and BCH error correction mechanism. Based on the
	  device capabilities either 4 bit or 8 bit BCH ECC will be used.

config MTD_DATAFLASH
	tristate "Support for AT45xxx DataFlash"
	depends on SPI_MASTER
	help
	  This enables access to AT45xxx DataFlash chips, using SPI.
	  Sometimes DataFlash chips are packaged inside MMC-format
	  cards; at this writing, the MMC stack won't handle those.

config MTD_DATAFLASH_WRITE_VERIFY
	bool "Verify DataFlash page writes"
	depends on MTD_DATAFLASH
	help
	  This adds an extra check when data is written to the flash.
	  It may help if you are verifying chip setup (timings etc) on
	  your board.  There is a rare possibility that even though the
	  device thinks the write was successful, a bit could have been
	  flipped accidentally due to device wear or something else.

config MTD_DATAFLASH_OTP
	bool "DataFlash OTP support (Security Register)"
	depends on MTD_DATAFLASH
	help
	  Newer DataFlash chips (revisions C and D) support 128 bytes of
	  one-time-programmable (OTP) data.  The first half may be written
	  (once) with up to 64 bytes of data, such as a serial number or
	  other key product data.  The second half is programmed with a
	  unique-to-each-chip bit pattern at the factory.

config MTD_M25P80
	tristate "Support most SPI Flash chips (AT26DF, M25P, W25X, ...)"
	depends on SPI_MASTER && MTD_SPI_NOR
	help
	  This enables access to most modern SPI flash chips, used for
	  program and data storage.   Series supported include Atmel AT26DF,
	  Spansion S25SL, SST 25VF, ST M25P, and Winbond W25X.  Other chips
	  are supported as well.  See the driver source for the current list,
	  or to add other chips.

	  Note that the original DataFlash chips (AT45 series, not AT26DF),
	  need an entirely different driver.

	  Set up your spi devices with the right board-specific platform data,
	  if you want to specify device partitioning or to use a device which
	  doesn't support the JEDEC ID instruction.

config MTD_SPEAR_SMI
	tristate "SPEAR MTD NOR Support through SMI controller"
	depends on PLAT_SPEAR
	default y
	help
	  This enable SNOR support on SPEAR platforms using SMI controller

config MTD_SST25L
	tristate "Support SST25L (non JEDEC) SPI Flash chips"
	depends on SPI_MASTER
	help
	  This enables access to the non JEDEC SST25L SPI flash chips, used
	  for program and data storage.

	  Set up your spi devices with the right board-specific platform data,
	  if you want to specify device partitioning.

config MTD_BCM47XXSFLASH
	tristate "Support for serial flash on BCMA bus"
	depends on BCMA_SFLASH && (MIPS || ARM)
	help
	  BCMA bus can have various flash memories attached, they are
	  registered by bcma as platform devices. This enables driver for
	  serial flash memories.

config MTD_SLRAM
	tristate "Uncached system RAM"
	help
	  If your CPU cannot cache all of the physical memory in your machine,
	  you can still use it for storage or swap by using this driver to
	  present it to the system as a Memory Technology Device.

config MTD_PHRAM
	tristate "Physical system RAM"
	help
	  This is a re-implementation of the slram driver above.

	  Use this driver to access physical memory that the kernel proper
	  doesn't have access to, memory beyond the mem=xxx limit, nvram,
	  memory on the video card, etc...

config MTD_LART
	tristate "28F160xx flash driver for LART"
	depends on SA1100_LART
	help
	  This enables the flash driver for LART. Please note that you do
	  not need any mapping/chip driver for LART. This one does it all
	  for you, so go disable all of those if you enabled some of them (:

config MTD_MTDRAM
	tristate "Test driver using RAM"
	help
	  This enables a test MTD device driver which uses vmalloc() to
	  provide storage.  You probably want to say 'N' unless you're
	  testing stuff.

config MTDRAM_TOTAL_SIZE
	int "MTDRAM device size in KiB"
	depends on MTD_MTDRAM
	default "4096"
	help
	  This allows you to configure the total size of the MTD device
	  emulated by the MTDRAM driver.  If the MTDRAM driver is built
	  as a module, it is also possible to specify this as a parameter when
	  loading the module.

config MTDRAM_ERASE_SIZE
	int "MTDRAM erase block size in KiB"
	depends on MTD_MTDRAM
	default "128"
	help
	  This allows you to configure the size of the erase blocks in the
	  device emulated by the MTDRAM driver.  If the MTDRAM driver is built
	  as a module, it is also possible to specify this as a parameter when
	  loading the module.

config MTD_BLOCK2MTD
	tristate "MTD using block device"
	depends on BLOCK
	help
	  This driver allows a block device to appear as an MTD. It would
	  generally be used in the following cases:

	  Using Compact Flash as an MTD, these usually present themselves to
	  the system as an ATA drive.
	  Testing MTD users (eg JFFS2) on large media and media that might
	  be removed during a write (using the floppy drive).

config MTD_POWERNV_FLASH
	tristate "powernv flash MTD driver"
	depends on PPC_POWERNV
	help
	  This provides an MTD device to access flash on powernv OPAL
	  platforms from Linux. This device abstracts away the
	  firmware interface for flash access.

comment "Disk-On-Chip Device Drivers"

config MTD_DOCG3
	tristate "M-Systems Disk-On-Chip G3"
	select BCH
	select BCH_CONST_PARAMS if !MTD_NAND_BCH
	select BITREVERSE
	---help---
	  This provides an MTD device driver for the M-Systems DiskOnChip
	  G3 devices.

	  The driver provides access to G3 DiskOnChip, distributed by
	  M-Systems and now Sandisk. The support is very experimental,
	  and doesn't give access to any write operations.

config MTD_ST_SPI_FSM
	tristate "ST Microelectronics SPI FSM Serial Flash Controller"
	depends on ARCH_STI
	help
	  This provides an MTD device driver for the ST Microelectronics
	  SPI Fast Sequence Mode (FSM) Serial Flash Controller and support
	  for a subset of connected Serial Flash devices.

if MTD_DOCG3
config BCH_CONST_M
	default 14
config BCH_CONST_T
	default 4
endif

endmenu
