Patchwork [RESEND] mtd: davinci: add support for parition binding nodes

login
register
mail settings
Submitter Karicheri, Muralidharan
Date Nov. 2, 2012, 2:22 p.m.
Message ID <1351866161-15516-1-git-send-email-m-karicheri2@ti.com>
Download mbox | patch
Permalink /patch/196568/
State New
Headers show

Comments

Karicheri, Muralidharan - Nov. 2, 2012, 2:22 p.m.
Enhance the driver to support partition subnodes inside the nand
device bindings to describe partions on the nand device.

Signed-off-by: Murali Karicheri <m-karicheri2@ti.com>
---
 .../devicetree/bindings/arm/davinci/nand.txt       |    8 ++++++++
 drivers/mtd/nand/davinci_nand.c                    |   13 ++++++++++---
 2 files changed, 18 insertions(+), 3 deletions(-)
Grant Likely - Nov. 15, 2012, 1:15 p.m.
On Fri, 2 Nov 2012 10:22:41 -0400, Murali Karicheri <m-karicheri2@ti.com> wrote:
> Enhance the driver to support partition subnodes inside the nand
> device bindings to describe partions on the nand device.
> 
> Signed-off-by: Murali Karicheri <m-karicheri2@ti.com>

Looks fine to me.

Reviewed-by: Grant Likely <grant.likely@secretlab.ca>

> ---
>  .../devicetree/bindings/arm/davinci/nand.txt       |    8 ++++++++
>  drivers/mtd/nand/davinci_nand.c                    |   13 ++++++++++---
>  2 files changed, 18 insertions(+), 3 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/arm/davinci/nand.txt b/Documentation/devicetree/bindings/arm/davinci/nand.txt
> index e37241f..4746452 100644
> --- a/Documentation/devicetree/bindings/arm/davinci/nand.txt
> +++ b/Documentation/devicetree/bindings/arm/davinci/nand.txt
> @@ -23,6 +23,9 @@ Recommended properties :
>  - ti,davinci-nand-buswidth: buswidth 8 or 16
>  - ti,davinci-nand-use-bbt: use flash based bad block table support.
>  
> +nand device bindings may contain additional sub-nodes describing
> +partitions of the address space. See partition.txt for more detail.
> +
>  Example (enbw_cmc board):
>  aemif@60000000 {
>  	compatible = "ti,davinci-aemif";
> @@ -47,5 +50,10 @@ aemif@60000000 {
>  		ti,davinci-ecc-mode = "hw";
>  		ti,davinci-ecc-bits = <4>;
>  		ti,davinci-nand-use-bbt;
> +
> +		partition@180000 {
> +			label = "ubifs";
> +			reg = <0x180000 0x7e80000>;
> +		};
>  	};
>  };
> diff --git a/drivers/mtd/nand/davinci_nand.c b/drivers/mtd/nand/davinci_nand.c
> index df1ab7d..321b053 100644
> --- a/drivers/mtd/nand/davinci_nand.c
> +++ b/drivers/mtd/nand/davinci_nand.c
> @@ -821,9 +821,16 @@ syndrome_done:
>  	if (ret < 0)
>  		goto err_scan;
>  
> -	ret = mtd_device_parse_register(&info->mtd, NULL, NULL, pdata->parts,
> -					pdata->nr_parts);
> -
> +	if (pdata->parts)
> +		ret = mtd_device_parse_register(&info->mtd, NULL, NULL,
> +					pdata->parts, pdata->nr_parts);
> +	else {
> +		struct mtd_part_parser_data	ppdata;
> +
> +		ppdata.of_node = pdev->dev.of_node;
> +		ret = mtd_device_parse_register(&info->mtd, NULL, &ppdata,
> +						NULL, 0);
> +	}
>  	if (ret < 0)
>  		goto err_scan;
>  
> -- 
> 1.7.9.5
>
Artem Bityutskiy - Nov. 15, 2012, 1:50 p.m.
On Fri, 2012-11-02 at 10:22 -0400, Murali Karicheri wrote:
> Enhance the driver to support partition subnodes inside the nand
> device bindings to describe partions on the nand device.
> 
> Signed-off-by: Murali Karicheri <m-karicheri2@ti.com>

Pushed to l2-mtd.git, thanks!

Patch

diff --git a/Documentation/devicetree/bindings/arm/davinci/nand.txt b/Documentation/devicetree/bindings/arm/davinci/nand.txt
index e37241f..4746452 100644
--- a/Documentation/devicetree/bindings/arm/davinci/nand.txt
+++ b/Documentation/devicetree/bindings/arm/davinci/nand.txt
@@ -23,6 +23,9 @@  Recommended properties :
 - ti,davinci-nand-buswidth: buswidth 8 or 16
 - ti,davinci-nand-use-bbt: use flash based bad block table support.
 
+nand device bindings may contain additional sub-nodes describing
+partitions of the address space. See partition.txt for more detail.
+
 Example (enbw_cmc board):
 aemif@60000000 {
 	compatible = "ti,davinci-aemif";
@@ -47,5 +50,10 @@  aemif@60000000 {
 		ti,davinci-ecc-mode = "hw";
 		ti,davinci-ecc-bits = <4>;
 		ti,davinci-nand-use-bbt;
+
+		partition@180000 {
+			label = "ubifs";
+			reg = <0x180000 0x7e80000>;
+		};
 	};
 };
diff --git a/drivers/mtd/nand/davinci_nand.c b/drivers/mtd/nand/davinci_nand.c
index df1ab7d..321b053 100644
--- a/drivers/mtd/nand/davinci_nand.c
+++ b/drivers/mtd/nand/davinci_nand.c
@@ -821,9 +821,16 @@  syndrome_done:
 	if (ret < 0)
 		goto err_scan;
 
-	ret = mtd_device_parse_register(&info->mtd, NULL, NULL, pdata->parts,
-					pdata->nr_parts);
-
+	if (pdata->parts)
+		ret = mtd_device_parse_register(&info->mtd, NULL, NULL,
+					pdata->parts, pdata->nr_parts);
+	else {
+		struct mtd_part_parser_data	ppdata;
+
+		ppdata.of_node = pdev->dev.of_node;
+		ret = mtd_device_parse_register(&info->mtd, NULL, &ppdata,
+						NULL, 0);
+	}
 	if (ret < 0)
 		goto err_scan;