[RESEND,4/5] mtd: nand: atmel: Document the new DT bindings

Message ID 1485535324-28393-5-git-send-email-boris.brezillon@free-electrons.com
State Superseded
Delegated to: Boris Brezillon
Headers show

Commit Message

Boris Brezillon Jan. 27, 2017, 4:42 p.m.
Document the new DT bindings for the Atmel NAND controller and
deprecate the old ones.

Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
---
 .../devicetree/bindings/mtd/atmel-nand.txt         | 106 ++++++++++++++++++++-
 1 file changed, 105 insertions(+), 1 deletion(-)

Comments

Rob Herring Feb. 1, 2017, 3:39 p.m. | #1
On Fri, Jan 27, 2017 at 05:42:03PM +0100, Boris Brezillon wrote:
> Document the new DT bindings for the Atmel NAND controller and
> deprecate the old ones.

Why?

> Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
> ---
>  .../devicetree/bindings/mtd/atmel-nand.txt         | 106 ++++++++++++++++++++-
>  1 file changed, 105 insertions(+), 1 deletion(-)
Boris Brezillon Feb. 1, 2017, 3:47 p.m. | #2
On Wed, 1 Feb 2017 09:39:20 -0600
Rob Herring <robh@kernel.org> wrote:

> On Fri, Jan 27, 2017 at 05:42:03PM +0100, Boris Brezillon wrote:
> > Document the new DT bindings for the Atmel NAND controller and
> > deprecate the old ones.  
> 
> Why?

Because the existing representation is not only wrong, it also causes
pinmux conflicts between the NAND controller and other devices present
on the EBI bus.
It's explained in the cover letter, but maybe you want me to put that
in the commit message.

> 
> > Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
> > ---
> >  .../devicetree/bindings/mtd/atmel-nand.txt         | 106 ++++++++++++++++++++-
> >  1 file changed, 105 insertions(+), 1 deletion(-)
Boris Brezillon Feb. 10, 2017, 12:55 p.m. | #3
Hi Rob,

On Wed, 1 Feb 2017 16:47:11 +0100
Boris Brezillon <boris.brezillon@free-electrons.com> wrote:

> On Wed, 1 Feb 2017 09:39:20 -0600
> Rob Herring <robh@kernel.org> wrote:
> 
> > On Fri, Jan 27, 2017 at 05:42:03PM +0100, Boris Brezillon wrote:  
> > > Document the new DT bindings for the Atmel NAND controller and
> > > deprecate the old ones.    
> > 
> > Why?  
> 
> Because the existing representation is not only wrong, it also causes
> pinmux conflicts between the NAND controller and other devices present
> on the EBI bus.
> It's explained in the cover letter, but maybe you want me to put that
> in the commit message.

Do you need more explanation (A.K.A. ping).

> 
> >   
> > > Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
> > > ---
> > >  .../devicetree/bindings/mtd/atmel-nand.txt         | 106 ++++++++++++++++++++-
> > >  1 file changed, 105 insertions(+), 1 deletion(-)    
>
Rob Herring Feb. 10, 2017, 1:58 p.m. | #4
On Fri, Feb 10, 2017 at 6:55 AM, Boris Brezillon
<boris.brezillon@free-electrons.com> wrote:
> Hi Rob,
>
> On Wed, 1 Feb 2017 16:47:11 +0100
> Boris Brezillon <boris.brezillon@free-electrons.com> wrote:
>
>> On Wed, 1 Feb 2017 09:39:20 -0600
>> Rob Herring <robh@kernel.org> wrote:
>>
>> > On Fri, Jan 27, 2017 at 05:42:03PM +0100, Boris Brezillon wrote:
>> > > Document the new DT bindings for the Atmel NAND controller and
>> > > deprecate the old ones.
>> >
>> > Why?
>>
>> Because the existing representation is not only wrong, it also causes
>> pinmux conflicts between the NAND controller and other devices present
>> on the EBI bus.
>> It's explained in the cover letter, but maybe you want me to put that
>> in the commit message.
>
> Do you need more explanation (A.K.A. ping).

