| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- # SPDX-License-Identifier: GPL-2.0-only
- %YAML 1.2
- ---
- $id: http://devicetree.org/schemas/memory-controllers/snps,dw-umctl2-ddrc.yaml#
- $schema: http://devicetree.org/meta-schemas/core.yaml#
- title: Synopsys DesignWare Universal Multi-Protocol Memory Controller
- maintainers:
- - Krzysztof Kozlowski <krzk@kernel.org>
- - Michal Simek <michal.simek@amd.com>
- description: |
- Synopsys DesignWare Enhanced uMCTL2 DDR Memory Controller is capable of
- working with the memory devices supporting up to (LP)DDR4 protocol. It can
- be equipped with SEC/DEC ECC feature if DRAM data bus width is either
- 16-bits or 32-bits or 64-bits wide.
- For instance the ZynqMP DDR controller is based on the DW uMCTL2 v2.40a
- controller. It has an optional SEC/DEC ECC support in 64- and 32-bits
- bus width configurations.
- properties:
- compatible:
- oneOf:
- - deprecated: true
- description: Synopsys DW uMCTL2 DDR controller v3.80a
- const: snps,ddrc-3.80a
- - description: Synopsys DW uMCTL2 DDR controller
- const: snps,dw-umctl2-ddrc
- - description: Xilinx ZynqMP DDR controller v2.40a
- const: xlnx,zynqmp-ddrc-2.40a
- interrupts:
- description:
- DW uMCTL2 DDRC IP-core provides individual IRQ signal for each event":"
- ECC Corrected Error, ECC Uncorrected Error, ECC Address Protection,
- Scrubber-Done signal, DFI Parity/CRC Error. Some platforms may have the
- signals merged before they reach the IRQ controller or have some of them
- absent in case if the corresponding feature is unavailable/disabled.
- minItems: 1
- maxItems: 5
- interrupt-names:
- minItems: 1
- maxItems: 5
- oneOf:
- - description: Common ECC CE/UE/Scrubber/DFI Errors IRQ
- items:
- - const: ecc
- - description: Individual ECC CE/UE/Scrubber/DFI Errors IRQs
- items:
- enum: [ ecc_ce, ecc_ue, ecc_ap, ecc_sbr, dfi_e ]
- reg:
- maxItems: 1
- clocks:
- description:
- A standard set of the clock sources contains CSRs bus clock, AXI-ports
- reference clock, DDRC core clock, Scrubber standalone clock
- (synchronous to the DDRC clock).
- minItems: 1
- maxItems: 4
- clock-names:
- minItems: 1
- maxItems: 4
- items:
- enum: [ pclk, aclk, core, sbr ]
- resets:
- description:
- Each clock domain can have separate reset signal.
- minItems: 1
- maxItems: 4
- reset-names:
- minItems: 1
- maxItems: 4
- items:
- enum: [ prst, arst, core, sbr ]
- required:
- - compatible
- - reg
- - interrupts
- additionalProperties: false
- examples:
- - |
- #include <dt-bindings/interrupt-controller/arm-gic.h>
- memory-controller@fd070000 {
- compatible = "xlnx,zynqmp-ddrc-2.40a";
- reg = <0xfd070000 0x30000>;
- interrupt-parent = <&gic>;
- interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
- interrupt-names = "ecc";
- };
- - |
- #include <dt-bindings/interrupt-controller/irq.h>
- memory-controller@3d400000 {
- compatible = "snps,dw-umctl2-ddrc";
- reg = <0x3d400000 0x400000>;
- interrupts = <147 IRQ_TYPE_LEVEL_HIGH>, <148 IRQ_TYPE_LEVEL_HIGH>,
- <149 IRQ_TYPE_LEVEL_HIGH>, <150 IRQ_TYPE_LEVEL_HIGH>;
- interrupt-names = "ecc_ce", "ecc_ue", "ecc_sbr", "dfi_e";
- clocks = <&pclk>, <&aclk>, <&core_clk>, <&sbr_clk>;
- clock-names = "pclk", "aclk", "core", "sbr";
- };
- ...
|