diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2010-11-10 11:28:23 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2010-11-12 08:08:01 +0100 |
commit | 22180f96b1e301f2ed9eb2b8756a972816a06ffa (patch) | |
tree | 9064bbae4a4542c8eb179fd82b8caec30c50c85b /drivers | |
parent | a0fc5252a79186fb179dd0c2765f8eb4d717de61 (diff) | |
download | barebox-22180f96b1e301f2ed9eb2b8756a972816a06ffa.tar.gz barebox-22180f96b1e301f2ed9eb2b8756a972816a06ffa.tar.xz |
imx nand: do not read-modify-write SPAS register
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/mtd/nand/nand_imx.c | 31 |
1 files changed, 8 insertions, 23 deletions
diff --git a/drivers/mtd/nand/nand_imx.c b/drivers/mtd/nand/nand_imx.c index 22251e42a6..62a23d5aa3 100644 --- a/drivers/mtd/nand/nand_imx.c +++ b/drivers/mtd/nand/nand_imx.c @@ -975,19 +975,11 @@ static int __init imxnd_probe(struct device_d *dev) if (mtd->writesize == 2048) { this->ecc.layout = oob_largepage; host->pagesize_2k = 1; - if (nfc_is_v21()) { - tmp = readw(host->regs + NFC_SPAS); - tmp &= 0xff00; - tmp |= NFC_SPAS_64; - writew(tmp, host->regs + NFC_SPAS); - } + if (nfc_is_v21()) + writew(NFC_SPAS_64, host->regs + NFC_SPAS); } else { - if (nfc_is_v21()) { - tmp = readw(host->regs + NFC_SPAS); - tmp &= 0xff00; - tmp |= NFC_SPAS_16; - writew(tmp, host->regs + NFC_SPAS); - } + if (nfc_is_v21()) + writew(NFC_SPAS_16, host->regs + NFC_SPAS); } /* second phase scan */ @@ -1186,17 +1178,10 @@ void __nand_boot_init imx_nand_load_image(void *dest, int size) writew(tmp, regs + NFC_CONFIG1); if (nfc_is_v21()) { - if (pagesize_2k) { - tmp = readw(regs + NFC_SPAS); - tmp &= 0xff00; - tmp |= NFC_SPAS_64; - writew(tmp, regs + NFC_SPAS); - } else { - tmp = readw(regs + NFC_SPAS); - tmp &= 0xff00; - tmp |= NFC_SPAS_16; - writew(tmp, regs + NFC_SPAS); - } + if (pagesize_2k) + writew(NFC_SPAS_64, regs + NFC_SPAS); + else + writew(NFC_SPAS_16, regs + NFC_SPAS); } block = page = 0; |