]> git.ipfire.org Git - thirdparty/u-boot.git/commitdiff
zynq: nand: Fix SET_FEATURES issue for OnDie ECC NAND
authorJagannadha Sutradharudu Teki <jagannadha.sutradharudu-teki@xilinx.com>
Fri, 7 Dec 2012 09:53:38 +0000 (15:23 +0530)
committerMichal Simek <michal.simek@xilinx.com>
Fri, 7 Dec 2012 10:44:26 +0000 (11:44 +0100)
Use writeb in place of write_buf to set features used to
enable OnDie ECC.

Signed-off-by: Jagannadha Sutradharudu Teki <jaganna@xilinx.com>
drivers/mtd/nand/zynq_nand.c

index 4f2c9443d1b17992687a789b3e995f32a87ce1a8..fc1018e777afa1e7e24f3a75a03955af764492cb 100644 (file)
@@ -1022,7 +1022,7 @@ int zynq_nand_init(struct nand_chip *nand_chip)
        extern struct mtd_info nand_info[];
        unsigned long ecc_page_size;
        int err = 0;
-       u8 maf_id, dev_id;
+       u8 maf_id, dev_id, i;
        u8 get_feature[4];
        u8 set_feature[4] = {0x08, 0x00, 0x00, 0x00};
        unsigned long ecc_cfg;
@@ -1093,7 +1093,12 @@ int zynq_nand_init(struct nand_chip *nand_chip)
                                (dev_id == 0xd3) || (dev_id == 0xc3))) {
                nand_chip->cmdfunc(mtd, NAND_CMD_SET_FEATURES,
                                                ONDIE_ECC_FEATURE_ADDR, -1);
-               nand_chip->write_buf(mtd, set_feature, 4);
+
+               for (i = 0; i < 4; i++)
+                       writeb(set_feature[i], nand_chip->IO_ADDR_W);
+
+               /* wait for 1us after writing data with SET_FEATURES command */
+               ndelay(1000);
 
                nand_chip->cmdfunc(mtd, NAND_CMD_GET_FEATURES,
                                                ONDIE_ECC_FEATURE_ADDR, -1);