No, but it should be in the commit msg.

Rob
Boris Brezillon Feb. 10, 2017, 2 p.m. | #5
On Fri, 10 Feb 2017 07:58:15 -0600
Rob Herring <robh@kernel.org> wrote:

> On Fri, Feb 10, 2017 at 6:55 AM, Boris Brezillon
> <boris.brezillon@free-electrons.com> wrote:
> > Hi Rob,
> >
> > On Wed, 1 Feb 2017 16:47:11 +0100
> > Boris Brezillon <boris.brezillon@free-electrons.com> wrote:
> >  
> >> On Wed, 1 Feb 2017 09:39:20 -0600
> >> Rob Herring <robh@kernel.org> wrote:
> >>  
> >> > On Fri, Jan 27, 2017 at 05:42:03PM +0100, Boris Brezillon wrote:  
> >> > > Document the new DT bindings for the Atmel NAND controller and
> >> > > deprecate the old ones.  
> >> >
> >> > Why?  
> >>
> >> Because the existing representation is not only wrong, it also causes
> >> pinmux conflicts between the NAND controller and other devices present
> >> on the EBI bus.
> >> It's explained in the cover letter, but maybe you want me to put that
> >> in the commit message.  
> >
> > Do you need more explanation (A.K.A. ping).  
> 
> No, but it should be in the commit msg.

Okay, will add more details in the commit msg then.

Thanks,

Boris
Nicolas Ferre Feb. 13, 2017, 5:31 p.m. | #6
Le 27/01/2017 à 17:42, Boris Brezillon a écrit :
> Document the new DT bindings for the Atmel NAND controller and
> deprecate the old ones.
> 
> Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>

Ok with the binding:
Reviewed-by: Nicolas Ferre <nicolas.ferre@microchip.com>

