ti,sci-inta.yaml 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
  2. %YAML 1.2
  3. ---
  4. $id: http://devicetree.org/schemas/interrupt-controller/ti,sci-inta.yaml#
  5. $schema: http://devicetree.org/meta-schemas/core.yaml#
  6. title: Texas Instruments K3 Interrupt Aggregator
  7. maintainers:
  8. - Lokesh Vutla <lokeshvutla@ti.com>
  9. allOf:
  10. - $ref: /schemas/arm/keystone/ti,k3-sci-common.yaml#
  11. description: |
  12. The Interrupt Aggregator (INTA) provides a centralized machine
  13. which handles the termination of system events to that they can
  14. be coherently processed by the host(s) in the system. A maximum
  15. of 64 events can be mapped to a single interrupt.
  16. Interrupt Aggregator
  17. +-----------------------------------------+
  18. | Intmap VINT |
  19. | +--------------+ +------------+ |
  20. m ------>| | vint | bit | | 0 |.....|63| vint0 |
  21. . | +--------------+ +------------+ | +------+
  22. . | . . | | HOST |
  23. Globalevents ------>| . . |----->| IRQ |
  24. . | . . | | CTRL |
  25. . | . . | +------+
  26. n ------>| +--------------+ +------------+ |
  27. | | vint | bit | | 0 |.....|63| vintx |
  28. | +--------------+ +------------+ |
  29. | |
  30. | Unmap |
  31. | +--------------+ |
  32. Unmapped events ---->| | umapidx |-------------------------> Globalevents
  33. | +--------------+ |
  34. | |
  35. +-----------------------------------------+
  36. Configuration of these Intmap registers that maps global events to vint is
  37. done by a system controller (like the Device Memory and Security Controller
  38. on AM654 SoC). Driver should request the system controller to get the range
  39. of global events and vints assigned to the requesting host. Management
  40. of these requested resources should be handled by driver and requests
  41. system controller to map specific global event to vint, bit pair.
  42. Communication between the host processor running an OS and the system
  43. controller happens through a protocol called TI System Control Interface
  44. (TISCI protocol).
  45. properties:
  46. compatible:
  47. const: ti,sci-inta
  48. reg:
  49. maxItems: 1
  50. interrupt-controller: true
  51. '#interrupt-cells':
  52. const: 0
  53. msi-controller: true
  54. ti,interrupt-ranges:
  55. $ref: /schemas/types.yaml#/definitions/uint32-matrix
  56. description: |
  57. Interrupt ranges that converts the INTA output hw irq numbers
  58. to parents's input interrupt numbers.
  59. items:
  60. items:
  61. - description: |
  62. "output_irq" specifies the base for inta output irq
  63. - description: |
  64. "parent's input irq" specifies the base for parent irq
  65. - description: |
  66. "limit" specifies the limit for translation
  67. ti,unmapped-event-sources:
  68. $ref: /schemas/types.yaml#/definitions/phandle-array
  69. items:
  70. maxItems: 1
  71. description:
  72. Array of phandles to DMA controllers where the unmapped events originate.
  73. power-domains:
  74. maxItems: 1
  75. required:
  76. - compatible
  77. - reg
  78. - interrupt-controller
  79. - msi-controller
  80. - ti,sci
  81. - ti,sci-dev-id
  82. - ti,interrupt-ranges
  83. unevaluatedProperties: false
  84. examples:
  85. - |
  86. bus {
  87. #address-cells = <2>;
  88. #size-cells = <2>;
  89. main_udmass_inta: msi-controller@33d00000 {
  90. compatible = "ti,sci-inta";
  91. reg = <0x0 0x33d00000 0x0 0x100000>;
  92. interrupt-controller;
  93. msi-controller;
  94. interrupt-parent = <&main_navss_intr>;
  95. ti,sci = <&dmsc>;
  96. ti,sci-dev-id = <179>;
  97. ti,interrupt-ranges = <0 0 256>;
  98. };
  99. };