xref: /linux/Documentation/devicetree/bindings/mtd/mxic,multi-itfc-v009-nand-controller.yaml (revision 1b49e363252632d0493546511a41a65ed1a6fbbb)
1# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2
3%YAML 1.2
4---
5$id: http://devicetree.org/schemas/mtd/mxic,multi-itfc-v009-nand-controller.yaml#
6$schema: http://devicetree.org/meta-schemas/core.yaml#
7
8title: Macronix Raw NAND Controller
9
10maintainers:
11  - Mason Yang <masonccyang@mxic.com.tw>
12
13description:
14  The Macronix Multi-Interface Raw NAND Controller is a versatile flash
15  memory controller for embedding in SoCs, capable of interfacing with
16  various NAND devices. It requires dedicated clock inputs for core, data
17  transmit, and delayed transmit paths along with register space and an
18  interrupt line for operation.
19
20allOf:
21  - $ref: nand-controller.yaml#
22
23properties:
24  compatible:
25    const: mxic,multi-itfc-v009-nand-controller
26
27  reg:
28    maxItems: 1
29
30  interrupts:
31    maxItems: 1
32
33  "#address-cells":
34    const: 1
35
36  "#size-cells":
37    const: 0
38
39  clocks:
40    minItems: 3
41    maxItems: 3
42
43  clock-names:
44    items:
45      - const: ps
46      - const: send
47      - const: send_dly
48
49required:
50  - compatible
51  - reg
52  - interrupts
53  - "#address-cells"
54  - "#size-cells"
55  - clocks
56  - clock-names
57
58unevaluatedProperties: false
59
60examples:
61  - |
62    #include <dt-bindings/interrupt-controller/arm-gic.h>
63    nand-controller@43c30000 {
64        compatible = "mxic,multi-itfc-v009-nand-controller";
65        reg = <0x43c30000 0x10000>;
66        #address-cells = <1>;
67        #size-cells = <0>;
68        interrupts = <GIC_SPI 0x1d IRQ_TYPE_EDGE_RISING>;
69        clocks = <&clkwizard 0>, <&clkwizard 1>, <&clkc 15>;
70        clock-names = "ps", "send", "send_dly";
71
72        nand@0 {
73            reg = <0>;
74            nand-ecc-mode = "soft";
75            nand-ecc-algo = "bch";
76        };
77    };
78...
79