> ---
>  .../devicetree/bindings/mtd/atmel-nand.txt         | 106 ++++++++++++++++++++-
>  1 file changed, 105 insertions(+), 1 deletion(-)
> 
> diff --git a/Documentation/devicetree/bindings/mtd/atmel-nand.txt b/Documentation/devicetree/bindings/mtd/atmel-nand.txt
> index 3e7ee99d3949..2a86ef2332dc 100644
> --- a/Documentation/devicetree/bindings/mtd/atmel-nand.txt
> +++ b/Documentation/devicetree/bindings/mtd/atmel-nand.txt
> @@ -1,4 +1,108 @@
> -Atmel NAND flash
> +Atmel NAND flash controller bindings
> +
> +The NAND flash controller node should be defined under the EBI bus (see
> +Documentation/devicetree/bindings/memory-controllers/atmel,ebi.txt).
> +One or several NAND devices can be defined under this NAND controller.
> +The NAND controller might be connected to an ECC engine.
> +
> +* NAND controller bindings:
> +
> +Required properties:
> +- compatible: should be one of the following
> +	"atmel,at91rm9200-nand-controller"
> +	"atmel,at91sam9261-nand-controller"
> +	"atmel,at91sam9g45-nand-controller"
> +	"atmel,sama5d3-nand-controller"
> +- ranges: empty ranges property to forward EBI ranges definitions.
> +- #address-cells: should be set to 2.
> +- #size-cells: should be set to 1.
> +- atmel,nfc-io: phandle to the NFC IO block. Only required for sama5d3
> +		controllers.
> +- atmel,nfc-sram: phandle to the NFC SRAM block. Only required for sama5d3
> +		  controllers.
> +
> +Optional properties:
> +- ecc-engine: phandle to the PMECC block. Only meaningful if the SoC embeds
> +	      a PMECC engine.
> +
> +* NAND device/chip bindings:
> +
> +Required properties:
> +- reg: describes the CS lines assigned to the NAND device. If the NAND device
> +       exposes multiple CS lines (multi-dies chips), your reg property will
> +       contain X tuples of 3 entries.
> +       1st entry: the CS line this NAND chip is connected to
> +       2nd entry: the base offset of the memory region assigned to this
> +		  device (always 0)
> +       3rd entry: the memory region size (always 0x800000)
> +
> +Optional properties:
> +- rb-gpios: the GPIO(s) used to check the Ready/Busy status of the NAND.
> +- cs-gpios: the GPIO(s) used to control the CS line.
> +- det-gpios: the GPIO used to detect if a Smartmedia Card is present.
> +- atmel,rb: an integer identifying the native Ready/Busy pin. Only meaningful
> +	    on sama5 SoCs.
> +
> +All generic properties described in
> +Documentation/devicetree/bindings/mtd/{common,nand}.txt also apply to the NAND
> +device node, and NAND partitions should be defined under the NAND node as
> +described in Documentation/devicetree/bindings/mtd/partition.txt.
> +
> +* ECC engine (PMECC) bindings:
> +
> +Required properties:
> +- compatible: should be one of the following
> +	"atmel,at91sam9g45-pmecc"
> +	"atmel,sama5d4-pmecc"
> +	"atmel,sama5d2-pmecc"
> +- reg: should contain 2 register ranges. The first one is pointing to the PMECC
> +       block, and the second one to the PMECC_ERRLOC block.
> +
> +Example:
> +
> +	pmecc: ecc-engine@ffffc070 {
> +		compatible = "atmel,at91sam9g45-pmecc";
> +                reg = <0xffffc070 0x490>,
> +                      <0xffffc500 0x100>;
> +	};
> +
> +	ebi: ebi@10000000 {
> +		compatible = "atmel,sama5d3-ebi";
> +		#address-cells = <2>;
> +		#size-cells = <1>;
> +		atmel,smc = <&hsmc>;
> +		reg = <0x10000000 0x10000000
> +		       0x40000000 0x30000000>;
> +		ranges = <0x0 0x0 0x10000000 0x10000000
> +			  0x1 0x0 0x40000000 0x10000000
> +			  0x2 0x0 0x50000000 0x10000000
> +			  0x3 0x0 0x60000000 0x10000000>;
> +		clocks = <&mck>;
> +
> +                nand_controller: nand-controller {
> +			compatible = "atmel,sama5d3-nand-controller";
> +			atmel,nfc-sram = <&nfc_sram>;
> +			atmel,nfc-io = <&nfc_io>;
> +			ecc-engine = <&pmecc>;
> +			#address-cells = <2>;
> +			#size-cells = <1>;
> +			ranges;
> +
> +			nand@3 {
> +				reg = <0x3 0x0 0x800000>;
> +				atmel,rb = <0>;
> +
> +				/*
> +				 * Put generic NAND/MTD properties and
> +				 * subnodes here.
> +				 */
> +			};
> +		};
> +	};
> +
> +-----------------------------------------------------------------------
> +
> +Deprecated bindings (should not be used in new device trees):
>  
>  Required properties:
>  - compatible: The possible values are:
>

Patch

