1# 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) binding
8
9maintainers:
10  - Han Xu <han.xu@nxp.com>
11
12allOf:
13  - $ref: "nand-controller.yaml"
14
15description: |
16  The GPMI nand controller provides an interface to control the NAND
17  flash chips. The device tree may optionally contain sub-nodes
18  describing partitions of the address space. See partition.txt for
19  more detail.
20
21properties:
22  compatible:
23    enum:
24      - fsl,imx23-gpmi-nand
25      - fsl,imx28-gpmi-nand
26      - fsl,imx6q-gpmi-nand
27      - fsl,imx6sx-gpmi-nand
28      - fsl,imx7d-gpmi-nand
29
30  reg:
31    items:
32      - description: Address and length of gpmi block.
33      - description: Address and length of bch block.
34
35  reg-names:
36    items:
37      - const: gpmi-nand
38      - const: bch
39
40  interrupts:
41    maxItems: 1
42
43  interrupt-names:
44    const: bch
45
46  dmas:
47    maxItems: 1
48
49  dma-names:
50    const: rx-tx
51
52  clocks:
53    minItems: 1
54    maxItems: 5
55    items:
56      - description: SoC gpmi io clock
57      - description: SoC gpmi apb clock
58      - description: SoC gpmi bch clock
59      - description: SoC gpmi bch apb clock
60      - description: SoC per1 bch clock
61
62  clock-names:
63    minItems: 1
64    maxItems: 5
65    items:
66      - const: gpmi_io
67      - const: gpmi_apb
68      - const: gpmi_bch
69      - const: gpmi_bch_apb
70      - const: per1_bch
71
72  fsl,use-minimum-ecc:
73    type: boolean
74    description: |
75      Protect this NAND flash with the minimum ECC strength required.
76      The required ECC strength is automatically discoverable for some
77      flash (e.g., according to the ONFI standard). However, note that
78      if this strength is not discoverable or this property is not enabled,
79      the software may chooses an implementation-defined ECC scheme.
80
81  fsl,no-blockmark-swap:
82    type: boolean
83    description: |
84      Don't swap the bad block marker from the OOB area with the byte in
85      the data area but rely on the flash based BBT for identifying bad blocks.
86      NOTE: this is only valid in conjunction with 'nand-on-flash-bbt'.
87      WARNING: on i.MX28 blockmark swapping cannot be disabled for the BootROM
88      in the FCB. Thus, partitions written from Linux with this feature turned
89      on may not be accessible by the BootROM code.
90
91required:
92  - compatible
93  - reg
94  - reg-names
95  - interrupts
96  - interrupt-names
97  - clocks
98  - clock-names
99  - dmas
100  - dma-names
101
102unevaluatedProperties: false
103
104examples:
105  - |
106    nand-controller@8000c000 {
107        #address-cells = <1>;
108        #size-cells = <0>;
109        compatible = "fsl,imx28-gpmi-nand";
110        reg = <0x8000c000 0x2000>, <0x8000a000 0x2000>;
111        reg-names = "gpmi-nand", "bch";
112        interrupts = <41>;
113        interrupt-names = "bch";
114        clocks = <&clks 50>;
115        clock-names = "gpmi_io";
116        dmas = <&dma_apbh 4>;
117        dma-names = "rx-tx";
118    };
119