mirror of
https://github.com/torvalds/linux.git
synced 2026-04-18 06:44:00 -04:00
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>
40 lines
1.0 KiB
YAML
40 lines
1.0 KiB
YAML
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
|
%YAML 1.2
|
|
---
|
|
$id: http://devicetree.org/schemas/mtd/raw-nand-chip.yaml#
|
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
|
|
|
title: Raw NAND Chip Common Properties
|
|
|
|
maintainers:
|
|
- Miquel Raynal <miquel.raynal@bootlin.com>
|
|
|
|
allOf:
|
|
- $ref: nand-chip.yaml#
|
|
- $ref: raw-nand-property.yaml#
|
|
|
|
description: |
|
|
The ECC strength and ECC step size properties define the user
|
|
desires in terms of correction capability of a controller. Together,
|
|
they request the ECC engine to correct {strength} bit errors per
|
|
{size} bytes for a particular raw NAND chip.
|
|
|
|
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.
|
|
|
|
properties:
|
|
$nodename:
|
|
pattern: "^nand@[a-f0-9]$"
|
|
|
|
reg:
|
|
description:
|
|
Contains the chip-select IDs.
|
|
|
|
required:
|
|
- reg
|
|
|
|
# This is a generic file other binding inherit from and extend
|
|
additionalProperties: true
|