fsl-qdma.yaml 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
  2. %YAML 1.2
  3. ---
  4. $id: http://devicetree.org/schemas/dma/fsl-qdma.yaml#
  5. $schema: http://devicetree.org/meta-schemas/core.yaml#
  6. title: NXP Layerscape SoC qDMA Controller
  7. maintainers:
  8. - Frank Li <Frank.Li@nxp.com>
  9. properties:
  10. compatible:
  11. oneOf:
  12. - const: fsl,ls1021a-qdma
  13. - items:
  14. - enum:
  15. - fsl,ls1028a-qdma
  16. - fsl,ls1043a-qdma
  17. - fsl,ls1046a-qdma
  18. - const: fsl,ls1021a-qdma
  19. reg:
  20. items:
  21. - description: Controller regs
  22. - description: Status regs
  23. - description: Block regs
  24. interrupts:
  25. minItems: 2
  26. maxItems: 5
  27. interrupt-names:
  28. minItems: 2
  29. items:
  30. - const: qdma-error
  31. - const: qdma-queue0
  32. - const: qdma-queue1
  33. - const: qdma-queue2
  34. - const: qdma-queue3
  35. dma-channels:
  36. minimum: 1
  37. maximum: 64
  38. fsl,dma-queues:
  39. $ref: /schemas/types.yaml#/definitions/uint32
  40. description: Should contain number of queues supported.
  41. minimum: 1
  42. maximum: 4
  43. block-number:
  44. $ref: /schemas/types.yaml#/definitions/uint32
  45. description: the virtual block number
  46. block-offset:
  47. $ref: /schemas/types.yaml#/definitions/uint32
  48. description: the offset of different virtual block
  49. status-sizes:
  50. $ref: /schemas/types.yaml#/definitions/uint32
  51. description: status queue size of per virtual block
  52. queue-sizes:
  53. $ref: /schemas/types.yaml#/definitions/uint32-array
  54. description:
  55. command queue size of per virtual block, the size number
  56. based on queues
  57. big-endian:
  58. $ref: /schemas/types.yaml#/definitions/flag
  59. description:
  60. If present registers and hardware scatter/gather descriptors
  61. of the qDMA are implemented in big endian mode, otherwise in little
  62. mode.
  63. required:
  64. - compatible
  65. - reg
  66. - interrupts
  67. - interrupt-names
  68. - fsl,dma-queues
  69. - block-number
  70. - block-offset
  71. - status-sizes
  72. - queue-sizes
  73. allOf:
  74. - $ref: dma-controller.yaml#
  75. - if:
  76. properties:
  77. compatible:
  78. contains:
  79. enum:
  80. - fsl,ls1028a-qdma
  81. - fsl,ls1043a-qdma
  82. - fsl,ls1046a-qdma
  83. then:
  84. properties:
  85. interrupts:
  86. minItems: 5
  87. interrupt-names:
  88. minItems: 5
  89. else:
  90. properties:
  91. interrupts:
  92. maxItems: 3
  93. interrupt-names:
  94. maxItems: 3
  95. unevaluatedProperties: false
  96. examples:
  97. - |
  98. #include <dt-bindings/interrupt-controller/arm-gic.h>
  99. dma-controller@8390000 {
  100. compatible = "fsl,ls1021a-qdma";
  101. reg = <0x8388000 0x1000>, /* Controller regs */
  102. <0x8389000 0x1000>, /* Status regs */
  103. <0x838a000 0x2000>; /* Block regs */
  104. interrupts = <GIC_SPI 185 IRQ_TYPE_LEVEL_HIGH>,
  105. <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>,
  106. <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
  107. interrupt-names = "qdma-error", "qdma-queue0", "qdma-queue1";
  108. #dma-cells = <1>;
  109. dma-channels = <8>;
  110. block-number = <2>;
  111. block-offset = <0x1000>;
  112. status-sizes = <64>;
  113. queue-sizes = <64 64>;
  114. big-endian;
  115. fsl,dma-queues = <2>;
  116. };