|
@@ -145,6 +145,7 @@
|
|
|
#define NFC_ECC_PIPELINE BIT(3)
|
|
|
#define NFC_ECC_EXCEPTION BIT(4)
|
|
|
#define NFC_ECC_BLOCK_SIZE_MSK BIT(5)
|
|
|
+#define NFC_ECC_BLOCK_512 BIT(5)
|
|
|
#define NFC_RANDOM_EN BIT(9)
|
|
|
#define NFC_RANDOM_DIRECTION BIT(10)
|
|
|
#define NFC_ECC_MODE_MSK GENMASK(15, 12)
|
|
@@ -817,6 +818,9 @@ static void sunxi_nfc_hw_ecc_enable(struct mtd_info *mtd)
|
|
|
ecc_ctl |= NFC_ECC_EN | NFC_ECC_MODE(data->mode) | NFC_ECC_EXCEPTION |
|
|
|
NFC_ECC_PIPELINE;
|
|
|
|
|
|
+ if (nand->ecc.size == 512)
|
|
|
+ ecc_ctl |= NFC_ECC_BLOCK_512;
|
|
|
+
|
|
|
writel(ecc_ctl, nfc->regs + NFC_REG_ECC_CTL);
|
|
|
}
|
|
|
|