snps,dw-umctl2-ddrc.yaml 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. # SPDX-License-Identifier: GPL-2.0-only
  2. %YAML 1.2
  3. ---
  4. $id: http://devicetree.org/schemas/memory-controllers/snps,dw-umctl2-ddrc.yaml#
  5. $schema: http://devicetree.org/meta-schemas/core.yaml#
  6. title: Synopsys DesignWare Universal Multi-Protocol Memory Controller
  7. maintainers:
  8. - Krzysztof Kozlowski <krzk@kernel.org>
  9. - Michal Simek <michal.simek@amd.com>
  10. description: |
  11. Synopsys DesignWare Enhanced uMCTL2 DDR Memory Controller is capable of
  12. working with the memory devices supporting up to (LP)DDR4 protocol. It can
  13. be equipped with SEC/DEC ECC feature if DRAM data bus width is either
  14. 16-bits or 32-bits or 64-bits wide.
  15. For instance the ZynqMP DDR controller is based on the DW uMCTL2 v2.40a
  16. controller. It has an optional SEC/DEC ECC support in 64- and 32-bits
  17. bus width configurations.
  18. properties:
  19. compatible:
  20. oneOf:
  21. - deprecated: true
  22. description: Synopsys DW uMCTL2 DDR controller v3.80a
  23. const: snps,ddrc-3.80a
  24. - description: Synopsys DW uMCTL2 DDR controller
  25. const: snps,dw-umctl2-ddrc
  26. - description: Xilinx ZynqMP DDR controller v2.40a
  27. const: xlnx,zynqmp-ddrc-2.40a
  28. interrupts:
  29. description:
  30. DW uMCTL2 DDRC IP-core provides individual IRQ signal for each event":"
  31. ECC Corrected Error, ECC Uncorrected Error, ECC Address Protection,
  32. Scrubber-Done signal, DFI Parity/CRC Error. Some platforms may have the
  33. signals merged before they reach the IRQ controller or have some of them
  34. absent in case if the corresponding feature is unavailable/disabled.
  35. minItems: 1
  36. maxItems: 5
  37. interrupt-names:
  38. minItems: 1
  39. maxItems: 5
  40. oneOf:
  41. - description: Common ECC CE/UE/Scrubber/DFI Errors IRQ
  42. items:
  43. - const: ecc
  44. - description: Individual ECC CE/UE/Scrubber/DFI Errors IRQs
  45. items:
  46. enum: [ ecc_ce, ecc_ue, ecc_ap, ecc_sbr, dfi_e ]
  47. reg:
  48. maxItems: 1
  49. clocks:
  50. description:
  51. A standard set of the clock sources contains CSRs bus clock, AXI-ports
  52. reference clock, DDRC core clock, Scrubber standalone clock
  53. (synchronous to the DDRC clock).
  54. minItems: 1
  55. maxItems: 4
  56. clock-names:
  57. minItems: 1
  58. maxItems: 4
  59. items:
  60. enum: [ pclk, aclk, core, sbr ]
  61. resets:
  62. description:
  63. Each clock domain can have separate reset signal.
  64. minItems: 1
  65. maxItems: 4
  66. reset-names:
  67. minItems: 1
  68. maxItems: 4
  69. items:
  70. enum: [ prst, arst, core, sbr ]
  71. required:
  72. - compatible
  73. - reg
  74. - interrupts
  75. additionalProperties: false
  76. examples:
  77. - |
  78. #include <dt-bindings/interrupt-controller/arm-gic.h>
  79. memory-controller@fd070000 {
  80. compatible = "xlnx,zynqmp-ddrc-2.40a";
  81. reg = <0xfd070000 0x30000>;
  82. interrupt-parent = <&gic>;
  83. interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
  84. interrupt-names = "ecc";
  85. };
  86. - |
  87. #include <dt-bindings/interrupt-controller/irq.h>
  88. memory-controller@3d400000 {
  89. compatible = "snps,dw-umctl2-ddrc";
  90. reg = <0x3d400000 0x400000>;
  91. interrupts = <147 IRQ_TYPE_LEVEL_HIGH>, <148 IRQ_TYPE_LEVEL_HIGH>,
  92. <149 IRQ_TYPE_LEVEL_HIGH>, <150 IRQ_TYPE_LEVEL_HIGH>;
  93. interrupt-names = "ecc_ce", "ecc_ue", "ecc_sbr", "dfi_e";
  94. clocks = <&pclk>, <&aclk>, <&core_clk>, <&sbr_clk>;
  95. clock-names = "pclk", "aclk", "core", "sbr";
  96. };
  97. ...