xref: /freebsd/sys/contrib/device-tree/Bindings/memory-controllers/synopsys,ddrc-ecc.yaml (revision c9ccf3a32da427475985b85d7df023ccfb138c27)
1354d7675SEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0-only
2354d7675SEmmanuel Vadot%YAML 1.2
3354d7675SEmmanuel Vadot---
4354d7675SEmmanuel Vadot$id: http://devicetree.org/schemas/memory-controllers/synopsys,ddrc-ecc.yaml#
5354d7675SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6354d7675SEmmanuel Vadot
7354d7675SEmmanuel Vadottitle: Synopsys IntelliDDR Multi Protocol memory controller
8354d7675SEmmanuel Vadot
9354d7675SEmmanuel Vadotmaintainers:
10*c9ccf3a3SEmmanuel Vadot  - Krzysztof Kozlowski <krzk@kernel.org>
11354d7675SEmmanuel Vadot  - Manish Narani <manish.narani@xilinx.com>
12354d7675SEmmanuel Vadot  - Michal Simek <michal.simek@xilinx.com>
13354d7675SEmmanuel Vadot
14354d7675SEmmanuel Vadotdescription: |
15354d7675SEmmanuel Vadot  The ZynqMP DDR ECC controller has an optional ECC support in 64-bit and
16354d7675SEmmanuel Vadot  32-bit bus width configurations.
17354d7675SEmmanuel Vadot
18354d7675SEmmanuel Vadot  The Zynq DDR ECC controller has an optional ECC support in half-bus width
19354d7675SEmmanuel Vadot  (16-bit) configuration.
20354d7675SEmmanuel Vadot
21354d7675SEmmanuel Vadot  These both ECC controllers correct single bit ECC errors and detect double bit
22354d7675SEmmanuel Vadot  ECC errors.
23354d7675SEmmanuel Vadot
24354d7675SEmmanuel Vadotproperties:
25354d7675SEmmanuel Vadot  compatible:
26354d7675SEmmanuel Vadot    enum:
27*c9ccf3a3SEmmanuel Vadot      - snps,ddrc-3.80a
28354d7675SEmmanuel Vadot      - xlnx,zynq-ddrc-a05
29354d7675SEmmanuel Vadot      - xlnx,zynqmp-ddrc-2.40a
30354d7675SEmmanuel Vadot
31354d7675SEmmanuel Vadot  interrupts:
32354d7675SEmmanuel Vadot    maxItems: 1
33354d7675SEmmanuel Vadot
34354d7675SEmmanuel Vadot  reg:
35354d7675SEmmanuel Vadot    maxItems: 1
36354d7675SEmmanuel Vadot
37354d7675SEmmanuel Vadotrequired:
38354d7675SEmmanuel Vadot  - compatible
39354d7675SEmmanuel Vadot  - reg
40354d7675SEmmanuel Vadot
41354d7675SEmmanuel VadotallOf:
42354d7675SEmmanuel Vadot  - if:
43354d7675SEmmanuel Vadot      properties:
44354d7675SEmmanuel Vadot        compatible:
45354d7675SEmmanuel Vadot          contains:
46*c9ccf3a3SEmmanuel Vadot            enum:
47*c9ccf3a3SEmmanuel Vadot              - snps,ddrc-3.80a
48*c9ccf3a3SEmmanuel Vadot              - xlnx,zynqmp-ddrc-2.40a
49354d7675SEmmanuel Vadot    then:
50354d7675SEmmanuel Vadot      required:
51354d7675SEmmanuel Vadot        - interrupts
52354d7675SEmmanuel Vadot    else:
53354d7675SEmmanuel Vadot      properties:
54354d7675SEmmanuel Vadot        interrupts: false
55354d7675SEmmanuel Vadot
56354d7675SEmmanuel VadotadditionalProperties: false
57354d7675SEmmanuel Vadot
58354d7675SEmmanuel Vadotexamples:
59354d7675SEmmanuel Vadot  - |
60354d7675SEmmanuel Vadot    memory-controller@f8006000 {
61354d7675SEmmanuel Vadot        compatible = "xlnx,zynq-ddrc-a05";
62354d7675SEmmanuel Vadot        reg = <0xf8006000 0x1000>;
63354d7675SEmmanuel Vadot    };
64354d7675SEmmanuel Vadot
65354d7675SEmmanuel Vadot  - |
66354d7675SEmmanuel Vadot    axi {
67354d7675SEmmanuel Vadot        #address-cells = <2>;
68354d7675SEmmanuel Vadot        #size-cells = <2>;
69354d7675SEmmanuel Vadot
70354d7675SEmmanuel Vadot        memory-controller@fd070000 {
71354d7675SEmmanuel Vadot            compatible = "xlnx,zynqmp-ddrc-2.40a";
72354d7675SEmmanuel Vadot            reg = <0x0 0xfd070000 0x0 0x30000>;
73354d7675SEmmanuel Vadot            interrupt-parent = <&gic>;
74354d7675SEmmanuel Vadot            interrupts = <0 112 4>;
75354d7675SEmmanuel Vadot        };
76354d7675SEmmanuel Vadot    };
77