]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
dt-bindings: mtd: refactor NAND bindings and add nand-controller-legacy.yaml
authorFrank Li <Frank.Li@nxp.com>
Tue, 24 Mar 2026 22:16:18 +0000 (18:16 -0400)
committerMiquel Raynal <miquel.raynal@bootlin.com>
Wed, 25 Mar 2026 14:28:41 +0000 (15:28 +0100)
commit0ba8da2f318efc006ae5c080a4abfbabb5d110e2
tree6dc609b6ae4fcbd53a98bcb7bed02af153d955ad
parent25a915fad503c2678902075565d47ddc2aa45db9
dt-bindings: mtd: refactor NAND bindings and add nand-controller-legacy.yaml

The modern NAND controller binding requires NAND chips to be described as
child nodes of the controller, for example:

  nand-controller {
          ...
          nand@0 {
                  /* raw NAND chip properties */
          };
  };

However, many existing device trees place NAND chip properties directly
within the controller node because those controllers support only a single
chip. This layout is still widely used by older platforms and by other DT
consumers such as U-Boot. Migrating all existing users to the new layout
will take time.

Several kernel drivers, such as ams-delta.c, davinci_nand.c and
fsmc_nand.c, still expect the legacy layout where raw NAND properties are
defined in the controller node.

To support both layouts during the transition:

- Extract NAND chip-related properties into separate schemas
  (nand-property.yaml and raw-nand-property.yaml) from
  nand-chip.yaml and raw-nand-chip.yaml.
- Introduce nand-controller-legacy.yaml to allow both the
  legacy and modern layouts.
- Add a select condition in nand-controller.yaml to prevent
  node name pattern matching for fsl,* NAND controllers.

Keep compatibility with existing device trees while allowing gradual
migration to the modern binding structure.

Signed-off-by: Frank Li <Frank.Li@nxp.com>
Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Documentation/devicetree/bindings/mtd/nand-chip.yaml
Documentation/devicetree/bindings/mtd/nand-controller-legacy.yaml [new file with mode: 0644]
Documentation/devicetree/bindings/mtd/nand-controller.yaml
Documentation/devicetree/bindings/mtd/nand-property.yaml [new file with mode: 0644]
Documentation/devicetree/bindings/mtd/raw-nand-chip.yaml
Documentation/devicetree/bindings/mtd/raw-nand-property.yaml [new file with mode: 0644]