summaryrefslogtreecommitdiff
path: root/drivers/nand/nand.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/nand/nand.c')
-rw-r--r--drivers/nand/nand.c14
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)