xref: /openbmc/linux/drivers/mtd/nand/Kconfig (revision 0ad53fe3)
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
49endmenu
50
51endmenu
52