summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorTom Rini <trini@konsulko.com>2022-11-13 01:36:45 +0300
committerTom Rini <trini@konsulko.com>2022-12-06 00:05:38 +0300
commit41fa8f471d41fd42a249e3f24e5ecb2fa8f1b1d4 (patch)
treea013b5cd6b9d4a6081e039198b1d133ba4e0ee8e /drivers
parent60db32502c7f5d54c4cd4e485b95204166a83678 (diff)
downloadu-boot-41fa8f471d41fd42a249e3f24e5ecb2fa8f1b1d4.tar.xz
Convert CONFIG_SYS_NAND_HW_ECC to Kconfig
This converts the following to Kconfig: CONFIG_SYS_NAND_HW_ECC Signed-off-by: Tom Rini <trini@konsulko.com> Reviewed-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/mtd/nand/raw/Kconfig14
-rw-r--r--drivers/mtd/nand/raw/davinci_nand.c7
2 files changed, 16 insertions, 5 deletions
diff --git a/drivers/mtd/nand/raw/Kconfig b/drivers/mtd/nand/raw/Kconfig
index 49b7a4b04b..0e428418b2 100644
--- a/drivers/mtd/nand/raw/Kconfig
+++ b/drivers/mtd/nand/raw/Kconfig
@@ -148,9 +148,21 @@ config NAND_DAVINCI
Enable this driver for NAND flash controllers available in TI Davinci
and Keystone2 platforms
+choice
+ prompt "Type of ECC used on NAND"
+ default SYS_NAND_4BIT_HW_ECC_OOBFIRST
+ depends on NAND_DAVINCI
+
+config SYS_NAND_HW_ECC
+ bool "Use 1-bit HW ECC"
+
config SYS_NAND_4BIT_HW_ECC_OOBFIRST
bool "Use 4-bit HW ECC with OOB at the front"
- depends on NAND_DAVINCI
+
+config SYS_NAND_SOFT_ECC
+ bool "Use software ECC"
+
+endchoice
config KEYSTONE_RBL_NAND
depends on ARCH_KEYSTONE
diff --git a/drivers/mtd/nand/raw/davinci_nand.c b/drivers/mtd/nand/raw/davinci_nand.c
index 9158d94de2..54aed13638 100644
--- a/drivers/mtd/nand/raw/davinci_nand.c
+++ b/drivers/mtd/nand/raw/davinci_nand.c
@@ -766,10 +766,7 @@ static void davinci_nand_init(struct nand_chip *nand)
nand->ecc.calculate = nand_davinci_calculate_ecc;
nand->ecc.correct = nand_davinci_correct_data;
nand->ecc.hwctl = nand_davinci_enable_hwecc;
-#else
- nand->ecc.mode = NAND_ECC_SOFT;
-#endif /* CONFIG_SYS_NAND_HW_ECC */
-#ifdef CONFIG_SYS_NAND_4BIT_HW_ECC_OOBFIRST
+#elif defined(CONFIG_SYS_NAND_4BIT_HW_ECC_OOBFIRST)
nand->ecc.mode = NAND_ECC_HW_OOB_FIRST;
nand->ecc.size = 512;
nand->ecc.bytes = 10;
@@ -778,6 +775,8 @@ static void davinci_nand_init(struct nand_chip *nand)
nand->ecc.correct = nand_davinci_4bit_correct_data;
nand->ecc.hwctl = nand_davinci_4bit_enable_hwecc;
nand->ecc.layout = &nand_davinci_4bit_layout_oobfirst;
+#elif defined(CONFIG_SYS_NAND_SOFT_ECC)
+ nand->ecc.mode = NAND_ECC_SOFT;
#endif
/* Set address of hardware control function */
nand->cmd_ctrl = nand_davinci_hwcontrol;