18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only 28c2ecf20Sopenharmony_ciconfig MTD_NAND_ECC_SW_HAMMING 38c2ecf20Sopenharmony_ci tristate 48c2ecf20Sopenharmony_ci 58c2ecf20Sopenharmony_ciconfig MTD_NAND_ECC_SW_HAMMING_SMC 68c2ecf20Sopenharmony_ci bool "NAND ECC Smart Media byte order" 78c2ecf20Sopenharmony_ci depends on MTD_NAND_ECC_SW_HAMMING 88c2ecf20Sopenharmony_ci default n 98c2ecf20Sopenharmony_ci help 108c2ecf20Sopenharmony_ci Software ECC according to the Smart Media Specification. 118c2ecf20Sopenharmony_ci The original Linux implementation had byte 0 and 1 swapped. 128c2ecf20Sopenharmony_ci 138c2ecf20Sopenharmony_cimenuconfig MTD_RAW_NAND 148c2ecf20Sopenharmony_ci tristate "Raw/Parallel NAND Device Support" 158c2ecf20Sopenharmony_ci select MTD_NAND_CORE 168c2ecf20Sopenharmony_ci select MTD_NAND_ECC 178c2ecf20Sopenharmony_ci select MTD_NAND_ECC_SW_HAMMING 188c2ecf20Sopenharmony_ci help 198c2ecf20Sopenharmony_ci This enables support for accessing all type of raw/parallel 208c2ecf20Sopenharmony_ci NAND flash devices. For further information see 218c2ecf20Sopenharmony_ci <http://www.linux-mtd.infradead.org/doc/nand.html>. 228c2ecf20Sopenharmony_ci 238c2ecf20Sopenharmony_ciif MTD_RAW_NAND 248c2ecf20Sopenharmony_ci 258c2ecf20Sopenharmony_ciconfig MTD_NAND_ECC_SW_BCH 268c2ecf20Sopenharmony_ci bool "Support software BCH ECC" 278c2ecf20Sopenharmony_ci select BCH 288c2ecf20Sopenharmony_ci default n 298c2ecf20Sopenharmony_ci help 308c2ecf20Sopenharmony_ci This enables support for software BCH error correction. Binary BCH 318c2ecf20Sopenharmony_ci codes are more powerful and cpu intensive than traditional Hamming 328c2ecf20Sopenharmony_ci ECC codes. They are used with NAND devices requiring more than 1 bit 338c2ecf20Sopenharmony_ci of error correction. 348c2ecf20Sopenharmony_ci 358c2ecf20Sopenharmony_cicomment "Raw/parallel NAND flash controllers" 368c2ecf20Sopenharmony_ci 378c2ecf20Sopenharmony_ciconfig MTD_NAND_DENALI 388c2ecf20Sopenharmony_ci tristate 398c2ecf20Sopenharmony_ci 408c2ecf20Sopenharmony_ciconfig MTD_NAND_DENALI_PCI 418c2ecf20Sopenharmony_ci tristate "Denali NAND controller on Intel Moorestown" 428c2ecf20Sopenharmony_ci select MTD_NAND_DENALI 438c2ecf20Sopenharmony_ci depends on PCI 448c2ecf20Sopenharmony_ci help 458c2ecf20Sopenharmony_ci Enable the driver for NAND flash on Intel Moorestown, using the 468c2ecf20Sopenharmony_ci Denali NAND controller core. 478c2ecf20Sopenharmony_ci 488c2ecf20Sopenharmony_ciconfig MTD_NAND_DENALI_DT 498c2ecf20Sopenharmony_ci tristate "Denali NAND controller as a DT device" 508c2ecf20Sopenharmony_ci select MTD_NAND_DENALI 518c2ecf20Sopenharmony_ci depends on HAS_DMA && HAVE_CLK && OF 528c2ecf20Sopenharmony_ci help 538c2ecf20Sopenharmony_ci Enable the driver for NAND flash on platforms using a Denali NAND 548c2ecf20Sopenharmony_ci controller as a DT device. 558c2ecf20Sopenharmony_ci 568c2ecf20Sopenharmony_ciconfig MTD_NAND_AMS_DELTA 578c2ecf20Sopenharmony_ci tristate "Amstrad E3 NAND controller" 588c2ecf20Sopenharmony_ci depends on MACH_AMS_DELTA || COMPILE_TEST 598c2ecf20Sopenharmony_ci default y 608c2ecf20Sopenharmony_ci help 618c2ecf20Sopenharmony_ci Support for NAND flash on Amstrad E3 (Delta). 628c2ecf20Sopenharmony_ci 638c2ecf20Sopenharmony_ciconfig MTD_NAND_OMAP2 648c2ecf20Sopenharmony_ci tristate "OMAP2, OMAP3, OMAP4 and Keystone NAND controller" 658c2ecf20Sopenharmony_ci depends on ARCH_OMAP2PLUS || ARCH_KEYSTONE || COMPILE_TEST 668c2ecf20Sopenharmony_ci depends on HAS_IOMEM 678c2ecf20Sopenharmony_ci help 688c2ecf20Sopenharmony_ci Support for NAND flash on Texas Instruments OMAP2, OMAP3, OMAP4 698c2ecf20Sopenharmony_ci and Keystone platforms. 708c2ecf20Sopenharmony_ci 718c2ecf20Sopenharmony_ciconfig MTD_NAND_OMAP_BCH 728c2ecf20Sopenharmony_ci depends on MTD_NAND_OMAP2 738c2ecf20Sopenharmony_ci bool "Support hardware based BCH error correction" 748c2ecf20Sopenharmony_ci default n 758c2ecf20Sopenharmony_ci select BCH 768c2ecf20Sopenharmony_ci help 778c2ecf20Sopenharmony_ci This config enables the ELM hardware engine, which can be used to 788c2ecf20Sopenharmony_ci locate and correct errors when using BCH ECC scheme. This offloads 798c2ecf20Sopenharmony_ci the cpu from doing ECC error searching and correction. However some 808c2ecf20Sopenharmony_ci legacy OMAP families like OMAP2xxx, OMAP3xxx do not have ELM engine 818c2ecf20Sopenharmony_ci so this is optional for them. 828c2ecf20Sopenharmony_ci 838c2ecf20Sopenharmony_ciconfig MTD_NAND_OMAP_BCH_BUILD 848c2ecf20Sopenharmony_ci def_tristate MTD_NAND_OMAP2 && MTD_NAND_OMAP_BCH 858c2ecf20Sopenharmony_ci 868c2ecf20Sopenharmony_ciconfig MTD_NAND_AU1550 878c2ecf20Sopenharmony_ci tristate "Au1550/1200 NAND support" 888c2ecf20Sopenharmony_ci depends on MIPS_ALCHEMY 898c2ecf20Sopenharmony_ci help 908c2ecf20Sopenharmony_ci This enables the driver for the NAND flash controller on the 918c2ecf20Sopenharmony_ci AMD/Alchemy 1550 SOC. 928c2ecf20Sopenharmony_ci 938c2ecf20Sopenharmony_ciconfig MTD_NAND_NDFC 948c2ecf20Sopenharmony_ci tristate "IBM/MCC 4xx NAND controller" 958c2ecf20Sopenharmony_ci depends on 4xx 968c2ecf20Sopenharmony_ci select MTD_NAND_ECC_SW_HAMMING_SMC 978c2ecf20Sopenharmony_ci help 988c2ecf20Sopenharmony_ci NDFC Nand Flash Controllers are integrated in IBM/AMCC's 4xx SoCs 998c2ecf20Sopenharmony_ci 1008c2ecf20Sopenharmony_ciconfig MTD_NAND_S3C2410 1018c2ecf20Sopenharmony_ci tristate "Samsung S3C NAND controller" 1028c2ecf20Sopenharmony_ci depends on ARCH_S3C24XX || ARCH_S3C64XX 1038c2ecf20Sopenharmony_ci help 1048c2ecf20Sopenharmony_ci This enables the NAND flash controller on the S3C24xx and S3C64xx 1058c2ecf20Sopenharmony_ci SoCs 1068c2ecf20Sopenharmony_ci 1078c2ecf20Sopenharmony_ci No board specific support is done by this driver, each board 1088c2ecf20Sopenharmony_ci must advertise a platform_device for the driver to attach. 1098c2ecf20Sopenharmony_ci 1108c2ecf20Sopenharmony_ciconfig MTD_NAND_S3C2410_DEBUG 1118c2ecf20Sopenharmony_ci bool "Samsung S3C NAND controller debug" 1128c2ecf20Sopenharmony_ci depends on MTD_NAND_S3C2410 1138c2ecf20Sopenharmony_ci help 1148c2ecf20Sopenharmony_ci Enable debugging of the S3C NAND driver 1158c2ecf20Sopenharmony_ci 1168c2ecf20Sopenharmony_ciconfig MTD_NAND_S3C2410_CLKSTOP 1178c2ecf20Sopenharmony_ci bool "Samsung S3C NAND IDLE clock stop" 1188c2ecf20Sopenharmony_ci depends on MTD_NAND_S3C2410 1198c2ecf20Sopenharmony_ci default n 1208c2ecf20Sopenharmony_ci help 1218c2ecf20Sopenharmony_ci Stop the clock to the NAND controller when there is no chip 1228c2ecf20Sopenharmony_ci selected to save power. This will mean there is a small delay 1238c2ecf20Sopenharmony_ci when the is NAND chip selected or released, but will save 1248c2ecf20Sopenharmony_ci approximately 5mA of power when there is nothing happening. 1258c2ecf20Sopenharmony_ci 1268c2ecf20Sopenharmony_ciconfig MTD_NAND_TANGO 1278c2ecf20Sopenharmony_ci tristate "Tango NAND controller" 1288c2ecf20Sopenharmony_ci depends on ARCH_TANGO || COMPILE_TEST 1298c2ecf20Sopenharmony_ci depends on HAS_IOMEM 1308c2ecf20Sopenharmony_ci help 1318c2ecf20Sopenharmony_ci Enables the NAND Flash controller on Tango chips. 1328c2ecf20Sopenharmony_ci 1338c2ecf20Sopenharmony_ciconfig MTD_NAND_SHARPSL 1348c2ecf20Sopenharmony_ci tristate "Sharp SL Series (C7xx + others) NAND controller" 1358c2ecf20Sopenharmony_ci depends on ARCH_PXA || COMPILE_TEST 1368c2ecf20Sopenharmony_ci depends on HAS_IOMEM 1378c2ecf20Sopenharmony_ci 1388c2ecf20Sopenharmony_ciconfig MTD_NAND_CAFE 1398c2ecf20Sopenharmony_ci tristate "OLPC CAFÉ NAND controller" 1408c2ecf20Sopenharmony_ci depends on PCI 1418c2ecf20Sopenharmony_ci select REED_SOLOMON 1428c2ecf20Sopenharmony_ci select REED_SOLOMON_DEC16 1438c2ecf20Sopenharmony_ci help 1448c2ecf20Sopenharmony_ci Use NAND flash attached to the CAFÉ chip designed for the OLPC 1458c2ecf20Sopenharmony_ci laptop. 1468c2ecf20Sopenharmony_ci 1478c2ecf20Sopenharmony_ciconfig MTD_NAND_CS553X 1488c2ecf20Sopenharmony_ci tristate "CS5535/CS5536 (AMD Geode companion) NAND controller" 1498c2ecf20Sopenharmony_ci depends on X86_32 1508c2ecf20Sopenharmony_ci depends on !UML && HAS_IOMEM 1518c2ecf20Sopenharmony_ci help 1528c2ecf20Sopenharmony_ci The CS553x companion chips for the AMD Geode processor 1538c2ecf20Sopenharmony_ci include NAND flash controllers with built-in hardware ECC 1548c2ecf20Sopenharmony_ci capabilities; enabling this option will allow you to use 1558c2ecf20Sopenharmony_ci these. The driver will check the MSRs to verify that the 1568c2ecf20Sopenharmony_ci controller is enabled for NAND, and currently requires that 1578c2ecf20Sopenharmony_ci the controller be in MMIO mode. 1588c2ecf20Sopenharmony_ci 1598c2ecf20Sopenharmony_ci If you say "m", the module will be called cs553x_nand. 1608c2ecf20Sopenharmony_ci 1618c2ecf20Sopenharmony_ciconfig MTD_NAND_ATMEL 1628c2ecf20Sopenharmony_ci tristate "Atmel AT91 NAND Flash/SmartMedia NAND controller" 1638c2ecf20Sopenharmony_ci depends on ARCH_AT91 || COMPILE_TEST 1648c2ecf20Sopenharmony_ci depends on HAS_IOMEM 1658c2ecf20Sopenharmony_ci select GENERIC_ALLOCATOR 1668c2ecf20Sopenharmony_ci select MFD_ATMEL_SMC 1678c2ecf20Sopenharmony_ci help 1688c2ecf20Sopenharmony_ci Enables support for NAND Flash / Smart Media Card interface 1698c2ecf20Sopenharmony_ci on Atmel AT91 processors. 1708c2ecf20Sopenharmony_ci 1718c2ecf20Sopenharmony_ciconfig MTD_NAND_ORION 1728c2ecf20Sopenharmony_ci tristate "Marvell Orion NAND controller" 1738c2ecf20Sopenharmony_ci depends on PLAT_ORION 1748c2ecf20Sopenharmony_ci help 1758c2ecf20Sopenharmony_ci This enables the NAND flash controller on Orion machines. 1768c2ecf20Sopenharmony_ci 1778c2ecf20Sopenharmony_ci No board specific support is done by this driver, each board 1788c2ecf20Sopenharmony_ci must advertise a platform_device for the driver to attach. 1798c2ecf20Sopenharmony_ci 1808c2ecf20Sopenharmony_ciconfig MTD_NAND_MARVELL 1818c2ecf20Sopenharmony_ci tristate "Marvell EBU NAND controller" 1828c2ecf20Sopenharmony_ci depends on PXA3xx || ARCH_MMP || PLAT_ORION || ARCH_MVEBU || \ 1838c2ecf20Sopenharmony_ci COMPILE_TEST 1848c2ecf20Sopenharmony_ci depends on HAS_IOMEM 1858c2ecf20Sopenharmony_ci help 1868c2ecf20Sopenharmony_ci This enables the NAND flash controller driver for Marvell boards, 1878c2ecf20Sopenharmony_ci including: 1888c2ecf20Sopenharmony_ci - PXA3xx processors (NFCv1) 1898c2ecf20Sopenharmony_ci - 32-bit Armada platforms (XP, 37x, 38x, 39x) (NFCv2) 1908c2ecf20Sopenharmony_ci - 64-bit Aramda platforms (7k, 8k) (NFCv2) 1918c2ecf20Sopenharmony_ci 1928c2ecf20Sopenharmony_ciconfig MTD_NAND_SLC_LPC32XX 1938c2ecf20Sopenharmony_ci tristate "NXP LPC32xx SLC NAND controller" 1948c2ecf20Sopenharmony_ci depends on ARCH_LPC32XX || COMPILE_TEST 1958c2ecf20Sopenharmony_ci depends on HAS_IOMEM 1968c2ecf20Sopenharmony_ci help 1978c2ecf20Sopenharmony_ci Enables support for NXP's LPC32XX SLC (i.e. for Single Level Cell 1988c2ecf20Sopenharmony_ci chips) NAND controller. This is the default for the PHYTEC 3250 1998c2ecf20Sopenharmony_ci reference board which contains a NAND256R3A2CZA6 chip. 2008c2ecf20Sopenharmony_ci 2018c2ecf20Sopenharmony_ci Please check the actual NAND chip connected and its support 2028c2ecf20Sopenharmony_ci by the SLC NAND controller. 2038c2ecf20Sopenharmony_ci 2048c2ecf20Sopenharmony_ciconfig MTD_NAND_MLC_LPC32XX 2058c2ecf20Sopenharmony_ci tristate "NXP LPC32xx MLC NAND controller" 2068c2ecf20Sopenharmony_ci depends on ARCH_LPC32XX || COMPILE_TEST 2078c2ecf20Sopenharmony_ci depends on HAS_IOMEM 2088c2ecf20Sopenharmony_ci help 2098c2ecf20Sopenharmony_ci Uses the LPC32XX MLC (i.e. for Multi Level Cell chips) NAND 2108c2ecf20Sopenharmony_ci controller. This is the default for the WORK92105 controller 2118c2ecf20Sopenharmony_ci board. 2128c2ecf20Sopenharmony_ci 2138c2ecf20Sopenharmony_ci Please check the actual NAND chip connected and its support 2148c2ecf20Sopenharmony_ci by the MLC NAND controller. 2158c2ecf20Sopenharmony_ci 2168c2ecf20Sopenharmony_ciconfig MTD_NAND_PASEMI 2178c2ecf20Sopenharmony_ci tristate "PA Semi PWRficient NAND controller" 2188c2ecf20Sopenharmony_ci depends on PPC_PASEMI 2198c2ecf20Sopenharmony_ci help 2208c2ecf20Sopenharmony_ci Enables support for NAND Flash interface on PA Semi PWRficient 2218c2ecf20Sopenharmony_ci based boards 2228c2ecf20Sopenharmony_ci 2238c2ecf20Sopenharmony_ciconfig MTD_NAND_TMIO 2248c2ecf20Sopenharmony_ci tristate "Toshiba Mobile IO NAND controller" 2258c2ecf20Sopenharmony_ci depends on MFD_TMIO 2268c2ecf20Sopenharmony_ci help 2278c2ecf20Sopenharmony_ci Support for NAND flash connected to a Toshiba Mobile IO 2288c2ecf20Sopenharmony_ci Controller in some PDAs, including the Sharp SL6000x. 2298c2ecf20Sopenharmony_ci 2308c2ecf20Sopenharmony_ciconfig MTD_NAND_BRCMNAND 2318c2ecf20Sopenharmony_ci tristate "Broadcom STB NAND controller" 2328c2ecf20Sopenharmony_ci depends on ARM || ARM64 || MIPS || COMPILE_TEST 2338c2ecf20Sopenharmony_ci depends on HAS_IOMEM 2348c2ecf20Sopenharmony_ci help 2358c2ecf20Sopenharmony_ci Enables the Broadcom NAND controller driver. The controller was 2368c2ecf20Sopenharmony_ci originally designed for Set-Top Box but is used on various BCM7xxx, 2378c2ecf20Sopenharmony_ci BCM3xxx, BCM63xxx, iProc/Cygnus and more. 2388c2ecf20Sopenharmony_ci 2398c2ecf20Sopenharmony_ciconfig MTD_NAND_BCM47XXNFLASH 2408c2ecf20Sopenharmony_ci tristate "BCM4706 BCMA NAND controller" 2418c2ecf20Sopenharmony_ci depends on BCMA_NFLASH 2428c2ecf20Sopenharmony_ci depends on BCMA 2438c2ecf20Sopenharmony_ci help 2448c2ecf20Sopenharmony_ci BCMA bus can have various flash memories attached, they are 2458c2ecf20Sopenharmony_ci registered by bcma as platform devices. This enables driver for 2468c2ecf20Sopenharmony_ci NAND flash memories. For now only BCM4706 is supported. 2478c2ecf20Sopenharmony_ci 2488c2ecf20Sopenharmony_ciconfig MTD_NAND_OXNAS 2498c2ecf20Sopenharmony_ci tristate "Oxford Semiconductor NAND controller" 2508c2ecf20Sopenharmony_ci depends on ARCH_OXNAS || COMPILE_TEST 2518c2ecf20Sopenharmony_ci depends on HAS_IOMEM 2528c2ecf20Sopenharmony_ci help 2538c2ecf20Sopenharmony_ci This enables the NAND flash controller on Oxford Semiconductor SoCs. 2548c2ecf20Sopenharmony_ci 2558c2ecf20Sopenharmony_ciconfig MTD_NAND_MPC5121_NFC 2568c2ecf20Sopenharmony_ci tristate "MPC5121 NAND controller" 2578c2ecf20Sopenharmony_ci depends on PPC_MPC512x 2588c2ecf20Sopenharmony_ci help 2598c2ecf20Sopenharmony_ci This enables the driver for the NAND flash controller on the 2608c2ecf20Sopenharmony_ci MPC5121 SoC. 2618c2ecf20Sopenharmony_ci 2628c2ecf20Sopenharmony_ciconfig MTD_NAND_GPMI_NAND 2638c2ecf20Sopenharmony_ci tristate "Freescale GPMI NAND controller" 2648c2ecf20Sopenharmony_ci depends on MXS_DMA 2658c2ecf20Sopenharmony_ci help 2668c2ecf20Sopenharmony_ci Enables NAND Flash support for IMX23, IMX28 or IMX6. 2678c2ecf20Sopenharmony_ci The GPMI controller is very powerful, with the help of BCH 2688c2ecf20Sopenharmony_ci module, it can do the hardware ECC. The GPMI supports several 2698c2ecf20Sopenharmony_ci NAND flashs at the same time. 2708c2ecf20Sopenharmony_ci 2718c2ecf20Sopenharmony_ciconfig MTD_NAND_FSL_ELBC 2728c2ecf20Sopenharmony_ci tristate "Freescale eLBC NAND controller" 2738c2ecf20Sopenharmony_ci depends on FSL_SOC 2748c2ecf20Sopenharmony_ci select FSL_LBC 2758c2ecf20Sopenharmony_ci help 2768c2ecf20Sopenharmony_ci Various Freescale chips, including the 8313, include a NAND Flash 2778c2ecf20Sopenharmony_ci Controller Module with built-in hardware ECC capabilities. 2788c2ecf20Sopenharmony_ci Enabling this option will enable you to use this to control 2798c2ecf20Sopenharmony_ci external NAND devices. 2808c2ecf20Sopenharmony_ci 2818c2ecf20Sopenharmony_ciconfig MTD_NAND_FSL_IFC 2828c2ecf20Sopenharmony_ci tristate "Freescale IFC NAND controller" 2838c2ecf20Sopenharmony_ci depends on FSL_SOC || ARCH_LAYERSCAPE || SOC_LS1021A || COMPILE_TEST 2848c2ecf20Sopenharmony_ci depends on HAS_IOMEM 2858c2ecf20Sopenharmony_ci select FSL_IFC 2868c2ecf20Sopenharmony_ci select MEMORY 2878c2ecf20Sopenharmony_ci help 2888c2ecf20Sopenharmony_ci Various Freescale chips e.g P1010, include a NAND Flash machine 2898c2ecf20Sopenharmony_ci with built-in hardware ECC capabilities. 2908c2ecf20Sopenharmony_ci Enabling this option will enable you to use this to control 2918c2ecf20Sopenharmony_ci external NAND devices. 2928c2ecf20Sopenharmony_ci 2938c2ecf20Sopenharmony_ciconfig MTD_NAND_FSL_UPM 2948c2ecf20Sopenharmony_ci tristate "Freescale UPM NAND controller" 2958c2ecf20Sopenharmony_ci depends on PPC_83xx || PPC_85xx 2968c2ecf20Sopenharmony_ci select FSL_LBC 2978c2ecf20Sopenharmony_ci help 2988c2ecf20Sopenharmony_ci Enables support for NAND Flash chips wired onto Freescale PowerPC 2998c2ecf20Sopenharmony_ci processor localbus with User-Programmable Machine support. 3008c2ecf20Sopenharmony_ci 3018c2ecf20Sopenharmony_ciconfig MTD_NAND_VF610_NFC 3028c2ecf20Sopenharmony_ci tristate "Freescale VF610/MPC5125 NAND controller" 3038c2ecf20Sopenharmony_ci depends on (SOC_VF610 || COMPILE_TEST) 3048c2ecf20Sopenharmony_ci depends on HAS_IOMEM 3058c2ecf20Sopenharmony_ci help 3068c2ecf20Sopenharmony_ci Enables support for NAND Flash Controller on some Freescale 3078c2ecf20Sopenharmony_ci processors like the VF610, MPC5125, MCF54418 or Kinetis K70. 3088c2ecf20Sopenharmony_ci The driver supports a maximum 2k page size. With 2k pages and 3098c2ecf20Sopenharmony_ci 64 bytes or more of OOB, hardware ECC with up to 32-bit error 3108c2ecf20Sopenharmony_ci correction is supported. Hardware ECC is only enabled through 3118c2ecf20Sopenharmony_ci device tree. 3128c2ecf20Sopenharmony_ci 3138c2ecf20Sopenharmony_ciconfig MTD_NAND_MXC 3148c2ecf20Sopenharmony_ci tristate "Freescale MXC NAND controller" 3158c2ecf20Sopenharmony_ci depends on ARCH_MXC || COMPILE_TEST 3168c2ecf20Sopenharmony_ci depends on HAS_IOMEM 3178c2ecf20Sopenharmony_ci help 3188c2ecf20Sopenharmony_ci This enables the driver for the NAND flash controller on the 3198c2ecf20Sopenharmony_ci MXC processors. 3208c2ecf20Sopenharmony_ci 3218c2ecf20Sopenharmony_ciconfig MTD_NAND_SH_FLCTL 3228c2ecf20Sopenharmony_ci tristate "Renesas SuperH FLCTL NAND controller" 3238c2ecf20Sopenharmony_ci depends on SUPERH || COMPILE_TEST 3248c2ecf20Sopenharmony_ci depends on HAS_IOMEM 3258c2ecf20Sopenharmony_ci help 3268c2ecf20Sopenharmony_ci Several Renesas SuperH CPU has FLCTL. This option enables support 3278c2ecf20Sopenharmony_ci for NAND Flash using FLCTL. 3288c2ecf20Sopenharmony_ci 3298c2ecf20Sopenharmony_ciconfig MTD_NAND_DAVINCI 3308c2ecf20Sopenharmony_ci tristate "DaVinci/Keystone NAND controller" 3318c2ecf20Sopenharmony_ci depends on ARCH_DAVINCI || (ARCH_KEYSTONE && TI_AEMIF) || COMPILE_TEST 3328c2ecf20Sopenharmony_ci depends on HAS_IOMEM 3338c2ecf20Sopenharmony_ci help 3348c2ecf20Sopenharmony_ci Enable the driver for NAND flash chips on Texas Instruments 3358c2ecf20Sopenharmony_ci DaVinci/Keystone processors. 3368c2ecf20Sopenharmony_ci 3378c2ecf20Sopenharmony_ciconfig MTD_NAND_TXX9NDFMC 3388c2ecf20Sopenharmony_ci tristate "TXx9 NAND controller" 3398c2ecf20Sopenharmony_ci depends on SOC_TX4938 || SOC_TX4939 || COMPILE_TEST 3408c2ecf20Sopenharmony_ci depends on HAS_IOMEM 3418c2ecf20Sopenharmony_ci help 3428c2ecf20Sopenharmony_ci This enables the NAND flash controller on the TXx9 SoCs. 3438c2ecf20Sopenharmony_ci 3448c2ecf20Sopenharmony_ciconfig MTD_NAND_SOCRATES 3458c2ecf20Sopenharmony_ci tristate "Socrates NAND controller" 3468c2ecf20Sopenharmony_ci depends on SOCRATES 3478c2ecf20Sopenharmony_ci help 3488c2ecf20Sopenharmony_ci Enables support for NAND Flash chips wired onto Socrates board. 3498c2ecf20Sopenharmony_ci 3508c2ecf20Sopenharmony_cisource "drivers/mtd/nand/raw/ingenic/Kconfig" 3518c2ecf20Sopenharmony_ci 3528c2ecf20Sopenharmony_ciconfig MTD_NAND_FSMC 3538c2ecf20Sopenharmony_ci tristate "ST Micros FSMC NAND controller" 3548c2ecf20Sopenharmony_ci depends on OF && HAS_IOMEM 3558c2ecf20Sopenharmony_ci depends on PLAT_SPEAR || ARCH_NOMADIK || ARCH_U8500 || MACH_U300 || \ 3568c2ecf20Sopenharmony_ci COMPILE_TEST 3578c2ecf20Sopenharmony_ci help 3588c2ecf20Sopenharmony_ci Enables support for NAND Flash chips on the ST Microelectronics 3598c2ecf20Sopenharmony_ci Flexible Static Memory Controller (FSMC) 3608c2ecf20Sopenharmony_ci 3618c2ecf20Sopenharmony_ciconfig MTD_NAND_XWAY 3628c2ecf20Sopenharmony_ci bool "Lantiq XWAY NAND controller" 3638c2ecf20Sopenharmony_ci depends on LANTIQ && SOC_TYPE_XWAY 3648c2ecf20Sopenharmony_ci help 3658c2ecf20Sopenharmony_ci Enables support for NAND Flash chips on Lantiq XWAY SoCs. NAND is attached 3668c2ecf20Sopenharmony_ci to the External Bus Unit (EBU). 3678c2ecf20Sopenharmony_ci 3688c2ecf20Sopenharmony_ciconfig MTD_NAND_SUNXI 3698c2ecf20Sopenharmony_ci tristate "Allwinner NAND controller" 3708c2ecf20Sopenharmony_ci depends on ARCH_SUNXI || COMPILE_TEST 3718c2ecf20Sopenharmony_ci depends on HAS_IOMEM 3728c2ecf20Sopenharmony_ci help 3738c2ecf20Sopenharmony_ci Enables support for NAND Flash chips on Allwinner SoCs. 3748c2ecf20Sopenharmony_ci 3758c2ecf20Sopenharmony_ciconfig MTD_NAND_HISI504 3768c2ecf20Sopenharmony_ci tristate "Hisilicon Hip04 NAND controller" 3778c2ecf20Sopenharmony_ci depends on ARCH_HISI || COMPILE_TEST 3788c2ecf20Sopenharmony_ci depends on HAS_IOMEM 3798c2ecf20Sopenharmony_ci help 3808c2ecf20Sopenharmony_ci Enables support for NAND controller on Hisilicon SoC Hip04. 3818c2ecf20Sopenharmony_ci 3828c2ecf20Sopenharmony_ciconfig MTD_NAND_QCOM 3838c2ecf20Sopenharmony_ci tristate "QCOM NAND controller" 3848c2ecf20Sopenharmony_ci depends on ARCH_QCOM || COMPILE_TEST 3858c2ecf20Sopenharmony_ci depends on HAS_IOMEM 3868c2ecf20Sopenharmony_ci help 3878c2ecf20Sopenharmony_ci Enables support for NAND flash chips on SoCs containing the EBI2 NAND 3888c2ecf20Sopenharmony_ci controller. This controller is found on IPQ806x SoC. 3898c2ecf20Sopenharmony_ci 3908c2ecf20Sopenharmony_ciconfig MTD_NAND_MTK 3918c2ecf20Sopenharmony_ci tristate "MTK NAND controller" 3928c2ecf20Sopenharmony_ci depends on ARCH_MEDIATEK || COMPILE_TEST 3938c2ecf20Sopenharmony_ci depends on HAS_IOMEM 3948c2ecf20Sopenharmony_ci help 3958c2ecf20Sopenharmony_ci Enables support for NAND controller on MTK SoCs. 3968c2ecf20Sopenharmony_ci This controller is found on mt27xx, mt81xx, mt65xx SoCs. 3978c2ecf20Sopenharmony_ci 3988c2ecf20Sopenharmony_ciconfig MTD_NAND_MXIC 3998c2ecf20Sopenharmony_ci tristate "Macronix raw NAND controller" 4008c2ecf20Sopenharmony_ci depends on HAS_IOMEM || COMPILE_TEST 4018c2ecf20Sopenharmony_ci help 4028c2ecf20Sopenharmony_ci This selects the Macronix raw NAND controller driver. 4038c2ecf20Sopenharmony_ci 4048c2ecf20Sopenharmony_ciconfig MTD_NAND_TEGRA 4058c2ecf20Sopenharmony_ci tristate "NVIDIA Tegra NAND controller" 4068c2ecf20Sopenharmony_ci depends on ARCH_TEGRA || COMPILE_TEST 4078c2ecf20Sopenharmony_ci depends on HAS_IOMEM 4088c2ecf20Sopenharmony_ci help 4098c2ecf20Sopenharmony_ci Enables support for NAND flash controller on NVIDIA Tegra SoC. 4108c2ecf20Sopenharmony_ci The driver has been developed and tested on a Tegra 2 SoC. DMA 4118c2ecf20Sopenharmony_ci support, raw read/write page as well as HW ECC read/write page 4128c2ecf20Sopenharmony_ci is supported. Extra OOB bytes when using HW ECC are currently 4138c2ecf20Sopenharmony_ci not supported. 4148c2ecf20Sopenharmony_ci 4158c2ecf20Sopenharmony_ciconfig MTD_NAND_STM32_FMC2 4168c2ecf20Sopenharmony_ci tristate "Support for NAND controller on STM32MP SoCs" 4178c2ecf20Sopenharmony_ci depends on MACH_STM32MP157 || COMPILE_TEST 4188c2ecf20Sopenharmony_ci select MFD_SYSCON 4198c2ecf20Sopenharmony_ci help 4208c2ecf20Sopenharmony_ci Enables support for NAND Flash chips on SoCs containing the FMC2 4218c2ecf20Sopenharmony_ci NAND controller. This controller is found on STM32MP SoCs. 4228c2ecf20Sopenharmony_ci The controller supports a maximum 8k page size and supports 4238c2ecf20Sopenharmony_ci a maximum 8-bit correction error per sector of 512 bytes. 4248c2ecf20Sopenharmony_ci 4258c2ecf20Sopenharmony_ciconfig MTD_NAND_MESON 4268c2ecf20Sopenharmony_ci tristate "Support for NAND controller on Amlogic's Meson SoCs" 4278c2ecf20Sopenharmony_ci depends on ARCH_MESON || COMPILE_TEST 4288c2ecf20Sopenharmony_ci select MFD_SYSCON 4298c2ecf20Sopenharmony_ci help 4308c2ecf20Sopenharmony_ci Enables support for NAND controller on Amlogic's Meson SoCs. 4318c2ecf20Sopenharmony_ci This controller is found on Meson SoCs. 4328c2ecf20Sopenharmony_ci 4338c2ecf20Sopenharmony_ciconfig MTD_NAND_GPIO 4348c2ecf20Sopenharmony_ci tristate "GPIO assisted NAND controller" 4358c2ecf20Sopenharmony_ci depends on GPIOLIB || COMPILE_TEST 4368c2ecf20Sopenharmony_ci depends on HAS_IOMEM 4378c2ecf20Sopenharmony_ci help 4388c2ecf20Sopenharmony_ci This enables a NAND flash driver where control signals are 4398c2ecf20Sopenharmony_ci connected to GPIO pins, and commands and data are communicated 4408c2ecf20Sopenharmony_ci via a memory mapped interface. 4418c2ecf20Sopenharmony_ci 4428c2ecf20Sopenharmony_ciconfig MTD_NAND_PLATFORM 4438c2ecf20Sopenharmony_ci tristate "Generic NAND controller" 4448c2ecf20Sopenharmony_ci depends on HAS_IOMEM 4458c2ecf20Sopenharmony_ci help 4468c2ecf20Sopenharmony_ci This implements a generic NAND driver for on-SOC platform 4478c2ecf20Sopenharmony_ci devices. You will need to provide platform-specific functions 4488c2ecf20Sopenharmony_ci via platform_data. 4498c2ecf20Sopenharmony_ci 4508c2ecf20Sopenharmony_ciconfig MTD_NAND_CADENCE 4518c2ecf20Sopenharmony_ci tristate "Support Cadence NAND (HPNFC) controller" 4528c2ecf20Sopenharmony_ci depends on (OF || COMPILE_TEST) && HAS_IOMEM 4538c2ecf20Sopenharmony_ci help 4548c2ecf20Sopenharmony_ci Enable the driver for NAND flash on platforms using a Cadence NAND 4558c2ecf20Sopenharmony_ci controller. 4568c2ecf20Sopenharmony_ci 4578c2ecf20Sopenharmony_ciconfig MTD_NAND_ARASAN 4588c2ecf20Sopenharmony_ci tristate "Support for Arasan NAND flash controller" 4598c2ecf20Sopenharmony_ci depends on HAS_IOMEM && HAS_DMA 4608c2ecf20Sopenharmony_ci select BCH 4618c2ecf20Sopenharmony_ci help 4628c2ecf20Sopenharmony_ci Enables the driver for the Arasan NAND flash controller on 4638c2ecf20Sopenharmony_ci Zynq Ultrascale+ MPSoC. 4648c2ecf20Sopenharmony_ci 4658c2ecf20Sopenharmony_cicomment "Misc" 4668c2ecf20Sopenharmony_ci 4678c2ecf20Sopenharmony_ciconfig MTD_SM_COMMON 4688c2ecf20Sopenharmony_ci tristate 4698c2ecf20Sopenharmony_ci default n 4708c2ecf20Sopenharmony_ci 4718c2ecf20Sopenharmony_ciconfig MTD_NAND_NANDSIM 4728c2ecf20Sopenharmony_ci tristate "Support for NAND Flash Simulator" 4738c2ecf20Sopenharmony_ci help 4748c2ecf20Sopenharmony_ci The simulator may simulate various NAND flash chips for the 4758c2ecf20Sopenharmony_ci MTD nand layer. 4768c2ecf20Sopenharmony_ci 4778c2ecf20Sopenharmony_ciconfig MTD_NAND_RICOH 4788c2ecf20Sopenharmony_ci tristate "Ricoh xD card reader" 4798c2ecf20Sopenharmony_ci default n 4808c2ecf20Sopenharmony_ci depends on PCI 4818c2ecf20Sopenharmony_ci select MTD_SM_COMMON 4828c2ecf20Sopenharmony_ci help 4838c2ecf20Sopenharmony_ci Enable support for Ricoh R5C852 xD card reader 4848c2ecf20Sopenharmony_ci You also need to enable ether 4858c2ecf20Sopenharmony_ci NAND SSFDC (SmartMedia) read only translation layer' or new 4868c2ecf20Sopenharmony_ci expermental, readwrite 4878c2ecf20Sopenharmony_ci 'SmartMedia/xD new translation layer' 4888c2ecf20Sopenharmony_ci 4898c2ecf20Sopenharmony_ciconfig MTD_NAND_DISKONCHIP 4908c2ecf20Sopenharmony_ci tristate "DiskOnChip 2000, Millennium and Millennium Plus (NAND reimplementation)" 4918c2ecf20Sopenharmony_ci depends on HAS_IOMEM 4928c2ecf20Sopenharmony_ci select REED_SOLOMON 4938c2ecf20Sopenharmony_ci select REED_SOLOMON_DEC16 4948c2ecf20Sopenharmony_ci help 4958c2ecf20Sopenharmony_ci This is a reimplementation of M-Systems DiskOnChip 2000, 4968c2ecf20Sopenharmony_ci Millennium and Millennium Plus as a standard NAND device driver, 4978c2ecf20Sopenharmony_ci as opposed to the earlier self-contained MTD device drivers. 4988c2ecf20Sopenharmony_ci This should enable, among other things, proper JFFS2 operation on 4998c2ecf20Sopenharmony_ci these devices. 5008c2ecf20Sopenharmony_ci 5018c2ecf20Sopenharmony_ciconfig MTD_NAND_DISKONCHIP_PROBE_ADVANCED 5028c2ecf20Sopenharmony_ci bool "Advanced detection options for DiskOnChip" 5038c2ecf20Sopenharmony_ci depends on MTD_NAND_DISKONCHIP 5048c2ecf20Sopenharmony_ci help 5058c2ecf20Sopenharmony_ci This option allows you to specify nonstandard address at which to 5068c2ecf20Sopenharmony_ci probe for a DiskOnChip, or to change the detection options. You 5078c2ecf20Sopenharmony_ci are unlikely to need any of this unless you are using LinuxBIOS. 5088c2ecf20Sopenharmony_ci Say 'N'. 5098c2ecf20Sopenharmony_ci 5108c2ecf20Sopenharmony_ciconfig MTD_NAND_DISKONCHIP_PROBE_ADDRESS 5118c2ecf20Sopenharmony_ci hex "Physical address of DiskOnChip" if MTD_NAND_DISKONCHIP_PROBE_ADVANCED 5128c2ecf20Sopenharmony_ci depends on MTD_NAND_DISKONCHIP 5138c2ecf20Sopenharmony_ci default "0" 5148c2ecf20Sopenharmony_ci help 5158c2ecf20Sopenharmony_ci By default, the probe for DiskOnChip devices will look for a 5168c2ecf20Sopenharmony_ci DiskOnChip at every multiple of 0x2000 between 0xC8000 and 0xEE000. 5178c2ecf20Sopenharmony_ci This option allows you to specify a single address at which to probe 5188c2ecf20Sopenharmony_ci for the device, which is useful if you have other devices in that 5198c2ecf20Sopenharmony_ci range which get upset when they are probed. 5208c2ecf20Sopenharmony_ci 5218c2ecf20Sopenharmony_ci (Note that on PowerPC, the normal probe will only check at 5228c2ecf20Sopenharmony_ci 0xE4000000.) 5238c2ecf20Sopenharmony_ci 5248c2ecf20Sopenharmony_ci Normally, you should leave this set to zero, to allow the probe at 5258c2ecf20Sopenharmony_ci the normal addresses. 5268c2ecf20Sopenharmony_ci 5278c2ecf20Sopenharmony_ciconfig MTD_NAND_DISKONCHIP_PROBE_HIGH 5288c2ecf20Sopenharmony_ci bool "Probe high addresses" 5298c2ecf20Sopenharmony_ci depends on MTD_NAND_DISKONCHIP_PROBE_ADVANCED 5308c2ecf20Sopenharmony_ci help 5318c2ecf20Sopenharmony_ci By default, the probe for DiskOnChip devices will look for a 5328c2ecf20Sopenharmony_ci DiskOnChip at every multiple of 0x2000 between 0xC8000 and 0xEE000. 5338c2ecf20Sopenharmony_ci This option changes to make it probe between 0xFFFC8000 and 5348c2ecf20Sopenharmony_ci 0xFFFEE000. Unless you are using LinuxBIOS, this is unlikely to be 5358c2ecf20Sopenharmony_ci useful to you. Say 'N'. 5368c2ecf20Sopenharmony_ci 5378c2ecf20Sopenharmony_ciconfig MTD_NAND_DISKONCHIP_BBTWRITE 5388c2ecf20Sopenharmony_ci bool "Allow BBT writes on DiskOnChip Millennium and 2000TSOP" 5398c2ecf20Sopenharmony_ci depends on MTD_NAND_DISKONCHIP 5408c2ecf20Sopenharmony_ci help 5418c2ecf20Sopenharmony_ci On DiskOnChip devices shipped with the INFTL filesystem (Millennium 5428c2ecf20Sopenharmony_ci and 2000 TSOP/Alon), Linux reserves some space at the end of the 5438c2ecf20Sopenharmony_ci device for the Bad Block Table (BBT). If you have existing INFTL 5448c2ecf20Sopenharmony_ci data on your device (created by non-Linux tools such as M-Systems' 5458c2ecf20Sopenharmony_ci DOS drivers), your data might overlap the area Linux wants to use for 5468c2ecf20Sopenharmony_ci the BBT. If this is a concern for you, leave this option disabled and 5478c2ecf20Sopenharmony_ci Linux will not write BBT data into this area. 5488c2ecf20Sopenharmony_ci The downside of leaving this option disabled is that if bad blocks 5498c2ecf20Sopenharmony_ci are detected by Linux, they will not be recorded in the BBT, which 5508c2ecf20Sopenharmony_ci could cause future problems. 5518c2ecf20Sopenharmony_ci Once you enable this option, new filesystems (INFTL or others, created 5528c2ecf20Sopenharmony_ci in Linux or other operating systems) will not use the reserved area. 5538c2ecf20Sopenharmony_ci The only reason not to enable this option is to prevent damage to 5548c2ecf20Sopenharmony_ci preexisting filesystems. 5558c2ecf20Sopenharmony_ci Even if you leave this disabled, you can enable BBT writes at module 5568c2ecf20Sopenharmony_ci load time (assuming you build diskonchip as a module) with the module 5578c2ecf20Sopenharmony_ci parameter "inftl_bbt_write=1". 5588c2ecf20Sopenharmony_ci 5598c2ecf20Sopenharmony_ciendif # MTD_RAW_NAND 560