diff options
Diffstat (limited to 'drivers/nand/nand.c')
-rw-r--r-- | drivers/nand/nand.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/drivers/nand/nand.c b/drivers/nand/nand.c index 3899045a72c..47f52886a63 100644 --- a/drivers/nand/nand.c +++ b/drivers/nand/nand.c @@ -47,14 +47,24 @@ static void nand_init_chip(struct mtd_info *mtd, struct nand_chip *nand, mtd->priv = nand; nand->IO_ADDR_R = nand->IO_ADDR_W = (void __iomem *)base_addr; + + nand->options = 0; /* Search for 8 bits devices */ board_nand_init(nand); if (nand_scan(mtd, 1) == 0) { if (!mtd->name) mtd->name = (char *)default_nand_name; - } else - mtd->name = NULL; + } else { + nand->options = NAND_BUSWIDTH_16; /* Search for 16 bits devices */ + board_nand_init(nand); + if (nand_scan(mtd, 1) == 0) { + if (!mtd->name) + mtd->name = (char *)default_nand_name; + } else { + mtd->name = NULL; + } + } } void nand_init(void) |