blob: f9eb1868ca1f4e56c20e6f023e9ed9e52371c9c5 [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/mtd/gpmi-nand.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Freescale General-Purpose Media Interface (GPMI)
8
9maintainers:
10 - Han Xu <han.xu@nxp.com>
11
12description: |
13 The GPMI nand controller provides an interface to control the NAND
14 flash chips. The device tree may optionally contain sub-nodes
Tom Rini6bb92fc2024-05-20 09:54:58 -060015 describing partitions of the address space. See mtd.yaml for
Tom Rini53633a82024-02-29 12:33:36 -050016 more detail.
17
18properties:
19 compatible:
20 oneOf:
21 - enum:
22 - fsl,imx23-gpmi-nand
23 - fsl,imx28-gpmi-nand
24 - fsl,imx6q-gpmi-nand
25 - fsl,imx6sx-gpmi-nand
26 - fsl,imx7d-gpmi-nand
Tom Rini6b642ac2024-10-01 12:20:28 -060027 - fsl,imx8qxp-gpmi-nand
Tom Rini53633a82024-02-29 12:33:36 -050028 - items:
29 - enum:
30 - fsl,imx8mm-gpmi-nand
31 - fsl,imx8mn-gpmi-nand
32 - const: fsl,imx7d-gpmi-nand
33
34 reg:
35 items:
36 - description: Address and length of gpmi block.
37 - description: Address and length of bch block.
38
39 reg-names:
40 items:
41 - const: gpmi-nand
42 - const: bch
43
44 interrupts:
45 maxItems: 1
46
47 interrupt-names:
48 const: bch
49
50 dmas:
51 maxItems: 1
52
53 dma-names:
54 const: rx-tx
55
56 clocks:
57 minItems: 1
58 maxItems: 5
59
60 clock-names:
61 minItems: 1
62 maxItems: 5
63
64 fsl,use-minimum-ecc:
65 type: boolean
66 description: |
67 Protect this NAND flash with the minimum ECC strength required.
68 The required ECC strength is automatically discoverable for some
69 flash (e.g., according to the ONFI standard). However, note that
70 if this strength is not discoverable or this property is not enabled,
71 the software may chooses an implementation-defined ECC scheme.
72
73 fsl,no-blockmark-swap:
74 type: boolean
75 description: |
76 Don't swap the bad block marker from the OOB area with the byte in
77 the data area but rely on the flash based BBT for identifying bad blocks.
78 NOTE: this is only valid in conjunction with 'nand-on-flash-bbt'.
79 WARNING: on i.MX28 blockmark swapping cannot be disabled for the BootROM
80 in the FCB. Thus, partitions written from Linux with this feature turned
81 on may not be accessible by the BootROM code.
82
83required:
84 - compatible
85 - reg
86 - reg-names
87 - interrupts
88 - interrupt-names
89 - clocks
90 - clock-names
91 - dmas
92 - dma-names
93
94unevaluatedProperties: false
95
96allOf:
97 - $ref: nand-controller.yaml
98
99 - if:
100 properties:
101 compatible:
102 contains:
103 enum:
104 - fsl,imx23-gpmi-nand
105 - fsl,imx28-gpmi-nand
106 then:
107 properties:
108 clocks:
109 items:
110 - description: SoC gpmi io clock
111 clock-names:
112 items:
113 - const: gpmi_io
114
115 - if:
116 properties:
117 compatible:
118 contains:
119 enum:
120 - fsl,imx6q-gpmi-nand
121 - fsl,imx6sx-gpmi-nand
122 then:
123 properties:
124 clocks:
125 items:
126 - description: SoC gpmi io clock
127 - description: SoC gpmi apb clock
128 - description: SoC gpmi bch clock
129 - description: SoC gpmi bch apb clock
130 - description: SoC per1 bch clock
131 clock-names:
132 items:
133 - const: gpmi_io
134 - const: gpmi_apb
135 - const: gpmi_bch
136 - const: gpmi_bch_apb
137 - const: per1_bch
138
139 - if:
140 properties:
141 compatible:
142 contains:
143 const: fsl,imx7d-gpmi-nand
144 then:
145 properties:
146 clocks:
147 items:
148 - description: SoC gpmi io clock
149 - description: SoC gpmi bch apb clock
150 clock-names:
151 items:
152 - const: gpmi_io
153 - const: gpmi_bch_apb
154
Tom Rini6b642ac2024-10-01 12:20:28 -0600155 - if:
156 properties:
157 compatible:
158 contains:
159 enum:
160 - fsl,imx8qxp-gpmi-nand
161 then:
162 properties:
163 clocks:
164 items:
165 - description: SoC gpmi io clock
166 - description: SoC gpmi apb clock
167 - description: SoC gpmi bch clock
168 - description: SoC gpmi bch apb clock
169 clock-names:
170 items:
171 - const: gpmi_io
172 - const: gpmi_apb
173 - const: gpmi_bch
174 - const: gpmi_bch_apb
175
Tom Rini53633a82024-02-29 12:33:36 -0500176examples:
177 - |
178 nand-controller@8000c000 {
179 #address-cells = <1>;
180 #size-cells = <0>;
181 compatible = "fsl,imx28-gpmi-nand";
182 reg = <0x8000c000 0x2000>, <0x8000a000 0x2000>;
183 reg-names = "gpmi-nand", "bch";
184 interrupts = <41>;
185 interrupt-names = "bch";
186 clocks = <&clks 50>;
187 clock-names = "gpmi_io";
188 dmas = <&dma_apbh 4>;
189 dma-names = "rx-tx";
190 };