aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/arm/mach-omap2/gpmc.c2
-rw-r--r--drivers/mtd/nand/omap2.c6
-rw-r--r--include/linux/platform_data/mtd-nand-omap2.h1
3 files changed, 8 insertions, 1 deletions
diff --git a/arch/arm/mach-omap2/gpmc.c b/arch/arm/mach-omap2/gpmc.c
index 2f97228f188a..b55a225387cd 100644
--- a/arch/arm/mach-omap2/gpmc.c
+++ b/arch/arm/mach-omap2/gpmc.c
@@ -1440,6 +1440,8 @@ static int gpmc_probe_nand_child(struct platform_device *pdev,
1440 break; 1440 break;
1441 } 1441 }
1442 1442
1443 gpmc_nand_data->flash_bbt = of_get_nand_on_flash_bbt(child);
1444
1443 val = of_get_nand_bus_width(child); 1445 val = of_get_nand_bus_width(child);
1444 if (val == 16) 1446 if (val == 16)
1445 gpmc_nand_data->devsize = NAND_BUSWIDTH_16; 1447 gpmc_nand_data->devsize = NAND_BUSWIDTH_16;
diff --git a/drivers/mtd/nand/omap2.c b/drivers/mtd/nand/omap2.c
index 5967b385141b..e1a9b310c159 100644
--- a/drivers/mtd/nand/omap2.c
+++ b/drivers/mtd/nand/omap2.c
@@ -1663,7 +1663,6 @@ static int omap_nand_probe(struct platform_device *pdev)
1663 mtd->owner = THIS_MODULE; 1663 mtd->owner = THIS_MODULE;
1664 nand_chip = &info->nand; 1664 nand_chip = &info->nand;
1665 nand_chip->ecc.priv = NULL; 1665 nand_chip->ecc.priv = NULL;
1666 nand_chip->options |= NAND_SKIP_BBTSCAN;
1667 1666
1668 res = platform_get_resource(pdev, IORESOURCE_MEM, 0); 1667 res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
1669 nand_chip->IO_ADDR_R = devm_ioremap_resource(&pdev->dev, res); 1668 nand_chip->IO_ADDR_R = devm_ioremap_resource(&pdev->dev, res);
@@ -1692,6 +1691,11 @@ static int omap_nand_probe(struct platform_device *pdev)
1692 nand_chip->chip_delay = 50; 1691 nand_chip->chip_delay = 50;
1693 } 1692 }
1694 1693
1694 if (pdata->flash_bbt)
1695 nand_chip->bbt_options |= NAND_BBT_USE_FLASH | NAND_BBT_NO_OOB;
1696 else
1697 nand_chip->options |= NAND_SKIP_BBTSCAN;
1698
1695 /* scan NAND device connected to chip controller */ 1699 /* scan NAND device connected to chip controller */
1696 nand_chip->options |= pdata->devsize & NAND_BUSWIDTH_16; 1700 nand_chip->options |= pdata->devsize & NAND_BUSWIDTH_16;
1697 if (nand_scan_ident(mtd, 1, NULL)) { 1701 if (nand_scan_ident(mtd, 1, NULL)) {
diff --git a/include/linux/platform_data/mtd-nand-omap2.h b/include/linux/platform_data/mtd-nand-omap2.h
index 16ec262dfcc8..090bbab0130a 100644
--- a/include/linux/platform_data/mtd-nand-omap2.h
+++ b/include/linux/platform_data/mtd-nand-omap2.h
@@ -71,6 +71,7 @@ struct omap_nand_platform_data {
71 struct mtd_partition *parts; 71 struct mtd_partition *parts;
72 int nr_parts; 72 int nr_parts;
73 bool dev_ready; 73 bool dev_ready;
74 bool flash_bbt;
74 enum nand_io xfer_type; 75 enum nand_io xfer_type;
75 int devsize; 76 int devsize;
76 enum omap_ecc ecc_opt; 77 enum omap_ecc ecc_opt;