1config MTD_NAND_ECC 2 tristate 3 4config 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 13menuconfig MTD_NAND 14 tristate "Raw/Parallel NAND Device Support" 15 depends on MTD 16 select MTD_NAND_ECC 17 select MTD_NAND_CORE 18 help 19 This enables support for accessing all type of raw/parallel 20 NAND flash devices. For further information see 21 <http://www.linux-mtd.infradead.org/doc/nand.html>. 22 23if MTD_NAND 24 25config MTD_NAND_ECC_SW_BCH 26 tristate "Support software BCH ECC" 27 select BCH 28 default n 29 help 30 This enables support for software BCH error correction. Binary BCH 31 codes are more powerful and cpu intensive than traditional Hamming 32 ECC codes. They are used with NAND devices requiring more than 1 bit 33 of error correction. 34 35config MTD_SM_COMMON 36 tristate 37 default n 38 39config MTD_NAND_DENALI 40 tristate 41 42config MTD_NAND_DENALI_PCI 43 tristate "Support Denali NAND controller on Intel Moorestown" 44 select MTD_NAND_DENALI 45 depends on PCI 46 help 47 Enable the driver for NAND flash on Intel Moorestown, using the 48 Denali NAND controller core. 49 50config MTD_NAND_DENALI_DT 51 tristate "Support Denali NAND controller as a DT device" 52 select MTD_NAND_DENALI 53 depends on HAS_DMA && HAVE_CLK && OF 54 help 55 Enable the driver for NAND flash on platforms using a Denali NAND 56 controller as a DT device. 57 58config MTD_NAND_GPIO 59 tristate "GPIO assisted NAND Flash driver" 60 depends on GPIOLIB || COMPILE_TEST 61 depends on HAS_IOMEM 62 help 63 This enables a NAND flash driver where control signals are 64 connected to GPIO pins, and commands and data are communicated 65 via a memory mapped interface. 66 67config MTD_NAND_AMS_DELTA 68 tristate "NAND Flash device on Amstrad E3" 69 depends on MACH_AMS_DELTA || COMPILE_TEST 70 default y 71 help 72 Support for NAND flash on Amstrad E3 (Delta). 73 74config MTD_NAND_OMAP2 75 tristate "NAND Flash device on OMAP2, OMAP3, OMAP4 and Keystone" 76 depends on ARCH_OMAP2PLUS || ARCH_KEYSTONE || COMPILE_TEST 77 depends on HAS_IOMEM 78 help 79 Support for NAND flash on Texas Instruments OMAP2, OMAP3, OMAP4 80 and Keystone platforms. 81 82config MTD_NAND_OMAP_BCH 83 depends on MTD_NAND_OMAP2 84 bool "Support hardware based BCH error correction" 85 default n 86 select BCH 87 help 88 This config enables the ELM hardware engine, which can be used to 89 locate and correct errors when using BCH ECC scheme. This offloads 90 the cpu from doing ECC error searching and correction. However some 91 legacy OMAP families like OMAP2xxx, OMAP3xxx do not have ELM engine 92 so this is optional for them. 93 94config MTD_NAND_OMAP_BCH_BUILD 95 def_tristate MTD_NAND_OMAP2 && MTD_NAND_OMAP_BCH 96 97config MTD_NAND_RICOH 98 tristate "Ricoh xD card reader" 99 default n 100 depends on PCI 101 select MTD_SM_COMMON 102 help 103 Enable support for Ricoh R5C852 xD card reader 104 You also need to enable ether 105 NAND SSFDC (SmartMedia) read only translation layer' or new 106 expermental, readwrite 107 'SmartMedia/xD new translation layer' 108 109config MTD_NAND_AU1550 110 tristate "Au1550/1200 NAND support" 111 depends on MIPS_ALCHEMY 112 help 113 This enables the driver for the NAND flash controller on the 114 AMD/Alchemy 1550 SOC. 115 116config MTD_NAND_S3C2410 117 tristate "NAND Flash support for Samsung S3C SoCs" 118 depends on ARCH_S3C24XX || ARCH_S3C64XX 119 help 120 This enables the NAND flash controller on the S3C24xx and S3C64xx 121 SoCs 122 123 No board specific support is done by this driver, each board 124 must advertise a platform_device for the driver to attach. 125 126config MTD_NAND_S3C2410_DEBUG 127 bool "Samsung S3C NAND driver debug" 128 depends on MTD_NAND_S3C2410 129 help 130 Enable debugging of the S3C NAND driver 131 132config MTD_NAND_NDFC 133 tristate "NDFC NanD Flash Controller" 134 depends on 4xx 135 select MTD_NAND_ECC_SMC 136 help 137 NDFC Nand Flash Controllers are integrated in IBM/AMCC's 4xx SoCs 138 139config MTD_NAND_S3C2410_CLKSTOP 140 bool "Samsung S3C NAND IDLE clock stop" 141 depends on MTD_NAND_S3C2410 142 default n 143 help 144 Stop the clock to the NAND controller when there is no chip 145 selected to save power. This will mean there is a small delay 146 when the is NAND chip selected or released, but will save 147 approximately 5mA of power when there is nothing happening. 148 149config MTD_NAND_TANGO 150 tristate "NAND Flash support for Tango chips" 151 depends on ARCH_TANGO || COMPILE_TEST 152 depends on HAS_IOMEM 153 help 154 Enables the NAND Flash controller on Tango chips. 155 156config MTD_NAND_DISKONCHIP 157 tristate "DiskOnChip 2000, Millennium and Millennium Plus (NAND reimplementation)" 158 depends on HAS_IOMEM 159 select REED_SOLOMON 160 select REED_SOLOMON_DEC16 161 help 162 This is a reimplementation of M-Systems DiskOnChip 2000, 163 Millennium and Millennium Plus as a standard NAND device driver, 164 as opposed to the earlier self-contained MTD device drivers. 165 This should enable, among other things, proper JFFS2 operation on 166 these devices. 167 168config MTD_NAND_DISKONCHIP_PROBE_ADVANCED 169 bool "Advanced detection options for DiskOnChip" 170 depends on MTD_NAND_DISKONCHIP 171 help 172 This option allows you to specify nonstandard address at which to 173 probe for a DiskOnChip, or to change the detection options. You 174 are unlikely to need any of this unless you are using LinuxBIOS. 175 Say 'N'. 176 177config MTD_NAND_DISKONCHIP_PROBE_ADDRESS 178 hex "Physical address of DiskOnChip" if MTD_NAND_DISKONCHIP_PROBE_ADVANCED 179 depends on MTD_NAND_DISKONCHIP 180 default "0" 181 help 182 By default, the probe for DiskOnChip devices will look for a 183 DiskOnChip at every multiple of 0x2000 between 0xC8000 and 0xEE000. 184 This option allows you to specify a single address at which to probe 185 for the device, which is useful if you have other devices in that 186 range which get upset when they are probed. 187 188 (Note that on PowerPC, the normal probe will only check at 189 0xE4000000.) 190 191 Normally, you should leave this set to zero, to allow the probe at 192 the normal addresses. 193 194config MTD_NAND_DISKONCHIP_PROBE_HIGH 195 bool "Probe high addresses" 196 depends on MTD_NAND_DISKONCHIP_PROBE_ADVANCED 197 help 198 By default, the probe for DiskOnChip devices will look for a 199 DiskOnChip at every multiple of 0x2000 between 0xC8000 and 0xEE000. 200 This option changes to make it probe between 0xFFFC8000 and 201 0xFFFEE000. Unless you are using LinuxBIOS, this is unlikely to be 202 useful to you. Say 'N'. 203 204config MTD_NAND_DISKONCHIP_BBTWRITE 205 bool "Allow BBT writes on DiskOnChip Millennium and 2000TSOP" 206 depends on MTD_NAND_DISKONCHIP 207 help 208 On DiskOnChip devices shipped with the INFTL filesystem (Millennium 209 and 2000 TSOP/Alon), Linux reserves some space at the end of the 210 device for the Bad Block Table (BBT). If you have existing INFTL 211 data on your device (created by non-Linux tools such as M-Systems' 212 DOS drivers), your data might overlap the area Linux wants to use for 213 the BBT. If this is a concern for you, leave this option disabled and 214 Linux will not write BBT data into this area. 215 The downside of leaving this option disabled is that if bad blocks 216 are detected by Linux, they will not be recorded in the BBT, which 217 could cause future problems. 218 Once you enable this option, new filesystems (INFTL or others, created 219 in Linux or other operating systems) will not use the reserved area. 220 The only reason not to enable this option is to prevent damage to 221 preexisting filesystems. 222 Even if you leave this disabled, you can enable BBT writes at module 223 load time (assuming you build diskonchip as a module) with the module 224 parameter "inftl_bbt_write=1". 225 226config MTD_NAND_SHARPSL 227 tristate "Support for NAND Flash on Sharp SL Series (C7xx + others)" 228 depends on ARCH_PXA || COMPILE_TEST 229 depends on HAS_IOMEM 230 231config MTD_NAND_CAFE 232 tristate "NAND support for OLPC CAFÉ chip" 233 depends on PCI 234 select REED_SOLOMON 235 select REED_SOLOMON_DEC16 236 help 237 Use NAND flash attached to the CAFÉ chip designed for the OLPC 238 laptop. 239 240config MTD_NAND_CS553X 241 tristate "NAND support for CS5535/CS5536 (AMD Geode companion chip)" 242 depends on X86_32 243 depends on !UML && HAS_IOMEM 244 help 245 The CS553x companion chips for the AMD Geode processor 246 include NAND flash controllers with built-in hardware ECC 247 capabilities; enabling this option will allow you to use 248 these. The driver will check the MSRs to verify that the 249 controller is enabled for NAND, and currently requires that 250 the controller be in MMIO mode. 251 252 If you say "m", the module will be called cs553x_nand. 253 254config MTD_NAND_ATMEL 255 tristate "Support for NAND Flash / SmartMedia on AT91" 256 depends on ARCH_AT91 || COMPILE_TEST 257 depends on HAS_IOMEM 258 select GENERIC_ALLOCATOR 259 select MFD_ATMEL_SMC 260 help 261 Enables support for NAND Flash / Smart Media Card interface 262 on Atmel AT91 processors. 263 264config MTD_NAND_MARVELL 265 tristate "NAND controller support on Marvell boards" 266 depends on PXA3xx || ARCH_MMP || PLAT_ORION || ARCH_MVEBU || \ 267 COMPILE_TEST 268 depends on HAS_IOMEM 269 help 270 This enables the NAND flash controller driver for Marvell boards, 271 including: 272 - PXA3xx processors (NFCv1) 273 - 32-bit Armada platforms (XP, 37x, 38x, 39x) (NFCv2) 274 - 64-bit Aramda platforms (7k, 8k) (NFCv2) 275 276config MTD_NAND_SLC_LPC32XX 277 tristate "NXP LPC32xx SLC Controller" 278 depends on ARCH_LPC32XX || COMPILE_TEST 279 depends on HAS_IOMEM 280 help 281 Enables support for NXP's LPC32XX SLC (i.e. for Single Level Cell 282 chips) NAND controller. This is the default for the PHYTEC 3250 283 reference board which contains a NAND256R3A2CZA6 chip. 284 285 Please check the actual NAND chip connected and its support 286 by the SLC NAND controller. 287 288config MTD_NAND_MLC_LPC32XX 289 tristate "NXP LPC32xx MLC Controller" 290 depends on ARCH_LPC32XX || COMPILE_TEST 291 depends on HAS_IOMEM 292 help 293 Uses the LPC32XX MLC (i.e. for Multi Level Cell chips) NAND 294 controller. This is the default for the WORK92105 controller 295 board. 296 297 Please check the actual NAND chip connected and its support 298 by the MLC NAND controller. 299 300config MTD_NAND_CM_X270 301 tristate "Support for NAND Flash on CM-X270 modules" 302 depends on MACH_ARMCORE 303 304config MTD_NAND_PASEMI 305 tristate "NAND support for PA Semi PWRficient" 306 depends on PPC_PASEMI 307 help 308 Enables support for NAND Flash interface on PA Semi PWRficient 309 based boards 310 311config MTD_NAND_TMIO 312 tristate "NAND Flash device on Toshiba Mobile IO Controller" 313 depends on MFD_TMIO 314 help 315 Support for NAND flash connected to a Toshiba Mobile IO 316 Controller in some PDAs, including the Sharp SL6000x. 317 318config MTD_NAND_NANDSIM 319 tristate "Support for NAND Flash Simulator" 320 help 321 The simulator may simulate various NAND flash chips for the 322 MTD nand layer. 323 324config MTD_NAND_GPMI_NAND 325 tristate "GPMI NAND Flash Controller driver" 326 depends on MXS_DMA 327 help 328 Enables NAND Flash support for IMX23, IMX28 or IMX6. 329 The GPMI controller is very powerful, with the help of BCH 330 module, it can do the hardware ECC. The GPMI supports several 331 NAND flashs at the same time. 332 333config MTD_NAND_BRCMNAND 334 tristate "Broadcom STB NAND controller" 335 depends on ARM || ARM64 || MIPS || COMPILE_TEST 336 depends on HAS_IOMEM 337 help 338 Enables the Broadcom NAND controller driver. The controller was 339 originally designed for Set-Top Box but is used on various BCM7xxx, 340 BCM3xxx, BCM63xxx, iProc/Cygnus and more. 341 342config MTD_NAND_BCM47XXNFLASH 343 tristate "Support for NAND flash on BCM4706 BCMA bus" 344 depends on BCMA_NFLASH 345 depends on BCMA 346 help 347 BCMA bus can have various flash memories attached, they are 348 registered by bcma as platform devices. This enables driver for 349 NAND flash memories. For now only BCM4706 is supported. 350 351config MTD_NAND_PLATFORM 352 tristate "Support for generic platform NAND driver" 353 depends on HAS_IOMEM 354 help 355 This implements a generic NAND driver for on-SOC platform 356 devices. You will need to provide platform-specific functions 357 via platform_data. 358 359config MTD_NAND_ORION 360 tristate "NAND Flash support for Marvell Orion SoC" 361 depends on PLAT_ORION 362 help 363 This enables the NAND flash controller on Orion machines. 364 365 No board specific support is done by this driver, each board 366 must advertise a platform_device for the driver to attach. 367 368config MTD_NAND_OXNAS 369 tristate "NAND Flash support for Oxford Semiconductor SoC" 370 depends on ARCH_OXNAS || COMPILE_TEST 371 depends on HAS_IOMEM 372 help 373 This enables the NAND flash controller on Oxford Semiconductor SoCs. 374 375config MTD_NAND_FSL_ELBC 376 tristate "NAND support for Freescale eLBC controllers" 377 depends on FSL_SOC 378 select FSL_LBC 379 help 380 Various Freescale chips, including the 8313, include a NAND Flash 381 Controller Module with built-in hardware ECC capabilities. 382 Enabling this option will enable you to use this to control 383 external NAND devices. 384 385config MTD_NAND_FSL_IFC 386 tristate "NAND support for Freescale IFC controller" 387 depends on FSL_SOC || ARCH_LAYERSCAPE || SOC_LS1021A || COMPILE_TEST 388 depends on HAS_IOMEM 389 select FSL_IFC 390 select MEMORY 391 help 392 Various Freescale chips e.g P1010, include a NAND Flash machine 393 with built-in hardware ECC capabilities. 394 Enabling this option will enable you to use this to control 395 external NAND devices. 396 397config MTD_NAND_FSL_UPM 398 tristate "Support for NAND on Freescale UPM" 399 depends on PPC_83xx || PPC_85xx 400 select FSL_LBC 401 help 402 Enables support for NAND Flash chips wired onto Freescale PowerPC 403 processor localbus with User-Programmable Machine support. 404 405config MTD_NAND_MPC5121_NFC 406 tristate "MPC5121 built-in NAND Flash Controller support" 407 depends on PPC_MPC512x 408 help 409 This enables the driver for the NAND flash controller on the 410 MPC5121 SoC. 411 412config MTD_NAND_VF610_NFC 413 tristate "Support for Freescale NFC for VF610/MPC5125" 414 depends on (SOC_VF610 || COMPILE_TEST) 415 depends on HAS_IOMEM 416 help 417 Enables support for NAND Flash Controller on some Freescale 418 processors like the VF610, MPC5125, MCF54418 or Kinetis K70. 419 The driver supports a maximum 2k page size. With 2k pages and 420 64 bytes or more of OOB, hardware ECC with up to 32-bit error 421 correction is supported. Hardware ECC is only enabled through 422 device tree. 423 424config MTD_NAND_MXC 425 tristate "MXC NAND support" 426 depends on ARCH_MXC || COMPILE_TEST 427 depends on HAS_IOMEM 428 help 429 This enables the driver for the NAND flash controller on the 430 MXC processors. 431 432config MTD_NAND_SH_FLCTL 433 tristate "Support for NAND on Renesas SuperH FLCTL" 434 depends on SUPERH || COMPILE_TEST 435 depends on HAS_IOMEM 436 help 437 Several Renesas SuperH CPU has FLCTL. This option enables support 438 for NAND Flash using FLCTL. 439 440config MTD_NAND_DAVINCI 441 tristate "Support NAND on DaVinci/Keystone SoC" 442 depends on ARCH_DAVINCI || (ARCH_KEYSTONE && TI_AEMIF) || COMPILE_TEST 443 depends on HAS_IOMEM 444 help 445 Enable the driver for NAND flash chips on Texas Instruments 446 DaVinci/Keystone processors. 447 448config MTD_NAND_TXX9NDFMC 449 tristate "NAND Flash support for TXx9 SoC" 450 depends on SOC_TX4938 || SOC_TX4939 || COMPILE_TEST 451 depends on HAS_IOMEM 452 help 453 This enables the NAND flash controller on the TXx9 SoCs. 454 455config MTD_NAND_SOCRATES 456 tristate "Support for NAND on Socrates board" 457 depends on SOCRATES 458 help 459 Enables support for NAND Flash chips wired onto Socrates board. 460 461config MTD_NAND_NUC900 462 tristate "Support for NAND on Nuvoton NUC9xx/w90p910 evaluation boards." 463 depends on ARCH_W90X900 || COMPILE_TEST 464 depends on HAS_IOMEM 465 help 466 This enables the driver for the NAND Flash on evaluation board based 467 on w90p910 / NUC9xx. 468 469source "drivers/mtd/nand/raw/ingenic/Kconfig" 470 471config MTD_NAND_FSMC 472 tristate "Support for NAND on ST Micros FSMC" 473 depends on OF && HAS_IOMEM 474 depends on PLAT_SPEAR || ARCH_NOMADIK || ARCH_U8500 || MACH_U300 || \ 475 COMPILE_TEST 476 help 477 Enables support for NAND Flash chips on the ST Microelectronics 478 Flexible Static Memory Controller (FSMC) 479 480config MTD_NAND_XWAY 481 bool "Support for NAND on Lantiq XWAY SoC" 482 depends on LANTIQ && SOC_TYPE_XWAY 483 help 484 Enables support for NAND Flash chips on Lantiq XWAY SoCs. NAND is attached 485 to the External Bus Unit (EBU). 486 487config MTD_NAND_SUNXI 488 tristate "Support for NAND on Allwinner SoCs" 489 depends on ARCH_SUNXI || COMPILE_TEST 490 depends on HAS_IOMEM 491 help 492 Enables support for NAND Flash chips on Allwinner SoCs. 493 494config MTD_NAND_HISI504 495 tristate "Support for NAND controller on Hisilicon SoC Hip04" 496 depends on ARCH_HISI || COMPILE_TEST 497 depends on HAS_IOMEM 498 help 499 Enables support for NAND controller on Hisilicon SoC Hip04. 500 501config MTD_NAND_QCOM 502 tristate "Support for NAND on QCOM SoCs" 503 depends on ARCH_QCOM || COMPILE_TEST 504 depends on HAS_IOMEM 505 help 506 Enables support for NAND flash chips on SoCs containing the EBI2 NAND 507 controller. This controller is found on IPQ806x SoC. 508 509config MTD_NAND_MTK 510 tristate "Support for NAND controller on MTK SoCs" 511 depends on ARCH_MEDIATEK || COMPILE_TEST 512 depends on HAS_IOMEM 513 help 514 Enables support for NAND controller on MTK SoCs. 515 This controller is found on mt27xx, mt81xx, mt65xx SoCs. 516 517config MTD_NAND_TEGRA 518 tristate "Support for NAND controller on NVIDIA Tegra" 519 depends on ARCH_TEGRA || COMPILE_TEST 520 depends on HAS_IOMEM 521 help 522 Enables support for NAND flash controller on NVIDIA Tegra SoC. 523 The driver has been developed and tested on a Tegra 2 SoC. DMA 524 support, raw read/write page as well as HW ECC read/write page 525 is supported. Extra OOB bytes when using HW ECC are currently 526 not supported. 527 528config MTD_NAND_STM32_FMC2 529 tristate "Support for NAND controller on STM32MP SoCs" 530 depends on MACH_STM32MP157 || COMPILE_TEST 531 help 532 Enables support for NAND Flash chips on SoCs containing the FMC2 533 NAND controller. This controller is found on STM32MP SoCs. 534 The controller supports a maximum 8k page size and supports 535 a maximum 8-bit correction error per sector of 512 bytes. 536 537config MTD_NAND_MESON 538 tristate "Support for NAND controller on Amlogic's Meson SoCs" 539 depends on ARCH_MESON || COMPILE_TEST 540 select MFD_SYSCON 541 help 542 Enables support for NAND controller on Amlogic's Meson SoCs. 543 This controller is found on Meson SoCs. 544 545endif # MTD_NAND 546