xref: /linux/drivers/mtd/nand/Kconfig (revision 4f2c0a4acffbec01079c28f839422e64ddeff004)
1ec8f24b7SThomas Gleixner# SPDX-License-Identifier: GPL-2.0-only
2deedeb60SMiquel Raynal
3deedeb60SMiquel Raynalmenu "NAND"
4deedeb60SMiquel Raynal
59c3736a3SBoris Brezillonconfig MTD_NAND_CORE
69c3736a3SBoris Brezillon	tristate
79c3736a3SBoris Brezillon
826777d37SBoris Brezillonsource "drivers/mtd/nand/onenand/Kconfig"
993db446aSBoris Brezillonsource "drivers/mtd/nand/raw/Kconfig"
107529df46SPeter Pansource "drivers/mtd/nand/spi/Kconfig"
11deedeb60SMiquel Raynal
12a8c7ffdbSMiquel Raynalmenu "ECC engine support"
13a8c7ffdbSMiquel Raynal
14a8c7ffdbSMiquel Raynalconfig MTD_NAND_ECC
15a8c7ffdbSMiquel Raynal       bool
16928f0736SMiquel Raynal       select MTD_NAND_CORE
17a8c7ffdbSMiquel Raynal
18e5acf9c8SMiquel Raynalconfig MTD_NAND_ECC_SW_HAMMING
195180a62cSMiquel Raynal	bool "Software Hamming ECC engine"
205180a62cSMiquel Raynal	default y if MTD_RAW_NAND
215180a62cSMiquel Raynal	select MTD_NAND_ECC
225180a62cSMiquel Raynal	help
235180a62cSMiquel Raynal	  This enables support for software Hamming error
245180a62cSMiquel Raynal	  correction. This correction can correct up to 1 bit error
255180a62cSMiquel Raynal	  per chunk and detect up to 2 bit errors. While it used to be
265180a62cSMiquel Raynal	  widely used with old parts, newer NAND chips usually require
275180a62cSMiquel Raynal	  more strength correction and in this case BCH or RS will be
285180a62cSMiquel Raynal	  preferred.
29e5acf9c8SMiquel Raynal
30e5acf9c8SMiquel Raynalconfig MTD_NAND_ECC_SW_HAMMING_SMC
31e5acf9c8SMiquel Raynal	bool "NAND ECC Smart Media byte order"
32e5acf9c8SMiquel Raynal	depends on MTD_NAND_ECC_SW_HAMMING
33e5acf9c8SMiquel Raynal	default n
34e5acf9c8SMiquel Raynal	help
35e5acf9c8SMiquel Raynal	  Software ECC according to the Smart Media Specification.
36e5acf9c8SMiquel Raynal	  The original Linux implementation had byte 0 and 1 swapped.
37e5acf9c8SMiquel Raynal
38cdbe8df5SMiquel Raynalconfig MTD_NAND_ECC_SW_BCH
39cdbe8df5SMiquel Raynal	bool "Software BCH ECC engine"
40cdbe8df5SMiquel Raynal	select BCH
41cdbe8df5SMiquel Raynal	select MTD_NAND_ECC
42cdbe8df5SMiquel Raynal	default n
43cdbe8df5SMiquel Raynal	help
44cdbe8df5SMiquel Raynal	  This enables support for software BCH error correction. Binary BCH
45cdbe8df5SMiquel Raynal	  codes are more powerful and cpu intensive than traditional Hamming
46cdbe8df5SMiquel Raynal	  ECC codes. They are used with NAND devices requiring more than 1 bit
47cdbe8df5SMiquel Raynal	  of error correction.
48cdbe8df5SMiquel Raynal
4948e6633aSMiquel Raynalconfig MTD_NAND_ECC_MXIC
5048e6633aSMiquel Raynal	bool "Macronix external hardware ECC engine"
518f877b7eSMiquel Raynal	depends on HAS_IOMEM
5248e6633aSMiquel Raynal	select MTD_NAND_ECC
5348e6633aSMiquel Raynal	help
5448e6633aSMiquel Raynal	  This enables support for the hardware ECC engine from Macronix.
5548e6633aSMiquel Raynal
564fd62f15SChuanhong Guoconfig MTD_NAND_ECC_MEDIATEK
574fd62f15SChuanhong Guo	tristate "Mediatek hardware ECC engine"
584fd62f15SChuanhong Guo	depends on HAS_IOMEM
59*66d7a40bSGeert Uytterhoeven	depends on ARCH_MEDIATEK || COMPILE_TEST
604fd62f15SChuanhong Guo	select MTD_NAND_ECC
614fd62f15SChuanhong Guo	help
624fd62f15SChuanhong Guo	  This enables support for the hardware ECC engine from Mediatek.
634fd62f15SChuanhong Guo
64a8c7ffdbSMiquel Raynalendmenu
65a8c7ffdbSMiquel Raynal
66deedeb60SMiquel Raynalendmenu
67