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 |
