Use generic macros for ECC_MODE and RANDOM_SEED

As H6/H616 registers are different, use more generic macros than hard
coded values specific to A10-like SoC.

No functional changes.

Signed-off-by: Richard Genoud <[email protected]>
---
 drivers/mtd/nand/raw/sunxi_nand_spl.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/mtd/nand/raw/sunxi_nand_spl.c 
b/drivers/mtd/nand/raw/sunxi_nand_spl.c
index 42899c9417c5..0698db95b9c2 100644
--- a/drivers/mtd/nand/raw/sunxi_nand_spl.c
+++ b/drivers/mtd/nand/raw/sunxi_nand_spl.c
@@ -57,6 +57,7 @@ __maybe_unused static const struct sunxi_nfc_caps 
sunxi_nfc_a10_caps = {
        .reg_spare_area = NFC_REG_A10_SPARE_AREA,
        .reg_pat_found = NFC_REG_ECC_ST,
        .pat_found_mask = GENMASK(31, 16),
+       .ecc_mode_mask = GENMASK(15, 12),
        .ecc_err_mask = GENMASK(15, 0),
        .random_en_mask = BIT(9),
 };
@@ -228,7 +229,9 @@ static int nand_read_page(const struct nfc_config *conf, 
u32 offs,
 
                /* Clear ECC status and restart ECC engine */
                writel(0, SUNXI_NFC_BASE + NFC_REG_ECC_ST);
-               writel((rand_seed << 16) | (conf->ecc_strength << 12) |
+
+               writel(NFC_RANDOM_SEED(rand_seed) |
+                      NFC_ECC_MODE(conf, conf->ecc_strength) |
                       (conf->randomize ? NFC_RANDOM_EN(conf) : 0) |
                       ecc512_bit |
                       NFC_ECC_EN | NFC_ECC_EXCEPTION,

Reply via email to