NAND: Davinci driver updates
authorSergey Kubushyn <ksi@koi8.net>
Wed, 9 Jan 2008 14:36:20 +0000 (15:36 +0100)
committerScott Wood <scottwood@freescale.com>
Tue, 12 Aug 2008 16:31:24 +0000 (11:31 -0500)
Here comes a trivial patch to cpu/arm926ejs/davinci/nand.c. Unfortunately I
don't have hardware handy so I can not test it at the moment but changes are
rather trivial so it should work. It would be nice if somebody with a
hardware checked it anyways.

Signed-off-by: Sergey Kubushyn <ksi@koi8.net>
cpu/arm926ejs/davinci/nand.c

index 6afd4d252e7b05b7e472e50b92fe9cbc86d1dcc8..8fd784e7906011ae86796eecbea2f295b1627c0a 100644 (file)
@@ -89,18 +89,27 @@ static void nand_davinci_select_chip(struct mtd_info *mtd, int chip)
 
 #ifdef CFG_NAND_HW_ECC
 #ifdef CFG_NAND_LARGEPAGE
-static struct nand_oobinfo davinci_nand_oobinfo = {
+static struct nand_ecclayout davinci_nand_ecclayout = {
        .useecc = MTD_NANDECC_AUTOPLACE,
        .eccbytes = 12,
        .eccpos = {8, 9, 10, 24, 25, 26, 40, 41, 42, 56, 57, 58},
-       .oobfree = { {2, 6}, {12, 12}, {28, 12}, {44, 12}, {60, 4} }
+       .oobfree = {
+               {.offset = 2, .length = 6},
+               {.offset = 12, .length = 12},
+               {.offset = 28, .length = 12},
+               {.offset = 44, .length = 12},
+               {.offset = 60, .length = 4}
+       }
 };
 #elif defined(CFG_NAND_SMALLPAGE)
-static struct nand_oobinfo davinci_nand_oobinfo = {
+static struct nand_ecclayout davinci_nand_ecclayout = {
        .useecc = MTD_NANDECC_AUTOPLACE,
        .eccbytes = 3,
        .eccpos = {0, 1, 2},
-       .oobfree = { {6, 2}, {8, 8} }
+       .oobfree = {
+               {.offset = 6, .length = 2},
+               {.offset = 8, .length = 8}
+       }
 };
 #else
 #error "Either CFG_NAND_LARGEPAGE or CFG_NAND_SMALLPAGE must be defined!"
@@ -373,7 +382,7 @@ int board_nand_init(struct nand_chip *nand)
 #else
 #error "Either CFG_NAND_LARGEPAGE or CFG_NAND_SMALLPAGE must be defined!"
 #endif
-/*     nand->autooob     = &davinci_nand_oobinfo; */
+       nand->ecc.layout  = &davinci_nand_ecclayout;
        nand->ecc.calculate = nand_davinci_calculate_ecc;
        nand->ecc.correct  = nand_davinci_correct_data;
        nand->ecc.hwctl  = nand_davinci_enable_hwecc;