xref: /freebsd-src/sys/contrib/device-tree/Bindings/mtd/mediatek,nand-ecc-engine.yaml (revision cb7aa33ac6cd46a5434798e50363136e64f3ae98)
1*cb7aa33aSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*cb7aa33aSEmmanuel Vadot%YAML 1.2
3*cb7aa33aSEmmanuel Vadot---
4*cb7aa33aSEmmanuel Vadot$id: http://devicetree.org/schemas/mtd/mediatek,nand-ecc-engine.yaml#
5*cb7aa33aSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*cb7aa33aSEmmanuel Vadot
7*cb7aa33aSEmmanuel Vadottitle: MediaTek(MTK) SoCs NAND ECC engine
8*cb7aa33aSEmmanuel Vadot
9*cb7aa33aSEmmanuel Vadotmaintainers:
10*cb7aa33aSEmmanuel Vadot  - Xiangsheng Hou <xiangsheng.hou@mediatek.com>
11*cb7aa33aSEmmanuel Vadot
12*cb7aa33aSEmmanuel Vadotdescription: |
13*cb7aa33aSEmmanuel Vadot  MTK NAND ECC engine can cowork with MTK raw NAND and SPI NAND controller.
14*cb7aa33aSEmmanuel Vadot
15*cb7aa33aSEmmanuel Vadotproperties:
16*cb7aa33aSEmmanuel Vadot  compatible:
17*cb7aa33aSEmmanuel Vadot    enum:
18*cb7aa33aSEmmanuel Vadot      - mediatek,mt2701-ecc
19*cb7aa33aSEmmanuel Vadot      - mediatek,mt2712-ecc
20*cb7aa33aSEmmanuel Vadot      - mediatek,mt7622-ecc
21*cb7aa33aSEmmanuel Vadot      - mediatek,mt7986-ecc
22*cb7aa33aSEmmanuel Vadot
23*cb7aa33aSEmmanuel Vadot  reg:
24*cb7aa33aSEmmanuel Vadot    items:
25*cb7aa33aSEmmanuel Vadot      - description: Base physical address and size of ECC.
26*cb7aa33aSEmmanuel Vadot
27*cb7aa33aSEmmanuel Vadot  interrupts:
28*cb7aa33aSEmmanuel Vadot    items:
29*cb7aa33aSEmmanuel Vadot      - description: ECC interrupt
30*cb7aa33aSEmmanuel Vadot
31*cb7aa33aSEmmanuel Vadot  clocks:
32*cb7aa33aSEmmanuel Vadot    maxItems: 1
33*cb7aa33aSEmmanuel Vadot
34*cb7aa33aSEmmanuel Vadot  clock-names:
35*cb7aa33aSEmmanuel Vadot    const: nfiecc_clk
36*cb7aa33aSEmmanuel Vadot
37*cb7aa33aSEmmanuel Vadotrequired:
38*cb7aa33aSEmmanuel Vadot  - compatible
39*cb7aa33aSEmmanuel Vadot  - reg
40*cb7aa33aSEmmanuel Vadot  - interrupts
41*cb7aa33aSEmmanuel Vadot  - clocks
42*cb7aa33aSEmmanuel Vadot  - clock-names
43*cb7aa33aSEmmanuel Vadot
44*cb7aa33aSEmmanuel VadotadditionalProperties: false
45*cb7aa33aSEmmanuel Vadot
46*cb7aa33aSEmmanuel Vadotexamples:
47*cb7aa33aSEmmanuel Vadot  - |
48*cb7aa33aSEmmanuel Vadot    #include <dt-bindings/clock/mt2701-clk.h>
49*cb7aa33aSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
50*cb7aa33aSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/irq.h>
51*cb7aa33aSEmmanuel Vadot
52*cb7aa33aSEmmanuel Vadot    soc {
53*cb7aa33aSEmmanuel Vadot        #address-cells = <2>;
54*cb7aa33aSEmmanuel Vadot        #size-cells = <2>;
55*cb7aa33aSEmmanuel Vadot
56*cb7aa33aSEmmanuel Vadot        bch: ecc@1100e000 {
57*cb7aa33aSEmmanuel Vadot            compatible = "mediatek,mt2701-ecc";
58*cb7aa33aSEmmanuel Vadot            reg = <0 0x1100e000 0 0x1000>;
59*cb7aa33aSEmmanuel Vadot            interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_LOW>;
60*cb7aa33aSEmmanuel Vadot            clocks = <&pericfg CLK_PERI_NFI_ECC>;
61*cb7aa33aSEmmanuel Vadot            clock-names = "nfiecc_clk";
62*cb7aa33aSEmmanuel Vadot        };
63*cb7aa33aSEmmanuel Vadot    };
64