4 config MTD_NAND_ECC_SMC
5 bool "NAND ECC Smart Media byte order"
6 depends on MTD_NAND_ECC
9 Software ECC according to the Smart Media Specification.
10 The original Linux implementation had byte 0 and 1 swapped.
14 tristate "NAND Device Support"
18 This enables support for accessing all type of NAND flash
19 devices. For further information see
20 <http://www.linux-mtd.infradead.org/doc/nand.html>.
27 depends on MTD_NAND_ECC_BCH
30 config MTD_NAND_ECC_BCH
31 bool "Support software BCH ECC"
34 This enables support for software BCH error correction. Binary BCH
35 codes are more powerful and cpu intensive than traditional Hamming
36 ECC codes. They are used with NAND devices requiring more than 1 bit
43 config MTD_NAND_DENALI
46 config MTD_NAND_DENALI_PCI
47 tristate "Support Denali NAND controller on Intel Moorestown"
48 select MTD_NAND_DENALI
49 depends on HAS_DMA && PCI
51 Enable the driver for NAND flash on Intel Moorestown, using the
52 Denali NAND controller core.
54 config MTD_NAND_DENALI_DT
55 tristate "Support Denali NAND controller as a DT device"
56 select MTD_NAND_DENALI
57 depends on HAS_DMA && HAVE_CLK && OF
59 Enable the driver for NAND flash on platforms using a Denali NAND
60 controller as a DT device.
62 config MTD_NAND_DENALI_SCRATCH_REG_ADDR
63 hex "Denali NAND size scratch register address"
65 depends on MTD_NAND_DENALI_PCI
67 Some platforms place the NAND chip size in a scratch register
68 because (some versions of) the driver aren't able to automatically
69 determine the size of certain chips. Set the address of the
70 scratch register here to enable this feature. On Intel Moorestown
71 boards, the scratch register is at 0xFF108018.
74 tristate "GPIO assisted NAND Flash driver"
75 depends on GPIOLIB || COMPILE_TEST
78 This enables a NAND flash driver where control signals are
79 connected to GPIO pins, and commands and data are communicated
80 via a memory mapped interface.
82 config MTD_NAND_AMS_DELTA
83 tristate "NAND Flash device on Amstrad E3"
84 depends on MACH_AMS_DELTA
87 Support for NAND flash on Amstrad E3 (Delta).
90 tristate "NAND Flash device on OMAP2, OMAP3, OMAP4 and Keystone"
91 depends on (ARCH_OMAP2PLUS || ARCH_KEYSTONE)
93 Support for NAND flash on Texas Instruments OMAP2, OMAP3, OMAP4
94 and Keystone platforms.
96 config MTD_NAND_OMAP_BCH
97 depends on MTD_NAND_OMAP2
98 bool "Support hardware based BCH error correction"
102 This config enables the ELM hardware engine, which can be used to
103 locate and correct errors when using BCH ECC scheme. This offloads
104 the cpu from doing ECC error searching and correction. However some
105 legacy OMAP families like OMAP2xxx, OMAP3xxx do not have ELM engine
106 so this is optional for them.
108 config MTD_NAND_OMAP_BCH_BUILD
109 def_tristate MTD_NAND_OMAP2 && MTD_NAND_OMAP_BCH
111 config MTD_NAND_RICOH
112 tristate "Ricoh xD card reader"
117 Enable support for Ricoh R5C852 xD card reader
118 You also need to enable ether
119 NAND SSFDC (SmartMedia) read only translation layer' or new
120 expermental, readwrite
121 'SmartMedia/xD new translation layer'
123 config MTD_NAND_AU1550
124 tristate "Au1550/1200 NAND support"
125 depends on MIPS_ALCHEMY
127 This enables the driver for the NAND flash controller on the
128 AMD/Alchemy 1550 SOC.
130 config MTD_NAND_BF5XX
131 tristate "Blackfin on-chip NAND Flash Controller driver"
132 depends on BF54x || BF52x
134 This enables the Blackfin on-chip NAND flash controller
136 No board specific support is done by this driver, each board
137 must advertise a platform_device for the driver to attach.
139 This driver can also be built as a module. If so, the module
140 will be called bf5xx-nand.
142 config MTD_NAND_BF5XX_HWECC
143 bool "BF5XX NAND Hardware ECC"
145 depends on MTD_NAND_BF5XX
147 Enable the use of the BF5XX's internal ECC generator when
150 config MTD_NAND_BF5XX_BOOTROM_ECC
151 bool "Use Blackfin BootROM ECC Layout"
153 depends on MTD_NAND_BF5XX_HWECC
155 If you wish to modify NAND pages and allow the Blackfin on-chip
156 BootROM to boot from them, say Y here. This is only necessary
157 if you are booting U-Boot out of NAND and you wish to update
158 U-Boot from Linux' userspace. Otherwise, you should say N here.
162 config MTD_NAND_S3C2410
163 tristate "NAND Flash support for Samsung S3C SoCs"
164 depends on ARCH_S3C24XX || ARCH_S3C64XX
166 This enables the NAND flash controller on the S3C24xx and S3C64xx
169 No board specific support is done by this driver, each board
170 must advertise a platform_device for the driver to attach.
172 config MTD_NAND_S3C2410_DEBUG
173 bool "Samsung S3C NAND driver debug"
174 depends on MTD_NAND_S3C2410
176 Enable debugging of the S3C NAND driver
179 tristate "NDFC NanD Flash Controller"
181 select MTD_NAND_ECC_SMC
183 NDFC Nand Flash Controllers are integrated in IBM/AMCC's 4xx SoCs
185 config MTD_NAND_S3C2410_CLKSTOP
186 bool "Samsung S3C NAND IDLE clock stop"
187 depends on MTD_NAND_S3C2410
190 Stop the clock to the NAND controller when there is no chip
191 selected to save power. This will mean there is a small delay
192 when the is NAND chip selected or released, but will save
193 approximately 5mA of power when there is nothing happening.
195 config MTD_NAND_TANGO
196 tristate "NAND Flash support for Tango chips"
197 depends on ARCH_TANGO || COMPILE_TEST
200 Enables the NAND Flash controller on Tango chips.
202 config MTD_NAND_DISKONCHIP
203 tristate "DiskOnChip 2000, Millennium and Millennium Plus (NAND reimplementation)"
206 select REED_SOLOMON_DEC16
208 This is a reimplementation of M-Systems DiskOnChip 2000,
209 Millennium and Millennium Plus as a standard NAND device driver,
210 as opposed to the earlier self-contained MTD device drivers.
211 This should enable, among other things, proper JFFS2 operation on
214 config MTD_NAND_DISKONCHIP_PROBE_ADVANCED
215 bool "Advanced detection options for DiskOnChip"
216 depends on MTD_NAND_DISKONCHIP
218 This option allows you to specify nonstandard address at which to
219 probe for a DiskOnChip, or to change the detection options. You
220 are unlikely to need any of this unless you are using LinuxBIOS.
223 config MTD_NAND_DISKONCHIP_PROBE_ADDRESS
224 hex "Physical address of DiskOnChip" if MTD_NAND_DISKONCHIP_PROBE_ADVANCED
225 depends on MTD_NAND_DISKONCHIP
228 By default, the probe for DiskOnChip devices will look for a
229 DiskOnChip at every multiple of 0x2000 between 0xC8000 and 0xEE000.
230 This option allows you to specify a single address at which to probe
231 for the device, which is useful if you have other devices in that
232 range which get upset when they are probed.
234 (Note that on PowerPC, the normal probe will only check at
237 Normally, you should leave this set to zero, to allow the probe at
238 the normal addresses.
240 config MTD_NAND_DISKONCHIP_PROBE_HIGH
241 bool "Probe high addresses"
242 depends on MTD_NAND_DISKONCHIP_PROBE_ADVANCED
244 By default, the probe for DiskOnChip devices will look for a
245 DiskOnChip at every multiple of 0x2000 between 0xC8000 and 0xEE000.
246 This option changes to make it probe between 0xFFFC8000 and
247 0xFFFEE000. Unless you are using LinuxBIOS, this is unlikely to be
248 useful to you. Say 'N'.
250 config MTD_NAND_DISKONCHIP_BBTWRITE
251 bool "Allow BBT writes on DiskOnChip Millennium and 2000TSOP"
252 depends on MTD_NAND_DISKONCHIP
254 On DiskOnChip devices shipped with the INFTL filesystem (Millennium
255 and 2000 TSOP/Alon), Linux reserves some space at the end of the
256 device for the Bad Block Table (BBT). If you have existing INFTL
257 data on your device (created by non-Linux tools such as M-Systems'
258 DOS drivers), your data might overlap the area Linux wants to use for
259 the BBT. If this is a concern for you, leave this option disabled and
260 Linux will not write BBT data into this area.
261 The downside of leaving this option disabled is that if bad blocks
262 are detected by Linux, they will not be recorded in the BBT, which
263 could cause future problems.
264 Once you enable this option, new filesystems (INFTL or others, created
265 in Linux or other operating systems) will not use the reserved area.
266 The only reason not to enable this option is to prevent damage to
267 preexisting filesystems.
268 Even if you leave this disabled, you can enable BBT writes at module
269 load time (assuming you build diskonchip as a module) with the module
270 parameter "inftl_bbt_write=1".
272 config MTD_NAND_DOCG4
273 tristate "Support for DiskOnChip G4"
278 Support for diskonchip G4 nand flash, found in various smartphones and
279 PDAs, among them the Palm Treo680, HTC Prophet and Wizard, Toshiba
280 Portege G900, Asus P526, and O2 XDA Zinc.
282 With this driver you will be able to use UBI and create a ubifs on the
283 device, so you may wish to consider enabling UBI and UBIFS as well.
285 These devices ship with the Mys/Sandisk SAFTL formatting, for which
286 there is currently no mtd parser, so you may want to use command line
287 partitioning to segregate write-protected blocks. On the Treo680, the
288 first five erase blocks (256KiB each) are write-protected, followed
289 by the block containing the saftl partition table. This is probably
292 config MTD_NAND_SHARPSL
293 tristate "Support for NAND Flash on Sharp SL Series (C7xx + others)"
297 tristate "NAND support for OLPC CAFÉ chip"
300 select REED_SOLOMON_DEC16
302 Use NAND flash attached to the CAFÉ chip designed for the OLPC
305 config MTD_NAND_CS553X
306 tristate "NAND support for CS5535/CS5536 (AMD Geode companion chip)"
308 depends on !UML && HAS_IOMEM
310 The CS553x companion chips for the AMD Geode processor
311 include NAND flash controllers with built-in hardware ECC
312 capabilities; enabling this option will allow you to use
313 these. The driver will check the MSRs to verify that the
314 controller is enabled for NAND, and currently requires that
315 the controller be in MMIO mode.
317 If you say "m", the module will be called cs553x_nand.
319 config MTD_NAND_ATMEL
320 tristate "Support for NAND Flash / SmartMedia on AT91 and AVR32"
321 depends on ARCH_AT91 || AVR32
323 Enables support for NAND Flash / Smart Media Card interface
324 on Atmel AT91 and AVR32 processors.
326 config MTD_NAND_PXA3xx
327 tristate "NAND support on PXA3xx and Armada 370/XP"
328 depends on PXA3xx || ARCH_MMP || PLAT_ORION
330 This enables the driver for the NAND flash device found on
331 PXA3xx processors (NFCv1) and also on Armada 370/XP (NFCv2).
333 config MTD_NAND_SLC_LPC32XX
334 tristate "NXP LPC32xx SLC Controller"
335 depends on ARCH_LPC32XX
337 Enables support for NXP's LPC32XX SLC (i.e. for Single Level Cell
338 chips) NAND controller. This is the default for the PHYTEC 3250
339 reference board which contains a NAND256R3A2CZA6 chip.
341 Please check the actual NAND chip connected and its support
342 by the SLC NAND controller.
344 config MTD_NAND_MLC_LPC32XX
345 tristate "NXP LPC32xx MLC Controller"
346 depends on ARCH_LPC32XX
348 Uses the LPC32XX MLC (i.e. for Multi Level Cell chips) NAND
349 controller. This is the default for the WORK92105 controller
352 Please check the actual NAND chip connected and its support
353 by the MLC NAND controller.
355 config MTD_NAND_CM_X270
356 tristate "Support for NAND Flash on CM-X270 modules"
357 depends on MACH_ARMCORE
359 config MTD_NAND_PASEMI
360 tristate "NAND support for PA Semi PWRficient"
361 depends on PPC_PASEMI
363 Enables support for NAND Flash interface on PA Semi PWRficient
367 tristate "NAND Flash device on Toshiba Mobile IO Controller"
370 Support for NAND flash connected to a Toshiba Mobile IO
371 Controller in some PDAs, including the Sharp SL6000x.
373 config MTD_NAND_NANDSIM
374 tristate "Support for NAND Flash Simulator"
376 The simulator may simulate various NAND flash chips for the
379 config MTD_NAND_GPMI_NAND
380 tristate "GPMI NAND Flash Controller driver"
381 depends on MTD_NAND && MXS_DMA
383 Enables NAND Flash support for IMX23, IMX28 or IMX6.
384 The GPMI controller is very powerful, with the help of BCH
385 module, it can do the hardware ECC. The GPMI supports several
386 NAND flashs at the same time. The GPMI may conflicts with other
387 block, such as SD card. So pay attention to it when you enable
390 config MTD_NAND_BRCMNAND
391 tristate "Broadcom STB NAND controller"
392 depends on ARM || ARM64 || MIPS
394 Enables the Broadcom NAND controller driver. The controller was
395 originally designed for Set-Top Box but is used on various BCM7xxx,
396 BCM3xxx, BCM63xxx, iProc/Cygnus and more.
398 config MTD_NAND_BCM47XXNFLASH
399 tristate "Support for NAND flash on BCM4706 BCMA bus"
400 depends on BCMA_NFLASH
402 BCMA bus can have various flash memories attached, they are
403 registered by bcma as platform devices. This enables driver for
404 NAND flash memories. For now only BCM4706 is supported.
406 config MTD_NAND_PLATFORM
407 tristate "Support for generic platform NAND driver"
410 This implements a generic NAND driver for on-SOC platform
411 devices. You will need to provide platform-specific functions
414 config MTD_NAND_ORION
415 tristate "NAND Flash support for Marvell Orion SoC"
416 depends on PLAT_ORION
418 This enables the NAND flash controller on Orion machines.
420 No board specific support is done by this driver, each board
421 must advertise a platform_device for the driver to attach.
423 config MTD_NAND_OXNAS
424 tristate "NAND Flash support for Oxford Semiconductor SoC"
425 depends on ARCH_OXNAS || COMPILE_TEST
428 This enables the NAND flash controller on Oxford Semiconductor SoCs.
430 config MTD_NAND_FSL_ELBC
431 tristate "NAND support for Freescale eLBC controllers"
435 Various Freescale chips, including the 8313, include a NAND Flash
436 Controller Module with built-in hardware ECC capabilities.
437 Enabling this option will enable you to use this to control
438 external NAND devices.
440 config MTD_NAND_FSL_IFC
441 tristate "NAND support for Freescale IFC controller"
442 depends on FSL_SOC || ARCH_LAYERSCAPE || SOC_LS1021A
446 Various Freescale chips e.g P1010, include a NAND Flash machine
447 with built-in hardware ECC capabilities.
448 Enabling this option will enable you to use this to control
449 external NAND devices.
451 config MTD_NAND_FSL_UPM
452 tristate "Support for NAND on Freescale UPM"
453 depends on PPC_83xx || PPC_85xx
456 Enables support for NAND Flash chips wired onto Freescale PowerPC
457 processor localbus with User-Programmable Machine support.
459 config MTD_NAND_MPC5121_NFC
460 tristate "MPC5121 built-in NAND Flash Controller support"
461 depends on PPC_MPC512x
463 This enables the driver for the NAND flash controller on the
466 config MTD_NAND_VF610_NFC
467 tristate "Support for Freescale NFC for VF610/MPC5125"
468 depends on (SOC_VF610 || COMPILE_TEST)
471 Enables support for NAND Flash Controller on some Freescale
472 processors like the VF610, MPC5125, MCF54418 or Kinetis K70.
473 The driver supports a maximum 2k page size. With 2k pages and
474 64 bytes or more of OOB, hardware ECC with up to 32-bit error
475 correction is supported. Hardware ECC is only enabled through
479 tristate "MXC NAND support"
482 This enables the driver for the NAND flash controller on the
485 config MTD_NAND_SH_FLCTL
486 tristate "Support for NAND on Renesas SuperH FLCTL"
487 depends on SUPERH || COMPILE_TEST
491 Several Renesas SuperH CPU has FLCTL. This option enables support
492 for NAND Flash using FLCTL.
494 config MTD_NAND_DAVINCI
495 tristate "Support NAND on DaVinci/Keystone SoC"
496 depends on ARCH_DAVINCI || (ARCH_KEYSTONE && TI_AEMIF)
498 Enable the driver for NAND flash chips on Texas Instruments
499 DaVinci/Keystone processors.
501 config MTD_NAND_TXX9NDFMC
502 tristate "NAND Flash support for TXx9 SoC"
503 depends on SOC_TX4938 || SOC_TX4939
505 This enables the NAND flash controller on the TXx9 SoCs.
507 config MTD_NAND_SOCRATES
508 tristate "Support for NAND on Socrates board"
511 Enables support for NAND Flash chips wired onto Socrates board.
513 config MTD_NAND_NUC900
514 tristate "Support for NAND on Nuvoton NUC9xx/w90p910 evaluation boards."
515 depends on ARCH_W90X900
517 This enables the driver for the NAND Flash on evaluation board based
520 config MTD_NAND_JZ4740
521 tristate "Support for JZ4740 SoC NAND controller"
522 depends on MACH_JZ4740
524 Enables support for NAND Flash on JZ4740 SoC based boards.
526 config MTD_NAND_JZ4780
527 tristate "Support for NAND on JZ4780 SoC"
528 depends on MACH_JZ4780 && JZ4780_NEMC
530 Enables support for NAND Flash connected to the NEMC on JZ4780 SoC
531 based boards, using the BCH controller for hardware error correction.
534 tristate "Support for NAND on ST Micros FSMC"
536 depends on PLAT_SPEAR || ARCH_NOMADIK || ARCH_U8500 || MACH_U300
538 Enables support for NAND Flash chips on the ST Microelectronics
539 Flexible Static Memory Controller (FSMC)
542 bool "Support for NAND on Lantiq XWAY SoC"
543 depends on LANTIQ && SOC_TYPE_XWAY
545 Enables support for NAND Flash chips on Lantiq XWAY SoCs. NAND is attached
546 to the External Bus Unit (EBU).
548 config MTD_NAND_SUNXI
549 tristate "Support for NAND on Allwinner SoCs"
550 depends on ARCH_SUNXI
552 Enables support for NAND Flash chips on Allwinner SoCs.
554 config MTD_NAND_HISI504
555 tristate "Support for NAND controller on Hisilicon SoC Hip04"
558 Enables support for NAND controller on Hisilicon SoC Hip04.
561 tristate "Support for NAND on QCOM SoCs"
564 Enables support for NAND flash chips on SoCs containing the EBI2 NAND
565 controller. This controller is found on IPQ806x SoC.
568 tristate "Support for NAND controller on MTK SoCs"
571 Enables support for NAND controller on MTK SoCs.
572 This controller is found on mt27xx, mt81xx, mt65xx SoCs.