182ba4997SMasahiro Yamada# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
282ba4997SMasahiro Yamada%YAML 1.2
382ba4997SMasahiro Yamada---
482ba4997SMasahiro Yamada$id: http://devicetree.org/schemas/mtd/denali,nand.yaml#
582ba4997SMasahiro Yamada$schema: http://devicetree.org/meta-schemas/core.yaml#
682ba4997SMasahiro Yamada
782ba4997SMasahiro Yamadatitle: Denali NAND controller
882ba4997SMasahiro Yamada
982ba4997SMasahiro Yamadamaintainers:
1082ba4997SMasahiro Yamada  - Masahiro Yamada <yamada.masahiro@socionext.com>
1182ba4997SMasahiro Yamada
1282ba4997SMasahiro Yamadaproperties:
1382ba4997SMasahiro Yamada  compatible:
1482ba4997SMasahiro Yamada    enum:
1582ba4997SMasahiro Yamada      - altr,socfpga-denali-nand
1682ba4997SMasahiro Yamada      - socionext,uniphier-denali-nand-v5a
1782ba4997SMasahiro Yamada      - socionext,uniphier-denali-nand-v5b
1882ba4997SMasahiro Yamada
1982ba4997SMasahiro Yamada  reg-names:
2082ba4997SMasahiro Yamada    description: |
2182ba4997SMasahiro Yamada      There are two register regions:
2282ba4997SMasahiro Yamada        nand_data:  host data/command interface
2382ba4997SMasahiro Yamada        denali_reg: register interface
2482ba4997SMasahiro Yamada    items:
2582ba4997SMasahiro Yamada      - const: nand_data
2682ba4997SMasahiro Yamada      - const: denali_reg
2782ba4997SMasahiro Yamada
2882ba4997SMasahiro Yamada  reg:
2982ba4997SMasahiro Yamada    minItems: 2
3082ba4997SMasahiro Yamada    maxItems: 2
3182ba4997SMasahiro Yamada
3282ba4997SMasahiro Yamada  interrupts:
3382ba4997SMasahiro Yamada    maxItems: 1
3482ba4997SMasahiro Yamada
3582ba4997SMasahiro Yamada  clock-names:
3682ba4997SMasahiro Yamada    description: |
3782ba4997SMasahiro Yamada      There are three clocks:
3882ba4997SMasahiro Yamada        nand:   controller core clock
3982ba4997SMasahiro Yamada        nand_x: bus interface clock
4082ba4997SMasahiro Yamada        ecc:    ECC circuit clock
4182ba4997SMasahiro Yamada    items:
4282ba4997SMasahiro Yamada      - const: nand
4382ba4997SMasahiro Yamada      - const: nand_x
4482ba4997SMasahiro Yamada      - const: ecc
4582ba4997SMasahiro Yamada
4682ba4997SMasahiro Yamada  clocks:
4782ba4997SMasahiro Yamada    minItems: 3
4882ba4997SMasahiro Yamada    maxItems: 3
4982ba4997SMasahiro Yamada
5082ba4997SMasahiro Yamada  reset-names:
5182ba4997SMasahiro Yamada    description: |
5282ba4997SMasahiro Yamada      There are two optional resets:
5382ba4997SMasahiro Yamada        nand: controller core reset
5482ba4997SMasahiro Yamada        reg:  register reset
5582ba4997SMasahiro Yamada    oneOf:
5682ba4997SMasahiro Yamada      - items:
5782ba4997SMasahiro Yamada          - const: nand
5882ba4997SMasahiro Yamada          - const: reg
5982ba4997SMasahiro Yamada      - const: nand
6082ba4997SMasahiro Yamada      - const: reg
6182ba4997SMasahiro Yamada
6282ba4997SMasahiro Yamada  resets:
6382ba4997SMasahiro Yamada    minItems: 1
6482ba4997SMasahiro Yamada    maxItems: 2
6582ba4997SMasahiro Yamada
66*129a70a1SMiquel RaynalpatternProperties:
67*129a70a1SMiquel Raynal  "^nand@[a-f0-9]$":
68*129a70a1SMiquel Raynal    type: object
69*129a70a1SMiquel Raynal    $ref: raw-nand-chip.yaml
70*129a70a1SMiquel Raynal    unevaluatedProperties: false
71*129a70a1SMiquel Raynal
7282ba4997SMasahiro YamadaallOf:
7382ba4997SMasahiro Yamada  - $ref: nand-controller.yaml
7482ba4997SMasahiro Yamada
7582ba4997SMasahiro Yamada  - if:
7682ba4997SMasahiro Yamada      properties:
7782ba4997SMasahiro Yamada        compatible:
7882ba4997SMasahiro Yamada          contains:
7982ba4997SMasahiro Yamada            const: altr,socfpga-denali-nand
8082ba4997SMasahiro Yamada    then:
8182ba4997SMasahiro Yamada      patternProperties:
8282ba4997SMasahiro Yamada        "^nand@[a-f0-9]$":
8382ba4997SMasahiro Yamada          properties:
8482ba4997SMasahiro Yamada            nand-ecc-strength:
8582ba4997SMasahiro Yamada              enum:
8682ba4997SMasahiro Yamada                - 8
8782ba4997SMasahiro Yamada                - 15
8882ba4997SMasahiro Yamada            nand-ecc-step-size:
8982ba4997SMasahiro Yamada              enum:
9082ba4997SMasahiro Yamada                - 512
9182ba4997SMasahiro Yamada
9282ba4997SMasahiro Yamada  - if:
9382ba4997SMasahiro Yamada      properties:
9482ba4997SMasahiro Yamada        compatible:
9582ba4997SMasahiro Yamada          contains:
9682ba4997SMasahiro Yamada            const: socionext,uniphier-denali-nand-v5a
9782ba4997SMasahiro Yamada    then:
9882ba4997SMasahiro Yamada      patternProperties:
9982ba4997SMasahiro Yamada        "^nand@[a-f0-9]$":
10082ba4997SMasahiro Yamada          properties:
10182ba4997SMasahiro Yamada            nand-ecc-strength:
10282ba4997SMasahiro Yamada              enum:
10382ba4997SMasahiro Yamada                - 8
10482ba4997SMasahiro Yamada                - 16
10582ba4997SMasahiro Yamada                - 24
10682ba4997SMasahiro Yamada            nand-ecc-step-size:
10782ba4997SMasahiro Yamada              enum:
10882ba4997SMasahiro Yamada                - 1024
10982ba4997SMasahiro Yamada
11082ba4997SMasahiro Yamada  - if:
11182ba4997SMasahiro Yamada      properties:
11282ba4997SMasahiro Yamada        compatible:
11382ba4997SMasahiro Yamada          contains:
11482ba4997SMasahiro Yamada            const: socionext,uniphier-denali-nand-v5b
11582ba4997SMasahiro Yamada    then:
11682ba4997SMasahiro Yamada      patternProperties:
11782ba4997SMasahiro Yamada        "^nand@[a-f0-9]$":
11882ba4997SMasahiro Yamada          properties:
11982ba4997SMasahiro Yamada            nand-ecc-strength:
12082ba4997SMasahiro Yamada              enum:
12182ba4997SMasahiro Yamada                - 8
12282ba4997SMasahiro Yamada                - 16
12382ba4997SMasahiro Yamada            nand-ecc-step-size:
12482ba4997SMasahiro Yamada              enum:
12582ba4997SMasahiro Yamada                - 1024
12682ba4997SMasahiro Yamada
12782ba4997SMasahiro Yamadarequired:
12882ba4997SMasahiro Yamada  - compatible
12982ba4997SMasahiro Yamada  - reg
13082ba4997SMasahiro Yamada  - interrupts
13182ba4997SMasahiro Yamada  - clock-names
13282ba4997SMasahiro Yamada  - clocks
13382ba4997SMasahiro Yamada
1346fdc6e23SRob HerringunevaluatedProperties: false
1356fdc6e23SRob Herring
13682ba4997SMasahiro Yamadaexamples:
13782ba4997SMasahiro Yamada  - |
13882ba4997SMasahiro Yamada    nand-controller@ff900000 {
13982ba4997SMasahiro Yamada        compatible = "altr,socfpga-denali-nand";
14082ba4997SMasahiro Yamada        reg-names = "nand_data", "denali_reg";
14182ba4997SMasahiro Yamada        reg = <0xff900000 0x20>, <0xffb80000 0x1000>;
14282ba4997SMasahiro Yamada        interrupts = <0 144 4>;
14382ba4997SMasahiro Yamada        clock-names = "nand", "nand_x", "ecc";
14482ba4997SMasahiro Yamada        clocks = <&nand_clk>, <&nand_x_clk>, <&nand_ecc_clk>;
14582ba4997SMasahiro Yamada        reset-names = "nand", "reg";
14682ba4997SMasahiro Yamada        resets = <&nand_rst>, <&nand_reg_rst>;
14782ba4997SMasahiro Yamada        #address-cells = <1>;
14882ba4997SMasahiro Yamada        #size-cells = <0>;
14982ba4997SMasahiro Yamada
15082ba4997SMasahiro Yamada        nand@0 {
15182ba4997SMasahiro Yamada            reg = <0>;
15282ba4997SMasahiro Yamada        };
15382ba4997SMasahiro Yamada    };
154