diff options
| author | Richard Genoud <[email protected]> | 2026-01-23 12:44:48 +0100 |
|---|---|---|
| committer | Michael Trimarchi <[email protected]> | 2026-02-03 21:44:53 +0100 |
| commit | 9edd503aadac826a279b2b36cd537cfeb6a8296e (patch) | |
| tree | 917326f9ca7ebc88132407462fca01a4c7b1513c /drivers/mtd | |
| parent | b4c005d6222bc21b6c25be04399e14cd97ff9577 (diff) | |
mtd: rawnand: sunxi: introduce reg_pat_id in sunxi_nfc_caps
Introduce NDFC Pattern ID Register in capability structure
The H6/H616 pattern ID register is not at the same offset as the
A10/A23 one, so move its offset into sunxi_nfc_caps.
No functional change.
Signed-off-by: Richard Genoud <[email protected]>
Signed-off-by: Michael Trimarchi <[email protected]>
Diffstat (limited to 'drivers/mtd')
| -rw-r--r-- | drivers/mtd/nand/raw/sunxi_nand.c | 3 | ||||
| -rw-r--r-- | drivers/mtd/nand/raw/sunxi_nand.h | 5 |
2 files changed, 6 insertions, 2 deletions
diff --git a/drivers/mtd/nand/raw/sunxi_nand.c b/drivers/mtd/nand/raw/sunxi_nand.c index c5efafa2414..c032cabb4dc 100644 --- a/drivers/mtd/nand/raw/sunxi_nand.c +++ b/drivers/mtd/nand/raw/sunxi_nand.c @@ -731,7 +731,7 @@ static int sunxi_nfc_hw_ecc_read_chunk(struct mtd_info *mtd, if (pattern_found & NFC_ECC_PAT_FOUND(0)) { u8 pattern = 0xff; - if (unlikely(!(readl(nfc->regs + NFC_REG_PAT_ID) & 0x1))) + if (unlikely(!(readl(nfc->regs + NFC_REG_PAT_ID(nfc)) & 0x1))) pattern = 0x0; memset(data, pattern, ecc->size); @@ -1727,6 +1727,7 @@ static const struct sunxi_nfc_caps sunxi_nfc_a10_caps = { .reg_ecc_err_cnt = NFC_REG_A10_ECC_ERR_CNT, .reg_user_data = NFC_REG_A10_USER_DATA, .reg_pat_found = NFC_REG_ECC_ST, + .reg_pat_id = NFC_REG_A10_PAT_ID, .pat_found_mask = GENMASK(31, 16), .ecc_mode_mask = GENMASK(15, 12), }; diff --git a/drivers/mtd/nand/raw/sunxi_nand.h b/drivers/mtd/nand/raw/sunxi_nand.h index 3b155b0c8f3..e18feb77c93 100644 --- a/drivers/mtd/nand/raw/sunxi_nand.h +++ b/drivers/mtd/nand/raw/sunxi_nand.h @@ -50,7 +50,8 @@ #define NFC_REG_A10_USER_DATA 0x0050 #define NFC_REG_USER_DATA(nfc, x) ((nfc)->caps->reg_user_data + ((x) * 4)) #define NFC_REG_SPARE_AREA 0x00A0 -#define NFC_REG_PAT_ID 0x00A4 +#define NFC_REG_PAT_ID(nfc) ((nfc)->caps->reg_pat_id) +#define NFC_REG_A10_PAT_ID 0x00A4 #define NFC_RAM0_BASE 0x0400 #define NFC_RAM1_BASE 0x0800 @@ -173,6 +174,7 @@ * @nstrengths: Number of element of ECC strengths array * @reg_ecc_err_cnt: ECC error counter register * @reg_user_data: User data register + * @reg_pat_id: Pattern ID Register * @reg_pat_found: Data Pattern Status Register * @pat_found_mask: ECC_PAT_FOUND mask in NFC_REG_PAT_FOUND register * @ecc_mode_mask: ECC_MODE mask in NFC_ECC_CTL register @@ -182,6 +184,7 @@ struct sunxi_nfc_caps { unsigned int nstrengths; unsigned int reg_ecc_err_cnt; unsigned int reg_user_data; + unsigned int reg_pat_id; unsigned int reg_pat_found; unsigned int pat_found_mask; unsigned int ecc_mode_mask; |
