1493d37ceSAnson Huang# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2493d37ceSAnson Huang%YAML 1.2
3493d37ceSAnson Huang---
4493d37ceSAnson Huang$id: http://devicetree.org/schemas/mtd/gpmi-nand.yaml#
5493d37ceSAnson Huang$schema: http://devicetree.org/meta-schemas/core.yaml#
6493d37ceSAnson Huang
7493d37ceSAnson Huangtitle: Freescale General-Purpose Media Interface (GPMI) binding
8493d37ceSAnson Huang
9493d37ceSAnson Huangmaintainers:
10493d37ceSAnson Huang  - Han Xu <han.xu@nxp.com>
11493d37ceSAnson Huang
12493d37ceSAnson HuangallOf:
13493d37ceSAnson Huang  - $ref: "nand-controller.yaml"
14493d37ceSAnson Huang
15493d37ceSAnson Huangdescription: |
16493d37ceSAnson Huang  The GPMI nand controller provides an interface to control the NAND
17493d37ceSAnson Huang  flash chips. The device tree may optionally contain sub-nodes
18493d37ceSAnson Huang  describing partitions of the address space. See partition.txt for
19493d37ceSAnson Huang  more detail.
20493d37ceSAnson Huang
21493d37ceSAnson Huangproperties:
22493d37ceSAnson Huang  compatible:
23b781592cSKrzysztof Kozlowski    oneOf:
24b781592cSKrzysztof Kozlowski      - enum:
25493d37ceSAnson Huang          - fsl,imx23-gpmi-nand
26493d37ceSAnson Huang          - fsl,imx28-gpmi-nand
27493d37ceSAnson Huang          - fsl,imx6q-gpmi-nand
28493d37ceSAnson Huang          - fsl,imx6sx-gpmi-nand
29493d37ceSAnson Huang          - fsl,imx7d-gpmi-nand
30b781592cSKrzysztof Kozlowski      - items:
31b781592cSKrzysztof Kozlowski          - enum:
32b781592cSKrzysztof Kozlowski              - fsl,imx8mm-gpmi-nand
33b781592cSKrzysztof Kozlowski              - fsl,imx8mn-gpmi-nand
34b781592cSKrzysztof Kozlowski          - const: fsl,imx7d-gpmi-nand
35493d37ceSAnson Huang
36493d37ceSAnson Huang  reg:
37493d37ceSAnson Huang    items:
38493d37ceSAnson Huang      - description: Address and length of gpmi block.
39493d37ceSAnson Huang      - description: Address and length of bch block.
40493d37ceSAnson Huang
41493d37ceSAnson Huang  reg-names:
42493d37ceSAnson Huang    items:
43493d37ceSAnson Huang      - const: gpmi-nand
44493d37ceSAnson Huang      - const: bch
45493d37ceSAnson Huang
46493d37ceSAnson Huang  interrupts:
47493d37ceSAnson Huang    maxItems: 1
48493d37ceSAnson Huang
49493d37ceSAnson Huang  interrupt-names:
50493d37ceSAnson Huang    const: bch
51493d37ceSAnson Huang
52493d37ceSAnson Huang  dmas:
53493d37ceSAnson Huang    maxItems: 1
54493d37ceSAnson Huang
55493d37ceSAnson Huang  dma-names:
56493d37ceSAnson Huang    const: rx-tx
57493d37ceSAnson Huang
58493d37ceSAnson Huang  clocks:
59493d37ceSAnson Huang    minItems: 1
60493d37ceSAnson Huang    maxItems: 5
61493d37ceSAnson Huang    items:
62493d37ceSAnson Huang      - description: SoC gpmi io clock
63493d37ceSAnson Huang      - description: SoC gpmi apb clock
64493d37ceSAnson Huang      - description: SoC gpmi bch clock
65493d37ceSAnson Huang      - description: SoC gpmi bch apb clock
66493d37ceSAnson Huang      - description: SoC per1 bch clock
67493d37ceSAnson Huang
68493d37ceSAnson Huang  clock-names:
69493d37ceSAnson Huang    minItems: 1
70493d37ceSAnson Huang    maxItems: 5
71493d37ceSAnson Huang    items:
72493d37ceSAnson Huang      - const: gpmi_io
73493d37ceSAnson Huang      - const: gpmi_apb
74493d37ceSAnson Huang      - const: gpmi_bch
75493d37ceSAnson Huang      - const: gpmi_bch_apb
76493d37ceSAnson Huang      - const: per1_bch
77493d37ceSAnson Huang
78493d37ceSAnson Huang  fsl,use-minimum-ecc:
79493d37ceSAnson Huang    type: boolean
80493d37ceSAnson Huang    description: |
81493d37ceSAnson Huang      Protect this NAND flash with the minimum ECC strength required.
82493d37ceSAnson Huang      The required ECC strength is automatically discoverable for some
83493d37ceSAnson Huang      flash (e.g., according to the ONFI standard). However, note that
84493d37ceSAnson Huang      if this strength is not discoverable or this property is not enabled,
85493d37ceSAnson Huang      the software may chooses an implementation-defined ECC scheme.
86493d37ceSAnson Huang
87493d37ceSAnson Huang  fsl,no-blockmark-swap:
88493d37ceSAnson Huang    type: boolean
89493d37ceSAnson Huang    description: |
90493d37ceSAnson Huang      Don't swap the bad block marker from the OOB area with the byte in
91493d37ceSAnson Huang      the data area but rely on the flash based BBT for identifying bad blocks.
92493d37ceSAnson Huang      NOTE: this is only valid in conjunction with 'nand-on-flash-bbt'.
93493d37ceSAnson Huang      WARNING: on i.MX28 blockmark swapping cannot be disabled for the BootROM
94493d37ceSAnson Huang      in the FCB. Thus, partitions written from Linux with this feature turned
95493d37ceSAnson Huang      on may not be accessible by the BootROM code.
96493d37ceSAnson Huang
97493d37ceSAnson Huangrequired:
98493d37ceSAnson Huang  - compatible
99493d37ceSAnson Huang  - reg
100493d37ceSAnson Huang  - reg-names
101493d37ceSAnson Huang  - interrupts
102493d37ceSAnson Huang  - interrupt-names
103493d37ceSAnson Huang  - clocks
104493d37ceSAnson Huang  - clock-names
105493d37ceSAnson Huang  - dmas
106493d37ceSAnson Huang  - dma-names
107493d37ceSAnson Huang
108493d37ceSAnson HuangunevaluatedProperties: false
109493d37ceSAnson Huang
110493d37ceSAnson Huangexamples:
111493d37ceSAnson Huang  - |
112493d37ceSAnson Huang    nand-controller@8000c000 {
113493d37ceSAnson Huang        #address-cells = <1>;
114493d37ceSAnson Huang        #size-cells = <0>;
115493d37ceSAnson Huang        compatible = "fsl,imx28-gpmi-nand";
116493d37ceSAnson Huang        reg = <0x8000c000 0x2000>, <0x8000a000 0x2000>;
117493d37ceSAnson Huang        reg-names = "gpmi-nand", "bch";
118493d37ceSAnson Huang        interrupts = <41>;
119493d37ceSAnson Huang        interrupt-names = "bch";
120493d37ceSAnson Huang        clocks = <&clks 50>;
121493d37ceSAnson Huang        clock-names = "gpmi_io";
122493d37ceSAnson Huang        dmas = <&dma_apbh 4>;
123493d37ceSAnson Huang        dma-names = "rx-tx";
124493d37ceSAnson Huang    };
125