mtd: kill MTD_NAND_VERIFY_WRITE
[profile/ivi/kernel-adaptation-intel-automotive.git] / drivers / mtd / nand / Kconfig
1 config MTD_NAND_ECC
2         tristate
3
4 config MTD_NAND_ECC_SMC
5         bool "NAND ECC Smart Media byte order"
6         depends on MTD_NAND_ECC
7         default n
8         help
9           Software ECC according to the Smart Media Specification.
10           The original Linux implementation had byte 0 and 1 swapped.
11
12
13 menuconfig MTD_NAND
14         tristate "NAND Device Support"
15         depends on MTD
16         select MTD_NAND_IDS
17         select MTD_NAND_ECC
18         help
19           This enables support for accessing all type of NAND flash
20           devices. For further information see
21           <http://www.linux-mtd.infradead.org/doc/nand.html>.
22
23 if MTD_NAND
24
25 config MTD_NAND_BCH
26         tristate
27         select BCH
28         depends on MTD_NAND_ECC_BCH
29         default MTD_NAND
30
31 config MTD_NAND_ECC_BCH
32         bool "Support software BCH ECC"
33         default n
34         help
35           This enables support for software BCH error correction. Binary BCH
36           codes are more powerful and cpu intensive than traditional Hamming
37           ECC codes. They are used with NAND devices requiring more than 1 bit
38           of error correction.
39
40 config MTD_SM_COMMON
41         tristate
42         default n
43
44 config MTD_NAND_MUSEUM_IDS
45         bool "Enable chip ids for obsolete ancient NAND devices"
46         default n
47         help
48           Enable this option only when your board has first generation
49           NAND chips (page size 256 byte, erase size 4-8KiB). The IDs
50           of these chips were reused by later, larger chips.
51
52 config MTD_NAND_AUTCPU12
53         tristate "SmartMediaCard on autronix autcpu12 board"
54         depends on ARCH_AUTCPU12
55         help
56           This enables the driver for the autronix autcpu12 board to
57           access the SmartMediaCard.
58
59 config MTD_NAND_DENALI
60        depends on PCI
61         tristate "Support Denali NAND controller on Intel Moorestown"
62         help
63           Enable the driver for NAND flash on Intel Moorestown, using the
64           Denali NAND controller core.
65  
66 config MTD_NAND_DENALI_SCRATCH_REG_ADDR
67         hex "Denali NAND size scratch register address"
68         default "0xFF108018"
69         depends on MTD_NAND_DENALI
70         help
71           Some platforms place the NAND chip size in a scratch register
72           because (some versions of) the driver aren't able to automatically
73           determine the size of certain chips. Set the address of the
74           scratch register here to enable this feature. On Intel Moorestown
75           boards, the scratch register is at 0xFF108018.
76
77 config MTD_NAND_H1900
78         tristate "iPAQ H1900 flash"
79         depends on ARCH_PXA && BROKEN
80         help
81           This enables the driver for the iPAQ h1900 flash.
82
83 config MTD_NAND_GPIO
84         tristate "GPIO NAND Flash driver"
85         depends on GENERIC_GPIO && ARM
86         help
87           This enables a GPIO based NAND flash driver.
88
89 config MTD_NAND_SPIA
90         tristate "NAND Flash device on SPIA board"
91         depends on ARCH_P720T
92         help
93           If you had to ask, you don't have one. Say 'N'.
94
95 config MTD_NAND_AMS_DELTA
96         tristate "NAND Flash device on Amstrad E3"
97         depends on MACH_AMS_DELTA
98         default y
99         help
100           Support for NAND flash on Amstrad E3 (Delta).
101
102 config MTD_NAND_OMAP2
103         tristate "NAND Flash device on OMAP2, OMAP3 and OMAP4"
104         depends on ARCH_OMAP2PLUS
105         help
106           Support for NAND flash on Texas Instruments OMAP2, OMAP3 and OMAP4
107           platforms.
108
109 config MTD_NAND_OMAP_BCH
110         depends on MTD_NAND && MTD_NAND_OMAP2 && ARCH_OMAP3
111         bool "Enable support for hardware BCH error correction"
112         default n
113         select BCH
114         select BCH_CONST_PARAMS
115         help
116          Support for hardware BCH error correction.
117
118 choice
119         prompt "BCH error correction capability"
120         depends on MTD_NAND_OMAP_BCH
121
122 config MTD_NAND_OMAP_BCH8
123         bool "8 bits / 512 bytes (recommended)"
124         help
125          Support correcting up to 8 bitflips per 512-byte block.
126          This will use 13 bytes of spare area per 512 bytes of page data.
127          This is the recommended mode, as 4-bit mode does not work
128          on some OMAP3 revisions, due to a hardware bug.
129
130 config MTD_NAND_OMAP_BCH4
131         bool "4 bits / 512 bytes"
132         help
133          Support correcting up to 4 bitflips per 512-byte block.
134          This will use 7 bytes of spare area per 512 bytes of page data.
135          Note that this mode does not work on some OMAP3 revisions, due to a
136          hardware bug. Please check your OMAP datasheet before selecting this
137          mode.
138
139 endchoice
140
141 if MTD_NAND_OMAP_BCH
142 config BCH_CONST_M
143         default 13
144 config BCH_CONST_T
145         default 4 if MTD_NAND_OMAP_BCH4
146         default 8 if MTD_NAND_OMAP_BCH8
147 endif
148
149 config MTD_NAND_IDS
150         tristate
151
152 config MTD_NAND_RICOH
153         tristate "Ricoh xD card reader"
154         default n
155         depends on PCI
156         select MTD_SM_COMMON
157         help
158           Enable support for Ricoh R5C852 xD card reader
159           You also need to enable ether
160           NAND SSFDC (SmartMedia) read only translation layer' or new
161           expermental, readwrite
162           'SmartMedia/xD new translation layer'
163
164 config MTD_NAND_AU1550
165         tristate "Au1550/1200 NAND support"
166         depends on MIPS_ALCHEMY
167         help
168           This enables the driver for the NAND flash controller on the
169           AMD/Alchemy 1550 SOC.
170
171 config MTD_NAND_BF5XX
172         tristate "Blackfin on-chip NAND Flash Controller driver"
173         depends on BF54x || BF52x
174         help
175           This enables the Blackfin on-chip NAND flash controller
176
177           No board specific support is done by this driver, each board
178           must advertise a platform_device for the driver to attach.
179
180           This driver can also be built as a module. If so, the module
181           will be called bf5xx-nand.
182
183 config MTD_NAND_BF5XX_HWECC
184         bool "BF5XX NAND Hardware ECC"
185         default y
186         depends on MTD_NAND_BF5XX
187         help
188           Enable the use of the BF5XX's internal ECC generator when
189           using NAND.
190
191 config MTD_NAND_BF5XX_BOOTROM_ECC
192         bool "Use Blackfin BootROM ECC Layout"
193         default n
194         depends on MTD_NAND_BF5XX_HWECC
195         help
196           If you wish to modify NAND pages and allow the Blackfin on-chip
197           BootROM to boot from them, say Y here.  This is only necessary
198           if you are booting U-Boot out of NAND and you wish to update
199           U-Boot from Linux' userspace.  Otherwise, you should say N here.
200
201           If unsure, say N.
202
203 config MTD_NAND_RTC_FROM4
204         tristate "Renesas Flash ROM 4-slot interface board (FROM_BOARD4)"
205         depends on SH_SOLUTION_ENGINE
206         select REED_SOLOMON
207         select REED_SOLOMON_DEC8
208         select BITREVERSE
209         help
210           This enables the driver for the Renesas Technology AG-AND
211           flash interface board (FROM_BOARD4)
212
213 config MTD_NAND_PPCHAMELEONEVB
214         tristate "NAND Flash device on PPChameleonEVB board"
215         depends on PPCHAMELEONEVB && BROKEN
216         help
217           This enables the NAND flash driver on the PPChameleon EVB Board.
218
219 config MTD_NAND_S3C2410
220         tristate "NAND Flash support for Samsung S3C SoCs"
221         depends on ARCH_S3C24XX || ARCH_S3C64XX
222         help
223           This enables the NAND flash controller on the S3C24xx and S3C64xx
224           SoCs
225
226           No board specific support is done by this driver, each board
227           must advertise a platform_device for the driver to attach.
228
229 config MTD_NAND_S3C2410_DEBUG
230         bool "Samsung S3C NAND driver debug"
231         depends on MTD_NAND_S3C2410
232         help
233           Enable debugging of the S3C NAND driver
234
235 config MTD_NAND_S3C2410_HWECC
236         bool "Samsung S3C NAND Hardware ECC"
237         depends on MTD_NAND_S3C2410
238         help
239           Enable the use of the controller's internal ECC generator when
240           using NAND. Early versions of the chips have had problems with
241           incorrect ECC generation, and if using these, the default of
242           software ECC is preferable.
243
244 config MTD_NAND_NDFC
245         tristate "NDFC NanD Flash Controller"
246         depends on 4xx
247         select MTD_NAND_ECC_SMC
248         help
249          NDFC Nand Flash Controllers are integrated in IBM/AMCC's 4xx SoCs
250
251 config MTD_NAND_S3C2410_CLKSTOP
252         bool "Samsung S3C NAND IDLE clock stop"
253         depends on MTD_NAND_S3C2410
254         default n
255         help
256           Stop the clock to the NAND controller when there is no chip
257           selected to save power. This will mean there is a small delay
258           when the is NAND chip selected or released, but will save
259           approximately 5mA of power when there is nothing happening.
260
261 config MTD_NAND_BCM_UMI
262         tristate "NAND Flash support for BCM Reference Boards"
263         depends on ARCH_BCMRING
264         help
265           This enables the NAND flash controller on the BCM UMI block.
266
267           No board specific support is done by this driver, each board
268           must advertise a platform_device for the driver to attach.
269
270 config MTD_NAND_BCM_UMI_HWCS
271         bool "BCM UMI NAND Hardware CS"
272         depends on MTD_NAND_BCM_UMI
273         help
274           Enable the use of the BCM UMI block's internal CS using NAND.
275           This should only be used if you know the external NAND CS can toggle.
276
277 config MTD_NAND_DISKONCHIP
278         tristate "DiskOnChip 2000, Millennium and Millennium Plus (NAND reimplementation) (EXPERIMENTAL)"
279         depends on EXPERIMENTAL
280         depends on HAS_IOMEM
281         select REED_SOLOMON
282         select REED_SOLOMON_DEC16
283         help
284           This is a reimplementation of M-Systems DiskOnChip 2000,
285           Millennium and Millennium Plus as a standard NAND device driver,
286           as opposed to the earlier self-contained MTD device drivers.
287           This should enable, among other things, proper JFFS2 operation on
288           these devices.
289
290 config MTD_NAND_DISKONCHIP_PROBE_ADVANCED
291         bool "Advanced detection options for DiskOnChip"
292         depends on MTD_NAND_DISKONCHIP
293         help
294           This option allows you to specify nonstandard address at which to
295           probe for a DiskOnChip, or to change the detection options.  You
296           are unlikely to need any of this unless you are using LinuxBIOS.
297           Say 'N'.
298
299 config MTD_NAND_DISKONCHIP_PROBE_ADDRESS
300         hex "Physical address of DiskOnChip" if MTD_NAND_DISKONCHIP_PROBE_ADVANCED
301         depends on MTD_NAND_DISKONCHIP
302         default "0"
303         ---help---
304         By default, the probe for DiskOnChip devices will look for a
305         DiskOnChip at every multiple of 0x2000 between 0xC8000 and 0xEE000.
306         This option allows you to specify a single address at which to probe
307         for the device, which is useful if you have other devices in that
308         range which get upset when they are probed.
309
310         (Note that on PowerPC, the normal probe will only check at
311         0xE4000000.)
312
313         Normally, you should leave this set to zero, to allow the probe at
314         the normal addresses.
315
316 config MTD_NAND_DISKONCHIP_PROBE_HIGH
317         bool "Probe high addresses"
318         depends on MTD_NAND_DISKONCHIP_PROBE_ADVANCED
319         help
320           By default, the probe for DiskOnChip devices will look for a
321           DiskOnChip at every multiple of 0x2000 between 0xC8000 and 0xEE000.
322           This option changes to make it probe between 0xFFFC8000 and
323           0xFFFEE000.  Unless you are using LinuxBIOS, this is unlikely to be
324           useful to you.  Say 'N'.
325
326 config MTD_NAND_DISKONCHIP_BBTWRITE
327         bool "Allow BBT writes on DiskOnChip Millennium and 2000TSOP"
328         depends on MTD_NAND_DISKONCHIP
329         help
330           On DiskOnChip devices shipped with the INFTL filesystem (Millennium
331           and 2000 TSOP/Alon), Linux reserves some space at the end of the
332           device for the Bad Block Table (BBT).  If you have existing INFTL
333           data on your device (created by non-Linux tools such as M-Systems'
334           DOS drivers), your data might overlap the area Linux wants to use for
335           the BBT.  If this is a concern for you, leave this option disabled and
336           Linux will not write BBT data into this area.
337           The downside of leaving this option disabled is that if bad blocks
338           are detected by Linux, they will not be recorded in the BBT, which
339           could cause future problems.
340           Once you enable this option, new filesystems (INFTL or others, created
341           in Linux or other operating systems) will not use the reserved area.
342           The only reason not to enable this option is to prevent damage to
343           preexisting filesystems.
344           Even if you leave this disabled, you can enable BBT writes at module
345           load time (assuming you build diskonchip as a module) with the module
346           parameter "inftl_bbt_write=1".
347
348 config MTD_NAND_DOCG4
349         tristate "Support for DiskOnChip G4 (EXPERIMENTAL)"
350         depends on EXPERIMENTAL
351         select BCH
352         select BITREVERSE
353         help
354           Support for diskonchip G4 nand flash, found in various smartphones and
355           PDAs, among them the Palm Treo680, HTC Prophet and Wizard, Toshiba
356           Portege G900, Asus P526, and O2 XDA Zinc.
357
358           With this driver you will be able to use UBI and create a ubifs on the
359           device, so you may wish to consider enabling UBI and UBIFS as well.
360
361           These devices ship with the Mys/Sandisk SAFTL formatting, for which
362           there is currently no mtd parser, so you may want to use command line
363           partitioning to segregate write-protected blocks. On the Treo680, the
364           first five erase blocks (256KiB each) are write-protected, followed
365           by the block containing the saftl partition table.  This is probably
366           typical.
367
368 config MTD_NAND_SHARPSL
369         tristate "Support for NAND Flash on Sharp SL Series (C7xx + others)"
370         depends on ARCH_PXA
371
372 config MTD_NAND_CAFE
373         tristate "NAND support for OLPC CAFÉ chip"
374         depends on PCI
375         select REED_SOLOMON
376         select REED_SOLOMON_DEC16
377         help
378           Use NAND flash attached to the CAFÉ chip designed for the OLPC
379           laptop.
380
381 config MTD_NAND_CS553X
382         tristate "NAND support for CS5535/CS5536 (AMD Geode companion chip)"
383         depends on X86_32
384         help
385           The CS553x companion chips for the AMD Geode processor
386           include NAND flash controllers with built-in hardware ECC
387           capabilities; enabling this option will allow you to use
388           these. The driver will check the MSRs to verify that the
389           controller is enabled for NAND, and currently requires that
390           the controller be in MMIO mode.
391
392           If you say "m", the module will be called cs553x_nand.
393
394 config MTD_NAND_ATMEL
395         tristate "Support for NAND Flash / SmartMedia on AT91 and AVR32"
396         depends on ARCH_AT91 || AVR32
397         help
398           Enables support for NAND Flash / Smart Media Card interface
399           on Atmel AT91 and AVR32 processors.
400
401 config MTD_NAND_PXA3xx
402         tristate "Support for NAND flash devices on PXA3xx"
403         depends on PXA3xx || ARCH_MMP
404         help
405           This enables the driver for the NAND flash device found on
406           PXA3xx processors
407
408 config MTD_NAND_SLC_LPC32XX
409         tristate "NXP LPC32xx SLC Controller"
410         depends on ARCH_LPC32XX
411         help
412           Enables support for NXP's LPC32XX SLC (i.e. for Single Level Cell
413           chips) NAND controller. This is the default for the PHYTEC 3250
414           reference board which contains a NAND256R3A2CZA6 chip.
415
416           Please check the actual NAND chip connected and its support
417           by the SLC NAND controller.
418
419 config MTD_NAND_MLC_LPC32XX
420         tristate "NXP LPC32xx MLC Controller"
421         depends on ARCH_LPC32XX
422         help
423           Uses the LPC32XX MLC (i.e. for Multi Level Cell chips) NAND
424           controller. This is the default for the WORK92105 controller
425           board.
426
427           Please check the actual NAND chip connected and its support
428           by the MLC NAND controller.
429
430 config MTD_NAND_CM_X270
431         tristate "Support for NAND Flash on CM-X270 modules"
432         depends on MACH_ARMCORE
433
434 config MTD_NAND_PASEMI
435         tristate "NAND support for PA Semi PWRficient"
436         depends on PPC_PASEMI
437         help
438           Enables support for NAND Flash interface on PA Semi PWRficient
439           based boards
440
441 config MTD_NAND_TMIO
442         tristate "NAND Flash device on Toshiba Mobile IO Controller"
443         depends on MFD_TMIO
444         help
445           Support for NAND flash connected to a Toshiba Mobile IO
446           Controller in some PDAs, including the Sharp SL6000x.
447
448 config MTD_NAND_NANDSIM
449         tristate "Support for NAND Flash Simulator"
450         help
451           The simulator may simulate various NAND flash chips for the
452           MTD nand layer.
453
454 config MTD_NAND_GPMI_NAND
455         bool "GPMI NAND Flash Controller driver"
456         depends on MTD_NAND && MXS_DMA
457         help
458          Enables NAND Flash support for IMX23, IMX28 or IMX6.
459          The GPMI controller is very powerful, with the help of BCH
460          module, it can do the hardware ECC. The GPMI supports several
461          NAND flashs at the same time. The GPMI may conflicts with other
462          block, such as SD card. So pay attention to it when you enable
463          the GPMI.
464
465 config MTD_NAND_PLATFORM
466         tristate "Support for generic platform NAND driver"
467         depends on HAS_IOMEM
468         help
469           This implements a generic NAND driver for on-SOC platform
470           devices. You will need to provide platform-specific functions
471           via platform_data.
472
473 config MTD_ALAUDA
474         tristate "MTD driver for Olympus MAUSB-10 and Fujifilm DPC-R1"
475         depends on USB
476         help
477           These two (and possibly other) Alauda-based cardreaders for
478           SmartMedia and xD allow raw flash access.
479
480 config MTD_NAND_ORION
481         tristate "NAND Flash support for Marvell Orion SoC"
482         depends on PLAT_ORION
483         help
484           This enables the NAND flash controller on Orion machines.
485
486           No board specific support is done by this driver, each board
487           must advertise a platform_device for the driver to attach.
488
489 config MTD_NAND_FSL_ELBC
490         tristate "NAND support for Freescale eLBC controllers"
491         depends on PPC_OF
492         select FSL_LBC
493         help
494           Various Freescale chips, including the 8313, include a NAND Flash
495           Controller Module with built-in hardware ECC capabilities.
496           Enabling this option will enable you to use this to control
497           external NAND devices.
498
499 config MTD_NAND_FSL_IFC
500         tristate "NAND support for Freescale IFC controller"
501         depends on MTD_NAND && FSL_SOC
502         select FSL_IFC
503         help
504           Various Freescale chips e.g P1010, include a NAND Flash machine
505           with built-in hardware ECC capabilities.
506           Enabling this option will enable you to use this to control
507           external NAND devices.
508
509 config MTD_NAND_FSL_UPM
510         tristate "Support for NAND on Freescale UPM"
511         depends on PPC_83xx || PPC_85xx
512         select FSL_LBC
513         help
514           Enables support for NAND Flash chips wired onto Freescale PowerPC
515           processor localbus with User-Programmable Machine support.
516
517 config MTD_NAND_MPC5121_NFC
518         tristate "MPC5121 built-in NAND Flash Controller support"
519         depends on PPC_MPC512x
520         help
521           This enables the driver for the NAND flash controller on the
522           MPC5121 SoC.
523
524 config MTD_NAND_MXC
525         tristate "MXC NAND support"
526         depends on ARCH_MXC
527         help
528           This enables the driver for the NAND flash controller on the
529           MXC processors.
530
531 config MTD_NAND_NOMADIK
532         tristate "ST Nomadik 8815 NAND support"
533         depends on ARCH_NOMADIK
534         help
535           Driver for the NAND flash controller on the Nomadik, with ECC.
536
537 config MTD_NAND_SH_FLCTL
538         tristate "Support for NAND on Renesas SuperH FLCTL"
539         depends on SUPERH || ARCH_SHMOBILE
540         help
541           Several Renesas SuperH CPU has FLCTL. This option enables support
542           for NAND Flash using FLCTL.
543
544 config MTD_NAND_DAVINCI
545         tristate "Support NAND on DaVinci SoC"
546         depends on ARCH_DAVINCI
547         help
548           Enable the driver for NAND flash chips on Texas Instruments
549           DaVinci processors.
550
551 config MTD_NAND_TXX9NDFMC
552         tristate "NAND Flash support for TXx9 SoC"
553         depends on SOC_TX4938 || SOC_TX4939
554         help
555           This enables the NAND flash controller on the TXx9 SoCs.
556
557 config MTD_NAND_SOCRATES
558         tristate "Support for NAND on Socrates board"
559         depends on SOCRATES
560         help
561           Enables support for NAND Flash chips wired onto Socrates board.
562
563 config MTD_NAND_NUC900
564         tristate "Support for NAND on Nuvoton NUC9xx/w90p910 evaluation boards."
565         depends on ARCH_W90X900
566         help
567           This enables the driver for the NAND Flash on evaluation board based
568           on w90p910 / NUC9xx.
569
570 config MTD_NAND_JZ4740
571         tristate "Support for JZ4740 SoC NAND controller"
572         depends on MACH_JZ4740
573         help
574                 Enables support for NAND Flash on JZ4740 SoC based boards.
575
576 config MTD_NAND_FSMC
577         tristate "Support for NAND on ST Micros FSMC"
578         depends on PLAT_SPEAR || PLAT_NOMADIK || MACH_U300
579         help
580           Enables support for NAND Flash chips on the ST Microelectronics
581           Flexible Static Memory Controller (FSMC)
582
583 endif # MTD_NAND