mirror of
https://source.denx.de/u-boot/u-boot.git
synced 2026-05-05 04:36:13 +02:00
mtd: rawnand: sunxi: move NFC_ECC_MODE offset in SoC caps
NFC_ECC_MODE register offset moved in H616, so let's make it a SoC cap No functional change. Signed-off-by: Richard Genoud <richard.genoud@bootlin.com> Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
This commit is contained in:
parent
f5178513a4
commit
b4c005d622
@ -659,10 +659,11 @@ static void sunxi_nfc_hw_ecc_enable(struct mtd_info *mtd)
|
||||
u32 ecc_ctl;
|
||||
|
||||
ecc_ctl = readl(nfc->regs + NFC_REG_ECC_CTL);
|
||||
ecc_ctl &= ~(NFC_ECC_MODE_MSK | NFC_ECC_PIPELINE);
|
||||
ecc_ctl &= ~(NFC_ECC_MODE_MSK(nfc) | NFC_ECC_PIPELINE);
|
||||
if (nfc->caps->has_ecc_block_512)
|
||||
ecc_ctl &= ~NFC_ECC_BLOCK_512;
|
||||
ecc_ctl |= NFC_ECC_EN | NFC_ECC_MODE(data->mode) | NFC_ECC_EXCEPTION;
|
||||
ecc_ctl |= NFC_ECC_EN | NFC_ECC_MODE(nfc, data->mode)
|
||||
| NFC_ECC_EXCEPTION;
|
||||
|
||||
if (nand->ecc.size == 512 && nfc->caps->has_ecc_block_512)
|
||||
ecc_ctl |= NFC_ECC_BLOCK_512;
|
||||
@ -1727,6 +1728,7 @@ static const struct sunxi_nfc_caps sunxi_nfc_a10_caps = {
|
||||
.reg_user_data = NFC_REG_A10_USER_DATA,
|
||||
.reg_pat_found = NFC_REG_ECC_ST,
|
||||
.pat_found_mask = GENMASK(31, 16),
|
||||
.ecc_mode_mask = GENMASK(15, 12),
|
||||
};
|
||||
|
||||
static const struct udevice_id sunxi_nand_ids[] = {
|
||||
|
||||
@ -25,8 +25,9 @@
|
||||
|
||||
#include <linux/bitops.h>
|
||||
|
||||
/* non compile-time field get */
|
||||
/* non compile-time field get/prep */
|
||||
#define field_get(_mask, _reg) (((_reg) & (_mask)) >> (ffs(_mask) - 1))
|
||||
#define field_prep(_mask, _val) (((_val) << (ffs(_mask) - 1)) & (_mask))
|
||||
|
||||
#define NFC_REG_CTL 0x0000
|
||||
#define NFC_REG_ST 0x0004
|
||||
@ -141,8 +142,8 @@
|
||||
#define NFC_ECC_BLOCK_512 BIT(5)
|
||||
#define NFC_RANDOM_EN BIT(9)
|
||||
#define NFC_RANDOM_DIRECTION BIT(10)
|
||||
#define NFC_ECC_MODE_MSK (0xf << 12)
|
||||
#define NFC_ECC_MODE(x) ((x) << 12)
|
||||
#define NFC_ECC_MODE_MSK(nfc) ((nfc)->caps->ecc_mode_mask)
|
||||
#define NFC_ECC_MODE(nfc, x) field_prep(NFC_ECC_MODE_MSK(nfc), (x))
|
||||
#define NFC_RANDOM_SEED_MSK (0x7fff << 16)
|
||||
#define NFC_RANDOM_SEED(x) ((x) << 16)
|
||||
|
||||
@ -174,6 +175,7 @@
|
||||
* @reg_user_data: User data 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
|
||||
*/
|
||||
struct sunxi_nfc_caps {
|
||||
bool has_ecc_block_512;
|
||||
@ -182,6 +184,7 @@ struct sunxi_nfc_caps {
|
||||
unsigned int reg_user_data;
|
||||
unsigned int reg_pat_found;
|
||||
unsigned int pat_found_mask;
|
||||
unsigned int ecc_mode_mask;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user