Subject: Re: [PATCH] booting-without-of: add more bindings for FSL UPM driver

From: Wolfgang Grandegger <[email-masked]>
Date: Thu, 26 Jun 2008 15:07:29 +0200

Hi Segher,

Segher Boessenkool wrote:
>>>> +      - chip-delay : may specify a delay value in milliseconds.
>>>
>>> Delay for what?  The binding should say.  "chip-delay" is a bit
>>> too generic name as well, it could be more descriptive perhaps.
>>
>> The chip-delay property defines an appropriate maximum delay
>> time (tR) required for read operations if the R/B pin is not
>> connected.
> 
> Yeah.  So please put that in the binding.
> 
>>> Shouldn't this be a property of the NAND device anyway, not the
>>> NAND controller?
>>
>> Strictly speaking, it's a property of the NAND device. Therefore it
>> should be inside the node nand@0, I thhink:
>>
>> +            nand@0 {
>> +                #address-cells = <1>;
>> +                #size-cells = <1>;
>> +                    chip-delay = <25>; // in micro-seconds
> 
> Something like that, yes.  You wrote milliseconds before; which is it?
> 
> And, a better property name, please.
> 
>> Where should that be documented?
> 
> In the binding for nand devices.  If there isn't any yet, it might be
> best to include that with the binding for your nand controller (i.e.,
> describe the whole sub node there).

This is another try to get this binding accepted. Below is my revised
patch introducing the proper "read-fetch-delay" for the sub-nodes of
the FSL UPM nodes and documenting all other options as well.

What do you think?

Wolfgang.

From: Wolfgang Grandegger <[email-masked]>
Subject: booting-without-of: add more bindings for FSL UPM driver

This patch adds the bindings for the property "read-fetch-delay" to the
sub-nodes of the "fsl,upm-nand" compatible nodes. It is used by the patch
"[NAND] driver extension to support NAND on TQM85xx modules" posted to
this list some time ago:

      http://ozlabs.org/pipermail/linuxppc-dev/2008-June/057632.html

Furthermore it documents all other properties of the sub-nodes.

Note: this patch is based on the following patches from Anton
      Vorontsov posted to this list some time ago:

      http://ozlabs.org/pipermail/linuxppc-dev/2008-May/056531.html
      http://ozlabs.org/pipermail/linuxppc-dev/2008-June/057244.html

Signed-off-by: Wolfgang Grandegger <[email-masked]>
---
 Documentation/powerpc/booting-without-of.txt |   34 +++++++++++++++++++++++++--
 1 file changed, 32 insertions(+), 2 deletions(-)

Index: linux-2.6-galak/Documentation/powerpc/booting-without-of.txt
===================================================================
--- linux-2.6-galak.orig/Documentation/powerpc/booting-without-of.txt
+++ linux-2.6-galak/Documentation/powerpc/booting-without-of.txt
@@ -3036,6 +3036,28 @@ platforms are moved over to use the flat
       - fsl,upm-cmd-offset : UPM pattern offset for the command latch.
       - gpios : may specify optional GPIO connected to the Ready-Not-Busy pin.
 
+      Each NAND flash is represented as a sub-node of the UPM node.
+      The nodes's name represents the name of the corresponding device.
+
+      NAND flash properties:
+      - compatible : not yet used.
+      - read-fetch-delay : chip dependent delay for transfering data
+        from array to read regs (tR).
+
+      Each partition is represented as a sub-node of the NAND flash device.
+      Each node's name represents the name of the corresponding partition
+      of the flash device.
+
+      NAND flash partitions:
+      - reg : The partition's offset and size within the flash bank.
+      - label : (optional) The label / name for this flash partition. If
+        omitted, the label is taken from the node name (excluding the
+        unit address).
+      - read-only : (optional) This parameter, if present, is a hint to
+        Linux that this flash partition should only be mounted read-only.
+        This is usually used for flash partitions containing early-boot
+        firmware images or data which should not be clobbered.
+
       Example:
 
 	upm@1,0 {
@@ -3049,9 +3071,17 @@ platforms are moved over to use the flat
 			#address-cells = <1>;
 			#size-cells = <1>;
 			compatible = "stmicro,NAND512W3A2BN6E";
+			read-fetch-delay = 25
+
+			fs@0 {
+				label = "fs";
+				reg = <0 f80000>;
+			};
 
-			partition@0 {
-				...
+			firmware@f80000 {
+				label ="firmware";
+				reg = <f80000 80000>;
+				read-only;
 			};
 		};
 	};