Merge branch 'idle-release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb...
[sfrench/cifs-2.6.git] / drivers / mtd / nand / Kconfig
1 menuconfig MTD_NAND
2         tristate "NAND Device Support"
3         depends on MTD
4         select MTD_NAND_IDS
5         select MTD_NAND_ECC
6         help
7           This enables support for accessing all type of NAND flash
8           devices. For further information see
9           <http://www.linux-mtd.infradead.org/doc/nand.html>.
10
11 config MTD_NAND_ECC
12         tristate
13
14 config MTD_NAND_ECC_SMC
15         bool "NAND ECC Smart Media byte order"
16         depends on MTD_NAND_ECC
17         default n
18         help
19           Software ECC according to the Smart Media Specification.
20           The original Linux implementation had byte 0 and 1 swapped.
21
22 if MTD_NAND
23
24 config MTD_NAND_VERIFY_WRITE
25         bool "Verify NAND page writes"
26         help
27           This adds an extra check when data is written to the flash. The
28           NAND flash device internally checks only bits transitioning
29           from 1 to 0. There is a rare possibility that even though the
30           device thinks the write was successful, a bit could have been
31           flipped accidentally due to device wear or something else.
32
33 config MTD_SM_COMMON
34         tristate
35         default n
36
37 config MTD_NAND_MUSEUM_IDS
38         bool "Enable chip ids for obsolete ancient NAND devices"
39         depends on MTD_NAND
40         default n
41         help
42           Enable this option only when your board has first generation
43           NAND chips (page size 256 byte, erase size 4-8KiB). The IDs
44           of these chips were reused by later, larger chips.
45
46 config MTD_NAND_AUTCPU12
47         tristate "SmartMediaCard on autronix autcpu12 board"
48         depends on ARCH_AUTCPU12
49         help
50           This enables the driver for the autronix autcpu12 board to
51           access the SmartMediaCard.
52
53 config MTD_NAND_DENALI
54        depends on PCI
55         tristate "Support Denali NAND controller on Intel Moorestown"
56         help
57           Enable the driver for NAND flash on Intel Moorestown, using the
58           Denali NAND controller core.
59  
60 config MTD_NAND_DENALI_SCRATCH_REG_ADDR
61         hex "Denali NAND size scratch register address"
62         default "0xFF108018"
63         help
64           Some platforms place the NAND chip size in a scratch register
65           because (some versions of) the driver aren't able to automatically
66           determine the size of certain chips. Set the address of the
67           scratch register here to enable this feature. On Intel Moorestown
68           boards, the scratch register is at 0xFF108018.
69
70 config MTD_NAND_EDB7312
71         tristate "Support for Cirrus Logic EBD7312 evaluation board"
72         depends on ARCH_EDB7312
73         help
74           This enables the driver for the Cirrus Logic EBD7312 evaluation
75           board to access the onboard NAND Flash.
76
77 config MTD_NAND_H1900
78         tristate "iPAQ H1900 flash"
79         depends on ARCH_PXA && MTD_PARTITIONS
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         help
99           Support for NAND flash on Amstrad E3 (Delta).
100
101 config MTD_NAND_OMAP2
102         tristate "NAND Flash device on OMAP2 and OMAP3"
103         depends on ARM && MTD_NAND && (ARCH_OMAP2 || ARCH_OMAP3)
104         help
105           Support for NAND flash on Texas Instruments OMAP2 and OMAP3 platforms.
106
107 config MTD_NAND_OMAP_PREFETCH
108         bool "GPMC prefetch support for NAND Flash device"
109         depends on MTD_NAND && MTD_NAND_OMAP2
110         default y
111         help
112          The NAND device can be accessed for Read/Write using GPMC PREFETCH engine
113          to improve the performance.
114
115 config MTD_NAND_OMAP_PREFETCH_DMA
116         depends on MTD_NAND_OMAP_PREFETCH
117         bool "DMA mode"
118         default n
119         help
120          The GPMC PREFETCH engine can be configured eigther in MPU interrupt mode
121          or in DMA interrupt mode.
122          Say y for DMA mode or MPU mode will be used
123
124 config MTD_NAND_IDS
125         tristate
126
127 config MTD_NAND_RICOH
128         tristate "Ricoh xD card reader"
129         default n
130         depends on PCI
131         select MTD_SM_COMMON
132         help
133           Enable support for Ricoh R5C852 xD card reader
134           You also need to enable ether
135           NAND SSFDC (SmartMedia) read only translation layer' or new
136           expermental, readwrite
137           'SmartMedia/xD new translation layer'
138
139 config MTD_NAND_AU1550
140         tristate "Au1550/1200 NAND support"
141         depends on SOC_AU1200 || SOC_AU1550
142         help
143           This enables the driver for the NAND flash controller on the
144           AMD/Alchemy 1550 SOC.
145
146 config MTD_NAND_BF5XX
147         tristate "Blackfin on-chip NAND Flash Controller driver"
148         depends on (BF54x || BF52x) && MTD_NAND
149         help
150           This enables the Blackfin on-chip NAND flash controller
151
152           No board specific support is done by this driver, each board
153           must advertise a platform_device for the driver to attach.
154
155           This driver can also be built as a module. If so, the module
156           will be called bf5xx-nand.
157
158 config MTD_NAND_BF5XX_HWECC
159         bool "BF5XX NAND Hardware ECC"
160         default y
161         depends on MTD_NAND_BF5XX
162         help
163           Enable the use of the BF5XX's internal ECC generator when
164           using NAND.
165
166 config MTD_NAND_BF5XX_BOOTROM_ECC
167         bool "Use Blackfin BootROM ECC Layout"
168         default n
169         depends on MTD_NAND_BF5XX_HWECC
170         help
171           If you wish to modify NAND pages and allow the Blackfin on-chip
172           BootROM to boot from them, say Y here.  This is only necessary
173           if you are booting U-Boot out of NAND and you wish to update
174           U-Boot from Linux' userspace.  Otherwise, you should say N here.
175
176           If unsure, say N.
177
178 config MTD_NAND_RTC_FROM4
179         tristate "Renesas Flash ROM 4-slot interface board (FROM_BOARD4)"
180         depends on SH_SOLUTION_ENGINE
181         select REED_SOLOMON
182         select REED_SOLOMON_DEC8
183         select BITREVERSE
184         help
185           This enables the driver for the Renesas Technology AG-AND
186           flash interface board (FROM_BOARD4)
187
188 config MTD_NAND_PPCHAMELEONEVB
189         tristate "NAND Flash device on PPChameleonEVB board"
190         depends on PPCHAMELEONEVB && BROKEN
191         help
192           This enables the NAND flash driver on the PPChameleon EVB Board.
193
194 config MTD_NAND_S3C2410
195         tristate "NAND Flash support for Samsung S3C SoCs"
196         depends on ARCH_S3C2410 || ARCH_S3C64XX
197         help
198           This enables the NAND flash controller on the S3C24xx and S3C64xx
199           SoCs
200
201           No board specific support is done by this driver, each board
202           must advertise a platform_device for the driver to attach.
203
204 config MTD_NAND_S3C2410_DEBUG
205         bool "Samsung S3C NAND driver debug"
206         depends on MTD_NAND_S3C2410
207         help
208           Enable debugging of the S3C NAND driver
209
210 config MTD_NAND_S3C2410_HWECC
211         bool "Samsung S3C NAND Hardware ECC"
212         depends on MTD_NAND_S3C2410
213         help
214           Enable the use of the controller's internal ECC generator when
215           using NAND. Early versions of the chips have had problems with
216           incorrect ECC generation, and if using these, the default of
217           software ECC is preferable.
218
219 config MTD_NAND_NDFC
220         tristate "NDFC NanD Flash Controller"
221         depends on 4xx
222         select MTD_NAND_ECC_SMC
223         help
224          NDFC Nand Flash Controllers are integrated in IBM/AMCC's 4xx SoCs
225
226 config MTD_NAND_S3C2410_CLKSTOP
227         bool "Samsung S3C NAND IDLE clock stop"
228         depends on MTD_NAND_S3C2410
229         default n
230         help
231           Stop the clock to the NAND controller when there is no chip
232           selected to save power. This will mean there is a small delay
233           when the is NAND chip selected or released, but will save
234           approximately 5mA of power when there is nothing happening.
235
236 config MTD_NAND_BCM_UMI
237         tristate "NAND Flash support for BCM Reference Boards"
238         depends on ARCH_BCMRING && MTD_NAND
239         help
240           This enables the NAND flash controller on the BCM UMI block.
241
242           No board specfic support is done by this driver, each board
243           must advertise a platform_device for the driver to attach.
244
245 config MTD_NAND_BCM_UMI_HWCS
246         bool "BCM UMI NAND Hardware CS"
247         depends on MTD_NAND_BCM_UMI
248         help
249           Enable the use of the BCM UMI block's internal CS using NAND.
250           This should only be used if you know the external NAND CS can toggle.
251
252 config MTD_NAND_DISKONCHIP
253         tristate "DiskOnChip 2000, Millennium and Millennium Plus (NAND reimplementation) (EXPERIMENTAL)"
254         depends on EXPERIMENTAL
255         select REED_SOLOMON
256         select REED_SOLOMON_DEC16
257         help
258           This is a reimplementation of M-Systems DiskOnChip 2000,
259           Millennium and Millennium Plus as a standard NAND device driver,
260           as opposed to the earlier self-contained MTD device drivers.
261           This should enable, among other things, proper JFFS2 operation on
262           these devices.
263
264 config MTD_NAND_DISKONCHIP_PROBE_ADVANCED
265         bool "Advanced detection options for DiskOnChip"
266         depends on MTD_NAND_DISKONCHIP
267         help
268           This option allows you to specify nonstandard address at which to
269           probe for a DiskOnChip, or to change the detection options.  You
270           are unlikely to need any of this unless you are using LinuxBIOS.
271           Say 'N'.
272
273 config MTD_NAND_DISKONCHIP_PROBE_ADDRESS
274         hex "Physical address of DiskOnChip" if MTD_NAND_DISKONCHIP_PROBE_ADVANCED
275         depends on MTD_NAND_DISKONCHIP
276         default "0"
277         ---help---
278         By default, the probe for DiskOnChip devices will look for a
279         DiskOnChip at every multiple of 0x2000 between 0xC8000 and 0xEE000.
280         This option allows you to specify a single address at which to probe
281         for the device, which is useful if you have other devices in that
282         range which get upset when they are probed.
283
284         (Note that on PowerPC, the normal probe will only check at
285         0xE4000000.)
286
287         Normally, you should leave this set to zero, to allow the probe at
288         the normal addresses.
289
290 config MTD_NAND_DISKONCHIP_PROBE_HIGH
291         bool "Probe high addresses"
292         depends on MTD_NAND_DISKONCHIP_PROBE_ADVANCED
293         help
294           By default, the probe for DiskOnChip devices will look for a
295           DiskOnChip at every multiple of 0x2000 between 0xC8000 and 0xEE000.
296           This option changes to make it probe between 0xFFFC8000 and
297           0xFFFEE000.  Unless you are using LinuxBIOS, this is unlikely to be
298           useful to you.  Say 'N'.
299
300 config MTD_NAND_DISKONCHIP_BBTWRITE
301         bool "Allow BBT writes on DiskOnChip Millennium and 2000TSOP"
302         depends on MTD_NAND_DISKONCHIP
303         help
304           On DiskOnChip devices shipped with the INFTL filesystem (Millennium
305           and 2000 TSOP/Alon), Linux reserves some space at the end of the
306           device for the Bad Block Table (BBT).  If you have existing INFTL
307           data on your device (created by non-Linux tools such as M-Systems'
308           DOS drivers), your data might overlap the area Linux wants to use for
309           the BBT.  If this is a concern for you, leave this option disabled and
310           Linux will not write BBT data into this area.
311           The downside of leaving this option disabled is that if bad blocks
312           are detected by Linux, they will not be recorded in the BBT, which
313           could cause future problems.
314           Once you enable this option, new filesystems (INFTL or others, created
315           in Linux or other operating systems) will not use the reserved area.
316           The only reason not to enable this option is to prevent damage to
317           preexisting filesystems.
318           Even if you leave this disabled, you can enable BBT writes at module
319           load time (assuming you build diskonchip as a module) with the module
320           parameter "inftl_bbt_write=1".
321
322 config MTD_NAND_SHARPSL
323         tristate "Support for NAND Flash on Sharp SL Series (C7xx + others)"
324         depends on ARCH_PXA
325
326 config MTD_NAND_CAFE
327         tristate "NAND support for OLPC CAFÉ chip"
328         depends on PCI
329         select REED_SOLOMON
330         select REED_SOLOMON_DEC16
331         help
332           Use NAND flash attached to the CAFÉ chip designed for the OLPC
333           laptop.
334
335 config MTD_NAND_CS553X
336         tristate "NAND support for CS5535/CS5536 (AMD Geode companion chip)"
337         depends on X86_32
338         help
339           The CS553x companion chips for the AMD Geode processor
340           include NAND flash controllers with built-in hardware ECC
341           capabilities; enabling this option will allow you to use
342           these. The driver will check the MSRs to verify that the
343           controller is enabled for NAND, and currently requires that
344           the controller be in MMIO mode.
345
346           If you say "m", the module will be called cs553x_nand.
347
348 config MTD_NAND_ATMEL
349         tristate "Support for NAND Flash / SmartMedia on AT91 and AVR32"
350         depends on ARCH_AT91 || AVR32
351         help
352           Enables support for NAND Flash / Smart Media Card interface
353           on Atmel AT91 and AVR32 processors.
354 choice
355         prompt "ECC management for NAND Flash / SmartMedia on AT91 / AVR32"
356         depends on MTD_NAND_ATMEL
357
358 config MTD_NAND_ATMEL_ECC_HW
359         bool "Hardware ECC"
360         depends on ARCH_AT91SAM9263 || ARCH_AT91SAM9260 || AVR32
361         help
362           Use hardware ECC instead of software ECC when the chip
363           supports it.
364
365           The hardware ECC controller is capable of single bit error
366           correction and 2-bit random detection per page.
367
368           NB : hardware and software ECC schemes are incompatible.
369           If you switch from one to another, you'll have to erase your
370           mtd partition.
371
372           If unsure, say Y
373
374 config MTD_NAND_ATMEL_ECC_SOFT
375         bool "Software ECC"
376         help
377           Use software ECC.
378
379           NB : hardware and software ECC schemes are incompatible.
380           If you switch from one to another, you'll have to erase your
381           mtd partition.
382
383 config MTD_NAND_ATMEL_ECC_NONE
384         bool "No ECC (testing only, DANGEROUS)"
385         depends on DEBUG_KERNEL
386         help
387           No ECC will be used.
388           It's not a good idea and it should be reserved for testing
389           purpose only.
390
391           If unsure, say N
392
393 endchoice
394
395 config MTD_NAND_PXA3xx
396         tristate "Support for NAND flash devices on PXA3xx"
397         depends on MTD_NAND && (PXA3xx || ARCH_MMP)
398         help
399           This enables the driver for the NAND flash device found on
400           PXA3xx processors
401
402 config MTD_NAND_PXA3xx_BUILTIN
403         bool "Use builtin definitions for some NAND chips (deprecated)"
404         depends on MTD_NAND_PXA3xx
405         help
406           This enables builtin definitions for some NAND chips. This
407           is deprecated in favor of platform specific data.
408
409 config MTD_NAND_CM_X270
410         tristate "Support for NAND Flash on CM-X270 modules"
411         depends on MTD_NAND && MACH_ARMCORE
412
413 config MTD_NAND_PASEMI
414         tristate "NAND support for PA Semi PWRficient"
415         depends on MTD_NAND && PPC_PASEMI
416         help
417           Enables support for NAND Flash interface on PA Semi PWRficient
418           based boards
419
420 config MTD_NAND_TMIO
421         tristate "NAND Flash device on Toshiba Mobile IO Controller"
422         depends on MTD_NAND && MFD_TMIO
423         help
424           Support for NAND flash connected to a Toshiba Mobile IO
425           Controller in some PDAs, including the Sharp SL6000x.
426
427 config MTD_NAND_NANDSIM
428         tristate "Support for NAND Flash Simulator"
429         depends on MTD_PARTITIONS
430         help
431           The simulator may simulate various NAND flash chips for the
432           MTD nand layer.
433
434 config MTD_NAND_PLATFORM
435         tristate "Support for generic platform NAND driver"
436         depends on MTD_NAND
437         help
438           This implements a generic NAND driver for on-SOC platform
439           devices. You will need to provide platform-specific functions
440           via platform_data.
441
442 config MTD_ALAUDA
443         tristate "MTD driver for Olympus MAUSB-10 and Fujifilm DPC-R1"
444         depends on MTD_NAND && USB
445         help
446           These two (and possibly other) Alauda-based cardreaders for
447           SmartMedia and xD allow raw flash access.
448
449 config MTD_NAND_ORION
450         tristate "NAND Flash support for Marvell Orion SoC"
451         depends on PLAT_ORION && MTD_NAND
452         help
453           This enables the NAND flash controller on Orion machines.
454
455           No board specific support is done by this driver, each board
456           must advertise a platform_device for the driver to attach.
457
458 config MTD_NAND_FSL_ELBC
459         tristate "NAND support for Freescale eLBC controllers"
460         depends on MTD_NAND && PPC_OF
461         help
462           Various Freescale chips, including the 8313, include a NAND Flash
463           Controller Module with built-in hardware ECC capabilities.
464           Enabling this option will enable you to use this to control
465           external NAND devices.
466
467 config MTD_NAND_FSL_UPM
468         tristate "Support for NAND on Freescale UPM"
469         depends on MTD_NAND && (PPC_83xx || PPC_85xx)
470         select FSL_LBC
471         help
472           Enables support for NAND Flash chips wired onto Freescale PowerPC
473           processor localbus with User-Programmable Machine support.
474
475 config MTD_NAND_MPC5121_NFC
476         tristate "MPC5121 built-in NAND Flash Controller support"
477         depends on PPC_MPC512x
478         help
479           This enables the driver for the NAND flash controller on the
480           MPC5121 SoC.
481
482 config MTD_NAND_MXC
483         tristate "MXC NAND support"
484         depends on ARCH_MX2 || ARCH_MX25 || ARCH_MX3
485         help
486           This enables the driver for the NAND flash controller on the
487           MXC processors.
488
489 config MTD_NAND_NOMADIK
490         tristate "ST Nomadik 8815 NAND support"
491         depends on ARCH_NOMADIK
492         help
493           Driver for the NAND flash controller on the Nomadik, with ECC.
494
495 config MTD_NAND_SH_FLCTL
496         tristate "Support for NAND on Renesas SuperH FLCTL"
497         depends on MTD_NAND && (SUPERH || ARCH_SHMOBILE)
498         help
499           Several Renesas SuperH CPU has FLCTL. This option enables support
500           for NAND Flash using FLCTL.
501
502 config MTD_NAND_DAVINCI
503         tristate "Support NAND on DaVinci SoC"
504         depends on ARCH_DAVINCI
505         help
506           Enable the driver for NAND flash chips on Texas Instruments
507           DaVinci processors.
508
509 config MTD_NAND_TXX9NDFMC
510         tristate "NAND Flash support for TXx9 SoC"
511         depends on SOC_TX4938 || SOC_TX4939
512         help
513           This enables the NAND flash controller on the TXx9 SoCs.
514
515 config MTD_NAND_SOCRATES
516         tristate "Support for NAND on Socrates board"
517         depends on MTD_NAND && SOCRATES
518         help
519           Enables support for NAND Flash chips wired onto Socrates board.
520
521 config MTD_NAND_NUC900
522         tristate "Support for NAND on Nuvoton NUC9xx/w90p910 evaluation boards."
523         depends on ARCH_W90X900 && MTD_PARTITIONS
524         help
525           This enables the driver for the NAND Flash on evaluation board based
526           on w90p910 / NUC9xx.
527
528 endif # MTD_NAND