xref: /openbmc/linux/drivers/mtd/nand/Kconfig (revision 9c73e1e0)
1# SPDX-License-Identifier: GPL-2.0-only
2
3menu "NAND"
4
5config MTD_NAND_CORE
6	tristate
7
8source "drivers/mtd/nand/onenand/Kconfig"
9source "drivers/mtd/nand/raw/Kconfig"
10source "drivers/mtd/nand/spi/Kconfig"
11
12menu "ECC engine support"
13
14config MTD_NAND_ECC
15       bool
16       select MTD_NAND_CORE
17
18config MTD_NAND_ECC_SW_HAMMING
19	bool "Software Hamming ECC engine"
20	default y if MTD_RAW_NAND
21	select MTD_NAND_ECC
22	help
23	  This enables support for software Hamming error
24	  correction. This correction can correct up to 1 bit error
25	  per chunk and detect up to 2 bit errors. While it used to be
26	  widely used with old parts, newer NAND chips usually require
27	  more strength correction and in this case BCH or RS will be
28	  preferred.
29
30config MTD_NAND_ECC_SW_HAMMING_SMC
31	bool "NAND ECC Smart Media byte order"
32	depends on MTD_NAND_ECC_SW_HAMMING
33	default n
34	help
35	  Software ECC according to the Smart Media Specification.
36	  The original Linux implementation had byte 0 and 1 swapped.
37
38config MTD_NAND_ECC_SW_BCH
39	bool "Software BCH ECC engine"
40	select BCH
41	select MTD_NAND_ECC
42	default n
43	help
44	  This enables support for software BCH error correction. Binary BCH
45	  codes are more powerful and cpu intensive than traditional Hamming
46	  ECC codes. They are used with NAND devices requiring more than 1 bit
47	  of error correction.
48
49config MTD_NAND_ECC_MXIC
50	bool "Macronix external hardware ECC engine"
51	depends on HAS_IOMEM
52	select MTD_NAND_ECC
53	help
54	  This enables support for the hardware ECC engine from Macronix.
55
56config MTD_NAND_ECC_MEDIATEK
57	tristate "Mediatek hardware ECC engine"
58	depends on HAS_IOMEM
59	depends on ARCH_MEDIATEK || COMPILE_TEST
60	select MTD_NAND_ECC
61	help
62	  This enables support for the hardware ECC engine from Mediatek.
63
64endmenu
65
66endmenu
67