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
784e85359SKrzysztof Kozlowskititle: Freescale General-Purpose Media Interface (GPMI)
8493d37ceSAnson Huang
9493d37ceSAnson Huangmaintainers:
10493d37ceSAnson Huang  - Han Xu <han.xu@nxp.com>
11493d37ceSAnson Huang
12493d37ceSAnson Huangdescription: |
13493d37ceSAnson Huang  The GPMI nand controller provides an interface to control the NAND
14493d37ceSAnson Huang  flash chips. The device tree may optionally contain sub-nodes
15493d37ceSAnson Huang  describing partitions of the address space. See partition.txt for
16493d37ceSAnson Huang  more detail.
17493d37ceSAnson Huang
18493d37ceSAnson Huangproperties:
19493d37ceSAnson Huang  compatible:
20b781592cSKrzysztof Kozlowski    oneOf:
21b781592cSKrzysztof Kozlowski      - enum:
22493d37ceSAnson Huang          - fsl,imx23-gpmi-nand
23493d37ceSAnson Huang          - fsl,imx28-gpmi-nand
24493d37ceSAnson Huang          - fsl,imx6q-gpmi-nand
25493d37ceSAnson Huang          - fsl,imx6sx-gpmi-nand
26493d37ceSAnson Huang          - fsl,imx7d-gpmi-nand
27b781592cSKrzysztof Kozlowski      - items:
28b781592cSKrzysztof Kozlowski          - enum:
29b781592cSKrzysztof Kozlowski              - fsl,imx8mm-gpmi-nand
30b781592cSKrzysztof Kozlowski              - fsl,imx8mn-gpmi-nand
31b781592cSKrzysztof Kozlowski          - const: fsl,imx7d-gpmi-nand
32493d37ceSAnson Huang
33493d37ceSAnson Huang  reg:
34493d37ceSAnson Huang    items:
35493d37ceSAnson Huang      - description: Address and length of gpmi block.
36493d37ceSAnson Huang      - description: Address and length of bch block.
37493d37ceSAnson Huang
38493d37ceSAnson Huang  reg-names:
39493d37ceSAnson Huang    items:
40493d37ceSAnson Huang      - const: gpmi-nand
41493d37ceSAnson Huang      - const: bch
42493d37ceSAnson Huang
43493d37ceSAnson Huang  interrupts:
44493d37ceSAnson Huang    maxItems: 1
45493d37ceSAnson Huang
46493d37ceSAnson Huang  interrupt-names:
47493d37ceSAnson Huang    const: bch
48493d37ceSAnson Huang
49493d37ceSAnson Huang  dmas:
50493d37ceSAnson Huang    maxItems: 1
51493d37ceSAnson Huang
52493d37ceSAnson Huang  dma-names:
53493d37ceSAnson Huang    const: rx-tx
54493d37ceSAnson Huang
55493d37ceSAnson Huang  clocks:
56493d37ceSAnson Huang    minItems: 1
57493d37ceSAnson Huang    maxItems: 5
58493d37ceSAnson Huang
59493d37ceSAnson Huang  clock-names:
60493d37ceSAnson Huang    minItems: 1
61493d37ceSAnson Huang    maxItems: 5
62493d37ceSAnson Huang
63493d37ceSAnson Huang  fsl,use-minimum-ecc:
64493d37ceSAnson Huang    type: boolean
65493d37ceSAnson Huang    description: |
66493d37ceSAnson Huang      Protect this NAND flash with the minimum ECC strength required.
67493d37ceSAnson Huang      The required ECC strength is automatically discoverable for some
68493d37ceSAnson Huang      flash (e.g., according to the ONFI standard). However, note that
69493d37ceSAnson Huang      if this strength is not discoverable or this property is not enabled,
70493d37ceSAnson Huang      the software may chooses an implementation-defined ECC scheme.
71493d37ceSAnson Huang
72493d37ceSAnson Huang  fsl,no-blockmark-swap:
73493d37ceSAnson Huang    type: boolean
74493d37ceSAnson Huang    description: |
75493d37ceSAnson Huang      Don't swap the bad block marker from the OOB area with the byte in
76493d37ceSAnson Huang      the data area but rely on the flash based BBT for identifying bad blocks.
77493d37ceSAnson Huang      NOTE: this is only valid in conjunction with 'nand-on-flash-bbt'.
78493d37ceSAnson Huang      WARNING: on i.MX28 blockmark swapping cannot be disabled for the BootROM
79493d37ceSAnson Huang      in the FCB. Thus, partitions written from Linux with this feature turned
80493d37ceSAnson Huang      on may not be accessible by the BootROM code.
81493d37ceSAnson Huang
82493d37ceSAnson Huangrequired:
83493d37ceSAnson Huang  - compatible
84493d37ceSAnson Huang  - reg
85493d37ceSAnson Huang  - reg-names
86493d37ceSAnson Huang  - interrupts
87493d37ceSAnson Huang  - interrupt-names
88493d37ceSAnson Huang  - clocks
89493d37ceSAnson Huang  - clock-names
90493d37ceSAnson Huang  - dmas
91493d37ceSAnson Huang  - dma-names
92493d37ceSAnson Huang
93493d37ceSAnson HuangunevaluatedProperties: false
94493d37ceSAnson Huang
956d912c49SKrzysztof KozlowskiallOf:
96*1f79a611SRob Herring  - $ref: nand-controller.yaml
976d912c49SKrzysztof Kozlowski
986d912c49SKrzysztof Kozlowski  - if:
996d912c49SKrzysztof Kozlowski      properties:
1006d912c49SKrzysztof Kozlowski        compatible:
1016d912c49SKrzysztof Kozlowski          contains:
1026d912c49SKrzysztof Kozlowski            enum:
1036d912c49SKrzysztof Kozlowski              - fsl,imx23-gpmi-nand
1046d912c49SKrzysztof Kozlowski              - fsl,imx28-gpmi-nand
1056d912c49SKrzysztof Kozlowski    then:
1066d912c49SKrzysztof Kozlowski      properties:
1076d912c49SKrzysztof Kozlowski        clocks:
1086d912c49SKrzysztof Kozlowski          items:
1096d912c49SKrzysztof Kozlowski            - description: SoC gpmi io clock
1106d912c49SKrzysztof Kozlowski        clock-names:
1116d912c49SKrzysztof Kozlowski          items:
1126d912c49SKrzysztof Kozlowski            - const: gpmi_io
1136d912c49SKrzysztof Kozlowski
1146d912c49SKrzysztof Kozlowski  - if:
1156d912c49SKrzysztof Kozlowski      properties:
1166d912c49SKrzysztof Kozlowski        compatible:
1176d912c49SKrzysztof Kozlowski          contains:
1186d912c49SKrzysztof Kozlowski            enum:
1196d912c49SKrzysztof Kozlowski              - fsl,imx6q-gpmi-nand
1206d912c49SKrzysztof Kozlowski              - fsl,imx6sx-gpmi-nand
1216d912c49SKrzysztof Kozlowski    then:
1226d912c49SKrzysztof Kozlowski      properties:
1236d912c49SKrzysztof Kozlowski        clocks:
1246d912c49SKrzysztof Kozlowski          items:
1256d912c49SKrzysztof Kozlowski            - description: SoC gpmi io clock
1266d912c49SKrzysztof Kozlowski            - description: SoC gpmi apb clock
1276d912c49SKrzysztof Kozlowski            - description: SoC gpmi bch clock
1286d912c49SKrzysztof Kozlowski            - description: SoC gpmi bch apb clock
1296d912c49SKrzysztof Kozlowski            - description: SoC per1 bch clock
1306d912c49SKrzysztof Kozlowski        clock-names:
1316d912c49SKrzysztof Kozlowski          items:
1326d912c49SKrzysztof Kozlowski            - const: gpmi_io
1336d912c49SKrzysztof Kozlowski            - const: gpmi_apb
1346d912c49SKrzysztof Kozlowski            - const: gpmi_bch
1356d912c49SKrzysztof Kozlowski            - const: gpmi_bch_apb
1366d912c49SKrzysztof Kozlowski            - const: per1_bch
1376d912c49SKrzysztof Kozlowski
1386d912c49SKrzysztof Kozlowski  - if:
1396d912c49SKrzysztof Kozlowski      properties:
1406d912c49SKrzysztof Kozlowski        compatible:
1416d912c49SKrzysztof Kozlowski          contains:
1426d912c49SKrzysztof Kozlowski            const: fsl,imx7d-gpmi-nand
1436d912c49SKrzysztof Kozlowski    then:
1446d912c49SKrzysztof Kozlowski      properties:
1456d912c49SKrzysztof Kozlowski        clocks:
1466d912c49SKrzysztof Kozlowski          items:
1476d912c49SKrzysztof Kozlowski            - description: SoC gpmi io clock
1486d912c49SKrzysztof Kozlowski            - description: SoC gpmi bch apb clock
1496d912c49SKrzysztof Kozlowski        clock-names:
1506d912c49SKrzysztof Kozlowski          items:
1516d912c49SKrzysztof Kozlowski            - const: gpmi_io
1526d912c49SKrzysztof Kozlowski            - const: gpmi_bch_apb
1536d912c49SKrzysztof Kozlowski
154493d37ceSAnson Huangexamples:
155493d37ceSAnson Huang  - |
156493d37ceSAnson Huang    nand-controller@8000c000 {
157493d37ceSAnson Huang        #address-cells = <1>;
158493d37ceSAnson Huang        #size-cells = <0>;
159493d37ceSAnson Huang        compatible = "fsl,imx28-gpmi-nand";
160493d37ceSAnson Huang        reg = <0x8000c000 0x2000>, <0x8000a000 0x2000>;
161493d37ceSAnson Huang        reg-names = "gpmi-nand", "bch";
162493d37ceSAnson Huang        interrupts = <41>;
163493d37ceSAnson Huang        interrupt-names = "bch";
164493d37ceSAnson Huang        clocks = <&clks 50>;
165493d37ceSAnson Huang        clock-names = "gpmi_io";
166493d37ceSAnson Huang        dmas = <&dma_apbh 4>;
167493d37ceSAnson Huang        dma-names = "rx-tx";
168493d37ceSAnson Huang    };
169