1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- * 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".
- Deprecated values:
- "soft_bch": use "soft" and nand-ecc-algo instead
- - nand-ecc-algo: string, algorithm of NAND ECC.
- Supported values are: "hamming", "bch".
- - nand-bus-width : 8 or 16 bus width if not present 8
- - nand-on-flash-bbt: boolean to enable on flash bbt option if not present false
- - nand-ecc-strength: integer representing the number of bits to correct
- per ECC step.
- - nand-ecc-step-size: integer representing the number of data bytes
- that are covered by a single ECC step.
- - nand-ecc-maximize: boolean used to specify that you want to maximize ECC
- strength. The maximum ECC strength is both controller and
- chip dependent. The controller side has to select the ECC
- config providing the best strength and taking the OOB area
- size constraint into account.
- This is particularly useful when only the in-band area is
- used by the upper layers, and you want to make your NAND
- as reliable as possible.
- The ECC strength and ECC step size properties define the correction capability
- of a controller. Together, they say a controller can correct "{strength} bit
- 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";
- nand-ecc-algo = "bch";
- /* controller specific properties */
- };
- };
|