diff options
-rw-r--r-- | arch/arm/mach-omap2/gpmc.c | 2 | ||||
-rw-r--r-- | drivers/mtd/nand/omap2.c | 6 | ||||
-rw-r--r-- | include/linux/platform_data/mtd-nand-omap2.h | 1 |
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; |