1c66ec88fSEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 2c66ec88fSEmmanuel Vadot%YAML 1.2 3c66ec88fSEmmanuel Vadot--- 4c66ec88fSEmmanuel Vadot$id: http://devicetree.org/schemas/mtd/denali,nand.yaml# 5c66ec88fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6c66ec88fSEmmanuel Vadot 7c66ec88fSEmmanuel Vadottitle: Denali NAND controller 8c66ec88fSEmmanuel Vadot 9c66ec88fSEmmanuel Vadotmaintainers: 10c66ec88fSEmmanuel Vadot - Masahiro Yamada <yamada.masahiro@socionext.com> 11c66ec88fSEmmanuel Vadot 12c66ec88fSEmmanuel Vadotproperties: 13c66ec88fSEmmanuel Vadot compatible: 14c66ec88fSEmmanuel Vadot enum: 15c66ec88fSEmmanuel Vadot - altr,socfpga-denali-nand 16c66ec88fSEmmanuel Vadot - socionext,uniphier-denali-nand-v5a 17c66ec88fSEmmanuel Vadot - socionext,uniphier-denali-nand-v5b 18c66ec88fSEmmanuel Vadot 19c66ec88fSEmmanuel Vadot reg-names: 20c66ec88fSEmmanuel Vadot description: | 21c66ec88fSEmmanuel Vadot There are two register regions: 22c66ec88fSEmmanuel Vadot nand_data: host data/command interface 23c66ec88fSEmmanuel Vadot denali_reg: register interface 24c66ec88fSEmmanuel Vadot items: 25c66ec88fSEmmanuel Vadot - const: nand_data 26c66ec88fSEmmanuel Vadot - const: denali_reg 27c66ec88fSEmmanuel Vadot 28c66ec88fSEmmanuel Vadot reg: 29c66ec88fSEmmanuel Vadot minItems: 2 30c66ec88fSEmmanuel Vadot maxItems: 2 31c66ec88fSEmmanuel Vadot 32c66ec88fSEmmanuel Vadot interrupts: 33c66ec88fSEmmanuel Vadot maxItems: 1 34c66ec88fSEmmanuel Vadot 35c66ec88fSEmmanuel Vadot clock-names: 36c66ec88fSEmmanuel Vadot description: | 37c66ec88fSEmmanuel Vadot There are three clocks: 38c66ec88fSEmmanuel Vadot nand: controller core clock 39c66ec88fSEmmanuel Vadot nand_x: bus interface clock 40c66ec88fSEmmanuel Vadot ecc: ECC circuit clock 41c66ec88fSEmmanuel Vadot items: 42c66ec88fSEmmanuel Vadot - const: nand 43c66ec88fSEmmanuel Vadot - const: nand_x 44c66ec88fSEmmanuel Vadot - const: ecc 45c66ec88fSEmmanuel Vadot 46c66ec88fSEmmanuel Vadot clocks: 47c66ec88fSEmmanuel Vadot minItems: 3 48c66ec88fSEmmanuel Vadot maxItems: 3 49c66ec88fSEmmanuel Vadot 50c66ec88fSEmmanuel Vadot reset-names: 51c66ec88fSEmmanuel Vadot description: | 52c66ec88fSEmmanuel Vadot There are two optional resets: 53c66ec88fSEmmanuel Vadot nand: controller core reset 54c66ec88fSEmmanuel Vadot reg: register reset 55c66ec88fSEmmanuel Vadot oneOf: 56c66ec88fSEmmanuel Vadot - items: 57c66ec88fSEmmanuel Vadot - const: nand 58c66ec88fSEmmanuel Vadot - const: reg 59c66ec88fSEmmanuel Vadot - const: nand 60c66ec88fSEmmanuel Vadot - const: reg 61c66ec88fSEmmanuel Vadot 62c66ec88fSEmmanuel Vadot resets: 63c66ec88fSEmmanuel Vadot minItems: 1 64c66ec88fSEmmanuel Vadot maxItems: 2 65c66ec88fSEmmanuel Vadot 66*f126890aSEmmanuel VadotpatternProperties: 67*f126890aSEmmanuel Vadot "^nand@[a-f0-9]$": 68*f126890aSEmmanuel Vadot type: object 69*f126890aSEmmanuel Vadot $ref: raw-nand-chip.yaml 70*f126890aSEmmanuel Vadot unevaluatedProperties: false 71*f126890aSEmmanuel Vadot 72c66ec88fSEmmanuel VadotallOf: 73c66ec88fSEmmanuel Vadot - $ref: nand-controller.yaml 74c66ec88fSEmmanuel Vadot 75c66ec88fSEmmanuel Vadot - if: 76c66ec88fSEmmanuel Vadot properties: 77c66ec88fSEmmanuel Vadot compatible: 78c66ec88fSEmmanuel Vadot contains: 79c66ec88fSEmmanuel Vadot const: altr,socfpga-denali-nand 80c66ec88fSEmmanuel Vadot then: 81c66ec88fSEmmanuel Vadot patternProperties: 82c66ec88fSEmmanuel Vadot "^nand@[a-f0-9]$": 83c66ec88fSEmmanuel Vadot properties: 84c66ec88fSEmmanuel Vadot nand-ecc-strength: 85c66ec88fSEmmanuel Vadot enum: 86c66ec88fSEmmanuel Vadot - 8 87c66ec88fSEmmanuel Vadot - 15 88c66ec88fSEmmanuel Vadot nand-ecc-step-size: 89c66ec88fSEmmanuel Vadot enum: 90c66ec88fSEmmanuel Vadot - 512 91c66ec88fSEmmanuel Vadot 92c66ec88fSEmmanuel Vadot - if: 93c66ec88fSEmmanuel Vadot properties: 94c66ec88fSEmmanuel Vadot compatible: 95c66ec88fSEmmanuel Vadot contains: 96c66ec88fSEmmanuel Vadot const: socionext,uniphier-denali-nand-v5a 97c66ec88fSEmmanuel Vadot then: 98c66ec88fSEmmanuel Vadot patternProperties: 99c66ec88fSEmmanuel Vadot "^nand@[a-f0-9]$": 100c66ec88fSEmmanuel Vadot properties: 101c66ec88fSEmmanuel Vadot nand-ecc-strength: 102c66ec88fSEmmanuel Vadot enum: 103c66ec88fSEmmanuel Vadot - 8 104c66ec88fSEmmanuel Vadot - 16 105c66ec88fSEmmanuel Vadot - 24 106c66ec88fSEmmanuel Vadot nand-ecc-step-size: 107c66ec88fSEmmanuel Vadot enum: 108c66ec88fSEmmanuel Vadot - 1024 109c66ec88fSEmmanuel Vadot 110c66ec88fSEmmanuel Vadot - if: 111c66ec88fSEmmanuel Vadot properties: 112c66ec88fSEmmanuel Vadot compatible: 113c66ec88fSEmmanuel Vadot contains: 114c66ec88fSEmmanuel Vadot const: socionext,uniphier-denali-nand-v5b 115c66ec88fSEmmanuel Vadot then: 116c66ec88fSEmmanuel Vadot patternProperties: 117c66ec88fSEmmanuel Vadot "^nand@[a-f0-9]$": 118c66ec88fSEmmanuel Vadot properties: 119c66ec88fSEmmanuel Vadot nand-ecc-strength: 120c66ec88fSEmmanuel Vadot enum: 121c66ec88fSEmmanuel Vadot - 8 122c66ec88fSEmmanuel Vadot - 16 123c66ec88fSEmmanuel Vadot nand-ecc-step-size: 124c66ec88fSEmmanuel Vadot enum: 125c66ec88fSEmmanuel Vadot - 1024 126c66ec88fSEmmanuel Vadot 127c66ec88fSEmmanuel Vadotrequired: 128c66ec88fSEmmanuel Vadot - compatible 129c66ec88fSEmmanuel Vadot - reg 130c66ec88fSEmmanuel Vadot - interrupts 131c66ec88fSEmmanuel Vadot - clock-names 132c66ec88fSEmmanuel Vadot - clocks 133c66ec88fSEmmanuel Vadot 1346be33864SEmmanuel VadotunevaluatedProperties: false 1356be33864SEmmanuel Vadot 136c66ec88fSEmmanuel Vadotexamples: 137c66ec88fSEmmanuel Vadot - | 138c66ec88fSEmmanuel Vadot nand-controller@ff900000 { 139c66ec88fSEmmanuel Vadot compatible = "altr,socfpga-denali-nand"; 140c66ec88fSEmmanuel Vadot reg-names = "nand_data", "denali_reg"; 141c66ec88fSEmmanuel Vadot reg = <0xff900000 0x20>, <0xffb80000 0x1000>; 142c66ec88fSEmmanuel Vadot interrupts = <0 144 4>; 143c66ec88fSEmmanuel Vadot clock-names = "nand", "nand_x", "ecc"; 144c66ec88fSEmmanuel Vadot clocks = <&nand_clk>, <&nand_x_clk>, <&nand_ecc_clk>; 145c66ec88fSEmmanuel Vadot reset-names = "nand", "reg"; 146c66ec88fSEmmanuel Vadot resets = <&nand_rst>, <&nand_reg_rst>; 147c66ec88fSEmmanuel Vadot #address-cells = <1>; 148c66ec88fSEmmanuel Vadot #size-cells = <0>; 149c66ec88fSEmmanuel Vadot 150c66ec88fSEmmanuel Vadot nand@0 { 151c66ec88fSEmmanuel Vadot reg = <0>; 152c66ec88fSEmmanuel Vadot }; 153c66ec88fSEmmanuel Vadot }; 154