Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/mtd/qcom,nandc.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Qualcomm NAND controller
8
9maintainers:
10 - Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
11
12properties:
13 compatible:
14 enum:
15 - qcom,ipq806x-nand
16 - qcom,ipq4019-nand
17 - qcom,ipq6018-nand
18 - qcom,ipq8074-nand
19 - qcom,sdx55-nand
20
21 reg:
22 maxItems: 1
23
24 clocks:
25 items:
26 - description: Core Clock
27 - description: Always ON Clock
28
29 clock-names:
30 items:
31 - const: core
32 - const: aon
33
34patternProperties:
35 "^nand@[a-f0-9]$":
36 type: object
37 properties:
38 nand-bus-width:
39 const: 8
40
41 nand-ecc-strength:
42 enum: [1, 4, 8]
43
44 nand-ecc-step-size:
45 enum:
46 - 512
47
48allOf:
49 - $ref: "nand-controller.yaml#"
50
51 - if:
52 properties:
53 compatible:
54 contains:
55 const: qcom,ipq806x-nand
56 then:
57 properties:
58 dmas:
59 items:
60 - description: rxtx DMA channel
61
62 dma-names:
63 items:
64 - const: rxtx
65
66 qcom,cmd-crci:
67 $ref: /schemas/types.yaml#/definitions/uint32
68 description:
69 Must contain the ADM command type CRCI block instance number
70 specified for the NAND controller on the given platform
71
72 qcom,data-crci:
73 $ref: /schemas/types.yaml#/definitions/uint32
74 description:
75 Must contain the ADM data type CRCI block instance number
76 specified for the NAND controller on the given platform
77
78 - if:
79 properties:
80 compatible:
81 contains:
82 enum:
83 - qcom,ipq4019-nand
84 - qcom,ipq6018-nand
85 - qcom,ipq8074-nand
86 - qcom,sdx55-nand
87
88 then:
89 properties:
90 dmas:
91 items:
92 - description: tx DMA channel
93 - description: rx DMA channel
94 - description: cmd DMA channel
95
96 dma-names:
97 items:
98 - const: tx
99 - const: rx
100 - const: cmd
101
102 - if:
103 properties:
104 compatible:
105 contains:
106 enum:
107 - qcom,ipq806x-nand
108
109 then:
110 properties:
111 qcom,boot-partitions:
112 $ref: /schemas/types.yaml#/definitions/uint32-matrix
113 items:
114 items:
115 - description: offset
116 - description: size
117 description:
118 Boot partition use a different layout where the 4 bytes of spare
119 data are not protected by ECC. Use this to declare these special
120 partitions by defining first the offset and then the size.
121
122 It's in the form of <offset1 size1 offset2 size2 offset3 ...>
123 and should be declared in ascending order.
124
125 Refer to the ipq8064 example on how to use this special binding.
126
127required:
128 - compatible
129 - reg
130 - clocks
131 - clock-names
132
133unevaluatedProperties: false
134
135examples:
136 - |
137 #include <dt-bindings/clock/qcom,gcc-ipq806x.h>
138 nand-controller@1ac00000 {
139 compatible = "qcom,ipq806x-nand";
140 reg = <0x1ac00000 0x800>;
141
142 clocks = <&gcc EBI2_CLK>,
143 <&gcc EBI2_AON_CLK>;
144 clock-names = "core", "aon";
145
146 dmas = <&adm_dma 3>;
147 dma-names = "rxtx";
148 qcom,cmd-crci = <15>;
149 qcom,data-crci = <3>;
150
151 #address-cells = <1>;
152 #size-cells = <0>;
153
154 nand@0 {
155 reg = <0>;
156
157 nand-ecc-strength = <4>;
158 nand-bus-width = <8>;
159
160 qcom,boot-partitions = <0x0 0x58a0000>;
161
162 partitions {
163 compatible = "fixed-partitions";
164 #address-cells = <1>;
165 #size-cells = <1>;
166
167 partition@0 {
168 label = "boot-nand";
169 reg = <0 0x58a0000>;
170 };
171
172 partition@58a0000 {
173 label = "fs-nand";
174 reg = <0x58a0000 0x4000000>;
175 };
176 };
177 };
178 };
179
180 #include <dt-bindings/clock/qcom,gcc-ipq4019.h>
181 nand-controller@79b0000 {
182 compatible = "qcom,ipq4019-nand";
183 reg = <0x79b0000 0x1000>;
184
185 clocks = <&gcc GCC_QPIC_CLK>,
186 <&gcc GCC_QPIC_AHB_CLK>;
187 clock-names = "core", "aon";
188
189 dmas = <&qpicbam 0>,
190 <&qpicbam 1>,
191 <&qpicbam 2>;
192 dma-names = "tx", "rx", "cmd";
193
194 #address-cells = <1>;
195 #size-cells = <0>;
196
197 nand@0 {
198 reg = <0>;
199 nand-ecc-strength = <4>;
200 nand-bus-width = <8>;
201
202 partitions {
203 compatible = "fixed-partitions";
204 #address-cells = <1>;
205 #size-cells = <1>;
206
207 partition@0 {
208 label = "boot-nand";
209 reg = <0 0x58a0000>;
210 };
211
212 partition@58a0000 {
213 label = "fs-nand";
214 reg = <0x58a0000 0x4000000>;
215 };
216 };
217 };
218 };
219
220...