mtd: atmel_nand: check NFC busy flag by HSMC_SR instead of NFC cmd regs
authorBoris Brezillon <boris.brezillon@free-electrons.com>
Thu, 22 Jan 2015 10:21:30 +0000 (18:21 +0800)
committerBrian Norris <computersforpeace@gmail.com>
Wed, 11 Mar 2015 16:49:28 +0000 (09:49 -0700)
Currently the driver read NFC command registers to get NFC busy flag.
Actually this flag also can be get by reading HSMC_SR register.

Use the read NFC command registers need mapping a huge memory region.
To save the mapped memory region, we change to check NFC busy flag by
reading HSMC_SR register.

Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
Signed-off-by: Josh Wu <josh.wu@atmel.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
drivers/mtd/nand/atmel_nand.c
drivers/mtd/nand/atmel_nand_nfc.h

index 1310450..feaac90 100644 (file)
@@ -1752,11 +1752,10 @@ static int nfc_send_command(struct atmel_nand_host *host,
                cmd, addr, cycle0);
 
        timeout = jiffies + msecs_to_jiffies(NFC_TIME_OUT_MS);
-       while (nfc_cmd_readl(NFCADDR_CMD_NFCBUSY, host->nfc->base_cmd_regs)
-                       & NFCADDR_CMD_NFCBUSY) {
+       while (nfc_readl(host->nfc->hsmc_regs, SR) & NFC_SR_BUSY) {
                if (time_after(jiffies, timeout)) {
                        dev_err(host->dev,
-                               "Time out to wait CMD_NFCBUSY ready!\n");
+                               "Time out to wait for NFC ready!\n");
                        return -ETIMEDOUT;
                }
        }
index 85b8ca6..4d5d262 100644 (file)
@@ -35,6 +35,7 @@
 #define                NFC_CTRL_DISABLE        (1 << 1)
 
 #define ATMEL_HSMC_NFC_SR      0x08            /* NFC Status Register */
+#define                NFC_SR_BUSY             (1 << 8)
 #define                NFC_SR_XFR_DONE         (1 << 16)
 #define                NFC_SR_CMD_DONE         (1 << 17)
 #define                NFC_SR_DTOE             (1 << 20)