summaryrefslogtreecommitdiff
path: root/Documentation/devicetree/bindings/memory-controllers/synopsys,ddrc-ecc.yaml
blob: f46e95704f532a62991dfe2f8ef14b483cdced2b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
# SPDX-License-Identifier: GPL-2.0-only
%YAML 1.2
---
$id: http://devicetree.org/schemas/memory-controllers/synopsys,ddrc-ecc.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Synopsys IntelliDDR Multi Protocol memory controller

maintainers:
  - Krzysztof Kozlowski <krzk@kernel.org>
  - Manish Narani <manish.narani@xilinx.com>
  - Michal Simek <michal.simek@xilinx.com>

description: |
  The ZynqMP DDR ECC controller has an optional ECC support in 64-bit and
  32-bit bus width configurations.

  The Zynq DDR ECC controller has an optional ECC support in half-bus width
  (16-bit) configuration.

  These both ECC controllers correct single bit ECC errors and detect double bit
  ECC errors.

properties:
  compatible:
    enum:
      - snps,ddrc-3.80a
      - xlnx,zynq-ddrc-a05
      - xlnx,zynqmp-ddrc-2.40a

  interrupts:
    maxItems: 1

  reg:
    maxItems: 1

required:
  - compatible
  - reg

allOf:
  - if:
      properties:
        compatible:
          contains:
            enum:
              - snps,ddrc-3.80a
              - xlnx,zynqmp-ddrc-2.40a
    then:
      required:
        - interrupts
    else:
      properties:
        interrupts: false

additionalProperties: false

examples:
  - |
    memory-controller@f8006000 {
        compatible = "xlnx,zynq-ddrc-a05";
        reg = <0xf8006000 0x1000>;
    };

  - |
    axi {
        #address-cells = <2>;
        #size-cells = <2>;

        memory-controller@fd070000 {
            compatible = "xlnx,zynqmp-ddrc-2.40a";
            reg = <0x0 0xfd070000 0x0 0x30000>;
            interrupt-parent = <&gic>;
            interrupts = <0 112 4>;
        };
    };