Subject: [PATCH v8 2/5] mtd: omap-nand: pass device_node in platform data

From: [email-masked] (Tony Lindgren)
Date: Tue, 15 Jan 2013 10:52:51 -0800

Artem,

Looks like this patch related to making GPMC work with DT was
never sent to linux-mtd or to you so adding to cc.

Is this OK to apply along with the GPMC patches, or do you want to
take this separately with the MTD patches?

Regards,

Tony

* Daniel Mack <[email-masked]> [121214 02:39]:
> 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 <[email-masked]>
> ---
>  drivers/mtd/nand/omap2.c                     | 4 +++-
>  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 0002d5e..1d333497c 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)
>  	dma_cap_mask_t mask;
>  	unsigned sig;
>  	struct resource			*res;
> +	struct mtd_part_parser_data	ppdata = {};
>  
>  	pdata = pdev->dev.platform_data;
>  	if (pdata == NULL) {
> @@ -1557,7 +1558,8 @@ static int omap_nand_probe(struct platform_device *pdev)
>  		goto out_release_mem_region;
>  	}
>  
> -	mtd_device_parse_register(&info->mtd, NULL, NULL, pdata->parts,
> +	ppdata.of_node = pdata->of_node;
> +	mtd_device_parse_register(&info->mtd, NULL, &ppdata, pdata->parts,
>  				  pdata->nr_parts);
>  
>  	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 24d32ca..6bf9ef4 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 {
>  	int			devsize;
>  	enum omap_ecc           ecc_opt;
>  	struct gpmc_nand_regs	reg;
> -};
>  
> +	/* for passing the partitions */
> +	struct device_node	*of_node;
> +};
>  #endif
> -- 
> 1.7.11.7
>