xref: /linux/Documentation/devicetree/bindings/mtd/raw-nand-chip.yaml (revision cdd5b5a9761fd66d17586e4f4ba6588c70e640ea)
146721a1cSMiquel Raynal# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
246721a1cSMiquel Raynal%YAML 1.2
346721a1cSMiquel Raynal---
446721a1cSMiquel Raynal$id: http://devicetree.org/schemas/mtd/raw-nand-chip.yaml#
546721a1cSMiquel Raynal$schema: http://devicetree.org/meta-schemas/core.yaml#
646721a1cSMiquel Raynal
746721a1cSMiquel Raynaltitle: Raw NAND Chip Common Properties
846721a1cSMiquel Raynal
946721a1cSMiquel Raynalmaintainers:
1046721a1cSMiquel Raynal  - Miquel Raynal <miquel.raynal@bootlin.com>
1146721a1cSMiquel Raynal
1246721a1cSMiquel RaynalallOf:
1346721a1cSMiquel Raynal  - $ref: nand-chip.yaml#
1446721a1cSMiquel Raynal
1546721a1cSMiquel Raynaldescription: |
1646721a1cSMiquel Raynal  The ECC strength and ECC step size properties define the user
1746721a1cSMiquel Raynal  desires in terms of correction capability of a controller. Together,
1846721a1cSMiquel Raynal  they request the ECC engine to correct {strength} bit errors per
1946721a1cSMiquel Raynal  {size} bytes for a particular raw NAND chip.
2046721a1cSMiquel Raynal
2146721a1cSMiquel Raynal  The interpretation of these parameters is implementation-defined, so
2246721a1cSMiquel Raynal  not all implementations must support all possible
2346721a1cSMiquel Raynal  combinations. However, implementations are encouraged to further
2446721a1cSMiquel Raynal  specify the value(s) they support.
2546721a1cSMiquel Raynal
2646721a1cSMiquel Raynalproperties:
2746721a1cSMiquel Raynal  $nodename:
2846721a1cSMiquel Raynal    pattern: "^nand@[a-f0-9]$"
2946721a1cSMiquel Raynal
3046721a1cSMiquel Raynal  reg:
3146721a1cSMiquel Raynal    description:
3246721a1cSMiquel Raynal      Contains the chip-select IDs.
3346721a1cSMiquel Raynal
3446721a1cSMiquel Raynal  nand-ecc-placement:
3546721a1cSMiquel Raynal    description:
3646721a1cSMiquel Raynal      Location of the ECC bytes. This location is unknown by default
3746721a1cSMiquel Raynal      but can be explicitly set to "oob", if all ECC bytes are
3846721a1cSMiquel Raynal      known to be stored in the OOB area, or "interleaved" if ECC
3946721a1cSMiquel Raynal      bytes will be interleaved with regular data in the main area.
4046721a1cSMiquel Raynal    $ref: /schemas/types.yaml#/definitions/string
4146721a1cSMiquel Raynal    enum: [ oob, interleaved ]
4217241a02SMiquel Raynal    deprecated: true
4346721a1cSMiquel Raynal
44*efdd2963SMiquel Raynal  nand-ecc-mode:
45*efdd2963SMiquel Raynal    description:
46*efdd2963SMiquel Raynal      Legacy ECC configuration mixing the ECC engine choice and
47*efdd2963SMiquel Raynal      configuration.
48*efdd2963SMiquel Raynal    $ref: /schemas/types.yaml#/definitions/string
49*efdd2963SMiquel Raynal    enum: [none, soft, soft_bch, hw, hw_syndrome, on-die]
50*efdd2963SMiquel Raynal    deprecated: true
51*efdd2963SMiquel Raynal
5246721a1cSMiquel Raynal  nand-bus-width:
5346721a1cSMiquel Raynal    description:
5446721a1cSMiquel Raynal      Bus width to the NAND chip
5546721a1cSMiquel Raynal    $ref: /schemas/types.yaml#/definitions/uint32
5646721a1cSMiquel Raynal    enum: [8, 16]
5746721a1cSMiquel Raynal    default: 8
5846721a1cSMiquel Raynal
5946721a1cSMiquel Raynal  nand-on-flash-bbt:
6046721a1cSMiquel Raynal    description:
6146721a1cSMiquel Raynal      With this property, the OS will search the device for a Bad
6246721a1cSMiquel Raynal      Block Table (BBT). If not found, it will create one, reserve
6346721a1cSMiquel Raynal      a few blocks at the end of the device to store it and update
6446721a1cSMiquel Raynal      it as the device ages. Otherwise, the out-of-band area of a
6546721a1cSMiquel Raynal      few pages of all the blocks will be scanned at boot time to
6646721a1cSMiquel Raynal      find Bad Block Markers (BBM). These markers will help to
6746721a1cSMiquel Raynal      build a volatile BBT in RAM.
6846721a1cSMiquel Raynal    $ref: /schemas/types.yaml#/definitions/flag
6946721a1cSMiquel Raynal
7046721a1cSMiquel Raynal  nand-ecc-maximize:
7146721a1cSMiquel Raynal    description:
7246721a1cSMiquel Raynal      Whether or not the ECC strength should be maximized. The
7346721a1cSMiquel Raynal      maximum ECC strength is both controller and chip
7446721a1cSMiquel Raynal      dependent. The ECC engine has to select the ECC config
7546721a1cSMiquel Raynal      providing the best strength and taking the OOB area size
7646721a1cSMiquel Raynal      constraint into account. This is particularly useful when
7746721a1cSMiquel Raynal      only the in-band area is used by the upper layers, and you
7846721a1cSMiquel Raynal      want to make your NAND as reliable as possible.
7946721a1cSMiquel Raynal    $ref: /schemas/types.yaml#/definitions/flag
8046721a1cSMiquel Raynal
8146721a1cSMiquel Raynal  nand-is-boot-medium:
8246721a1cSMiquel Raynal    description:
8346721a1cSMiquel Raynal      Whether or not the NAND chip is a boot medium. Drivers might
8446721a1cSMiquel Raynal      use this information to select ECC algorithms supported by
8546721a1cSMiquel Raynal      the boot ROM or similar restrictions.
8646721a1cSMiquel Raynal    $ref: /schemas/types.yaml#/definitions/flag
8746721a1cSMiquel Raynal
8846721a1cSMiquel Raynal  nand-rb:
8946721a1cSMiquel Raynal    description:
9046721a1cSMiquel Raynal      Contains the native Ready/Busy IDs.
9146721a1cSMiquel Raynal    $ref: /schemas/types.yaml#/definitions/uint32-array
9246721a1cSMiquel Raynal
9346721a1cSMiquel Raynal  rb-gpios:
9446721a1cSMiquel Raynal    description:
9546721a1cSMiquel Raynal      Contains one or more GPIO descriptor (the numper of descriptor
9646721a1cSMiquel Raynal      depends on the number of R/B pins exposed by the flash) for the
9746721a1cSMiquel Raynal      Ready/Busy pins. Active state refers to the NAND ready state and
9846721a1cSMiquel Raynal      should be set to GPIOD_ACTIVE_HIGH unless the signal is inverted.
9946721a1cSMiquel Raynal
10046721a1cSMiquel Raynal  wp-gpios:
10146721a1cSMiquel Raynal    description:
10246721a1cSMiquel Raynal      Contains one GPIO descriptor for the Write Protect pin.
10346721a1cSMiquel Raynal      Active state refers to the NAND Write Protect state and should be
10446721a1cSMiquel Raynal      set to GPIOD_ACTIVE_LOW unless the signal is inverted.
10546721a1cSMiquel Raynal    maxItems: 1
10646721a1cSMiquel Raynal
10746721a1cSMiquel Raynalrequired:
10846721a1cSMiquel Raynal  - reg
10946721a1cSMiquel Raynal
11046721a1cSMiquel Raynal# This is a generic file other binding inherit from and extend
11146721a1cSMiquel RaynaladditionalProperties: true
112