Documentation / devicetree / bindings / memory-controllers / synopsys,ddrc-ecc.yaml


Based on kernel version 6.0.19. Page generated on 2023-08-28 22:35 EST.

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>;
        };
    };