global: Move remaining CONFIG_SYS_NAND_* to CFG_SYS_NAND_*
[platform/kernel/u-boot.git] / drivers / mtd / nand / raw / fsl_ifc_nand.c
index 29f30d8..59de325 100644 (file)
@@ -7,8 +7,10 @@
  */
 
 #include <common.h>
+#include <command.h>
 #include <malloc.h>
 #include <nand.h>
+#include <dm/devres.h>
 
 #include <linux/mtd/mtd.h>
 #include <linux/mtd/rawnand.h>
@@ -409,9 +411,16 @@ static void fsl_ifc_cmdfunc(struct mtd_info *mtd, unsigned int command,
        /* READID must read all possible bytes while CEB is active */
        case NAND_CMD_READID:
        case NAND_CMD_PARAM: {
+               /*
+                * For READID, read 8 bytes that are currently used.
+                * For PARAM, read all 3 copies of 256-bytes pages.
+                */
+               int len = 8;
                int timing = IFC_FIR_OP_RB;
-               if (command == NAND_CMD_PARAM)
+               if (command == NAND_CMD_PARAM) {
                        timing = IFC_FIR_OP_RBCD;
+                       len = 256 * 3;
+               }
 
                ifc_out32(&ifc->ifc_nand.nand_fir0,
                          (IFC_FIR_OP_CW0 << IFC_NAND_FIR0_OP0_SHIFT) |
@@ -421,12 +430,8 @@ static void fsl_ifc_cmdfunc(struct mtd_info *mtd, unsigned int command,
                          command << IFC_NAND_FCR0_CMD0_SHIFT);
                ifc_out32(&ifc->ifc_nand.row3, column);
 
-               /*
-                * although currently it's 8 bytes for READID, we always read
-                * the maximum 256 bytes(for PARAM)
-                */
-               ifc_out32(&ifc->ifc_nand.nand_fbcr, 256);
-               ctrl->read_bytes = 256;
+               ifc_out32(&ifc->ifc_nand.nand_fbcr, len);
+               ctrl->read_bytes = len;
 
                set_addr(mtd, 0, 0, 0);
                fsl_ifc_run_command(mtd);
@@ -1048,12 +1053,12 @@ static int fsl_ifc_chip_init(int devnum, u8 *addr)
        return 0;
 }
 
-#ifndef CONFIG_SYS_NAND_BASE_LIST
-#define CONFIG_SYS_NAND_BASE_LIST { CONFIG_SYS_NAND_BASE }
+#ifndef CFG_SYS_NAND_BASE_LIST
+#define CFG_SYS_NAND_BASE_LIST { CFG_SYS_NAND_BASE }
 #endif
 
 static unsigned long base_address[CONFIG_SYS_MAX_NAND_DEVICE] =
-       CONFIG_SYS_NAND_BASE_LIST;
+       CFG_SYS_NAND_BASE_LIST;
 
 void board_nand_init(void)
 {