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