diff --git a/Documentation/devicetree/bindings/mtd/atmel-nand.txt b/Documentation/devicetree/bindings/mtd/atmel-nand.txt
index 3e7ee99d3949..2a86ef2332dc 100644
--- a/Documentation/devicetree/bindings/mtd/atmel-nand.txt
+++ b/Documentation/devicetree/bindings/mtd/atmel-nand.txt
@@ -1,4 +1,108 @@ 
-Atmel NAND flash
+Atmel NAND flash controller bindings
+
+The NAND flash controller node should be defined under the EBI bus (see
+Documentation/devicetree/bindings/memory-controllers/atmel,ebi.txt).
+One or several NAND devices can be defined under this NAND controller.
+The NAND controller might be connected to an ECC engine.
+
+* NAND controller bindings:
+
+Required properties:
+- compatible: should be one of the following
+	"atmel,at91rm9200-nand-controller"
+	"atmel,at91sam9261-nand-controller"
+	"atmel,at91sam9g45-nand-controller"
+	"atmel,sama5d3-nand-controller"
+- ranges: empty ranges property to forward EBI ranges definitions.
+- #address-cells: should be set to 2.
+- #size-cells: should be set to 1.
+- atmel,nfc-io: phandle to the NFC IO block. Only required for sama5d3
+		controllers.
+- atmel,nfc-sram: phandle to the NFC SRAM block. Only required for sama5d3
+		  controllers.
+
+Optional properties:
+- ecc-engine: phandle to the PMECC block. Only meaningful if the SoC embeds
+	      a PMECC engine.
+
+* NAND device/chip bindings:
+
+Required properties:
+- reg: describes the CS lines assigned to the NAND device. If the NAND device
+       exposes multiple CS lines (multi-dies chips), your reg property will
+       contain X tuples of 3 entries.
+       1st entry: the CS line this NAND chip is connected to
+       2nd entry: the base offset of the memory region assigned to this
+		  device (always 0)
+       3rd entry: the memory region size (always 0x800000)
+
+Optional properties:
+- rb-gpios: the GPIO(s) used to check the Ready/Busy status of the NAND.
+- cs-gpios: the GPIO(s) used to control the CS line.
+- det-gpios: the GPIO used to detect if a Smartmedia Card is present.
+- atmel,rb: an integer identifying the native Ready/Busy pin. Only meaningful
+	    on sama5 SoCs.
+
+All generic properties described in
+Documentation/devicetree/bindings/mtd/{common,nand}.txt also apply to the NAND
+device node, and NAND partitions should be defined under the NAND node as
+described in Documentation/devicetree/bindings/mtd/partition.txt.
+
+* ECC engine (PMECC) bindings:
+
+Required properties:
+- compatible: should be one of the following
+	"atmel,at91sam9g45-pmecc"
+	"atmel,sama5d4-pmecc"
+	"atmel,sama5d2-pmecc"
+- reg: should contain 2 register ranges. The first one is pointing to the PMECC
+       block, and the second one to the PMECC_ERRLOC block.
+
+Example:
+
+	pmecc: ecc-engine@ffffc070 {
+		compatible = "atmel,at91sam9g45-pmecc";
+                reg = <0xffffc070 0x490>,
+                      <0xffffc500 0x100>;
+	};
+
+	ebi: ebi@10000000 {
+		compatible = "atmel,sama5d3-ebi";
+		#address-cells = <2>;
+		#size-cells = <1>;
+		atmel,smc = <&hsmc>;
+		reg = <0x10000000 0x10000000
+		       0x40000000 0x30000000>;
+		ranges = <0x0 0x0 0x10000000 0x10000000
+			  0x1 0x0 0x40000000 0x10000000
+			  0x2 0x0 0x50000000 0x10000000
+			  0x3 0x0 0x60000000 0x10000000>;
+		clocks = <&mck>;
+
+                nand_controller: nand-controller {
+			compatible = "atmel,sama5d3-nand-controller";
+			atmel,nfc-sram = <&nfc_sram>;
+			atmel,nfc-io = <&nfc_io>;
+			ecc-engine = <&pmecc>;
+			#address-cells = <2>;
+			#size-cells = <1>;
+			ranges;
+
+			nand@3 {
+				reg = <0x3 0x0 0x800000>;
+				atmel,rb = <0>;
+
+				/*
+				 * Put generic NAND/MTD properties and
+				 * subnodes here.
+				 */
+			};
+		};
+	};
+
+-----------------------------------------------------------------------
+
+Deprecated bindings (should not be used in new device trees):
 
 Required properties:
 - compatible: The possible values are: