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