Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2d472aba authored by Boris Brezillon's avatar Boris Brezillon
Browse files

mtd: nand: document the NAND controller/NAND chip DT representation



Standardize the NAND controller/NAND chip DT representation. Now, all new
NAND controller drivers should comply with this representation, even if
they are only supporting a single NAND chip.

Existing drivers can keep support for the old representation (where only
the NAND chip was described), but are encouraged to also support the new
one.

Signed-off-by: default avatarBoris Brezillon <boris.brezillon@free-electrons.com>
Acked-by: default avatarBrian Norris <computersforpeace@gmail.com>
Acked-by: default avatarRob Herring <robh@kernel.org>
parent ce8716e9
Loading
Loading
Loading
Loading
+36 −1
Original line number Diff line number Diff line
* MTD generic binding
* NAND chip and NAND controller generic binding

NAND controller/NAND chip representation:

The NAND controller should be represented with its own DT node, and all
NAND chips attached to this controller should be defined as children nodes
of the NAND controller. This representation should be enforced even for
simple controllers supporting only one chip.

Mandatory NAND controller properties:
- #address-cells: depends on your controller. Should at least be 1 to
		  encode the CS line id.
- #size-cells: depends on your controller. Put zero unless you need a
	       mapping between CS lines and dedicated memory regions

Optional NAND controller properties
- ranges: only needed if you need to define a mapping between CS lines and
	  memory regions

Optional NAND chip properties:

- nand-ecc-mode : String, operation mode of the NAND ecc mode.
  Supported values are: "none", "soft", "hw", "hw_syndrome", "hw_oob_first",
@@ -19,3 +38,19 @@ errors per {size} bytes".
The interpretation of these parameters is implementation-defined, so not all
implementations must support all possible combinations. However, implementations
are encouraged to further specify the value(s) they support.

Example:

	nand-controller {
		#address-cells = <1>;
		#size-cells = <0>;

		/* controller specific properties */

		nand@0 {
			reg = <0>;
			nand-ecc-mode = "soft_bch";

			/* controller specific properties */
		};
	};