diff options
author | Daniel Mack <zonque@gmail.com> | 2012-12-14 05:36:41 -0500 |
---|---|---|
committer | Tony Lindgren <tony@atomide.com> | 2013-01-14 12:55:19 -0500 |
commit | ccf04c51004d0b973a688a91c879e2d91780d03c (patch) | |
tree | 62ab037faecba41ce9a36c1fa2e62de341ac1c44 | |
parent | 2f98ca895198c1c6f5c9f418e1bbf84660d9ba4f (diff) |
mtd: omap-nand: pass device_node in platform data
Pass an optional device_node pointer in the platform data, which in turn
will be put into a mtd_part_parser_data. This way, code that sets up the
platform devices can pass along the node from DT so that the partitions
can be parsed.
For non-DT boards, this change has no effect.
Signed-off-by: Daniel Mack <zonque@gmail.com>
Acked-by: Grant Likely <grant.likely@secretlab.ca>
Acked-by: Artem Bityutskiy <dedekind1@gmail.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
-rw-r--r-- | drivers/mtd/nand/omap2.c | 4 | ||||
-rw-r--r-- | include/linux/platform_data/mtd-nand-omap2.h | 4 |
2 files changed, 6 insertions, 2 deletions
diff --git a/drivers/mtd/nand/omap2.c b/drivers/mtd/nand/omap2.c index 0002d5e94f0d..1d333497cfcb 100644 --- a/drivers/mtd/nand/omap2.c +++ b/drivers/mtd/nand/omap2.c | |||
@@ -1332,6 +1332,7 @@ static int omap_nand_probe(struct platform_device *pdev) | |||
1332 | dma_cap_mask_t mask; | 1332 | dma_cap_mask_t mask; |
1333 | unsigned sig; | 1333 | unsigned sig; |
1334 | struct resource *res; | 1334 | struct resource *res; |
1335 | struct mtd_part_parser_data ppdata = {}; | ||
1335 | 1336 | ||
1336 | pdata = pdev->dev.platform_data; | 1337 | pdata = pdev->dev.platform_data; |
1337 | if (pdata == NULL) { | 1338 | if (pdata == NULL) { |
@@ -1557,7 +1558,8 @@ static int omap_nand_probe(struct platform_device *pdev) | |||
1557 | goto out_release_mem_region; | 1558 | goto out_release_mem_region; |
1558 | } | 1559 | } |
1559 | 1560 | ||
1560 | mtd_device_parse_register(&info->mtd, NULL, NULL, pdata->parts, | 1561 | ppdata.of_node = pdata->of_node; |
1562 | mtd_device_parse_register(&info->mtd, NULL, &ppdata, pdata->parts, | ||
1561 | pdata->nr_parts); | 1563 | pdata->nr_parts); |
1562 | 1564 | ||
1563 | platform_set_drvdata(pdev, &info->mtd); | 1565 | platform_set_drvdata(pdev, &info->mtd); |
diff --git a/include/linux/platform_data/mtd-nand-omap2.h b/include/linux/platform_data/mtd-nand-omap2.h index 24d32ca34bef..6bf9ef43ddb1 100644 --- a/include/linux/platform_data/mtd-nand-omap2.h +++ b/include/linux/platform_data/mtd-nand-omap2.h | |||
@@ -60,6 +60,8 @@ struct omap_nand_platform_data { | |||
60 | int devsize; | 60 | int devsize; |
61 | enum omap_ecc ecc_opt; | 61 | enum omap_ecc ecc_opt; |
62 | struct gpmc_nand_regs reg; | 62 | struct gpmc_nand_regs reg; |
63 | }; | ||
64 | 63 | ||
64 | /* for passing the partitions */ | ||
65 | struct device_node *of_node; | ||
66 | }; | ||
65 | #endif | 67 | #endif |