apple,aic2.yaml 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
  2. %YAML 1.2
  3. ---
  4. $id: http://devicetree.org/schemas/interrupt-controller/apple,aic2.yaml#
  5. $schema: http://devicetree.org/meta-schemas/core.yaml#
  6. title: Apple Interrupt Controller 2
  7. maintainers:
  8. - Hector Martin <marcan@marcan.st>
  9. description: |
  10. The Apple Interrupt Controller 2 is a simple interrupt controller present on
  11. Apple ARM SoC platforms starting with t600x (M1 Pro and Max).
  12. It provides the following features:
  13. - Level-triggered hardware IRQs wired to SoC blocks
  14. - Single mask bit per IRQ
  15. - Automatic masking on event delivery (auto-ack)
  16. - Software triggering (ORed with hw line)
  17. - Automatic prioritization (single event/ack register per CPU, lower IRQs =
  18. higher priority)
  19. - Automatic masking on ack
  20. - Support for multiple dies
  21. This device also represents the FIQ interrupt sources on platforms using AIC,
  22. which do not go through a discrete interrupt controller. It also handles
  23. FIQ-based Fast IPIs.
  24. properties:
  25. compatible:
  26. items:
  27. - enum:
  28. - apple,t8112-aic
  29. - apple,t6000-aic
  30. - const: apple,aic2
  31. interrupt-controller: true
  32. '#interrupt-cells':
  33. minimum: 3
  34. maximum: 4
  35. description: |
  36. The 1st cell contains the interrupt type:
  37. - 0: Hardware IRQ
  38. - 1: FIQ
  39. The 2nd cell contains the die ID (only present on apple,t6000-aic).
  40. The next cell contains the interrupt number.
  41. - HW IRQs: interrupt number
  42. - FIQs:
  43. - 0: physical HV timer
  44. - 1: virtual HV timer
  45. - 2: physical guest timer
  46. - 3: virtual guest timer
  47. The last cell contains the interrupt flags. This is normally
  48. IRQ_TYPE_LEVEL_HIGH (4).
  49. reg:
  50. items:
  51. - description: Address and size of the main AIC2 registers.
  52. - description: Address and size of the AIC2 Event register.
  53. reg-names:
  54. items:
  55. - const: core
  56. - const: event
  57. power-domains:
  58. maxItems: 1
  59. affinities:
  60. type: object
  61. additionalProperties: false
  62. description:
  63. FIQ affinity can be expressed as a single "affinities" node,
  64. containing a set of sub-nodes, one per FIQ with a non-default
  65. affinity.
  66. patternProperties:
  67. "^.+-affinity$":
  68. type: object
  69. additionalProperties: false
  70. properties:
  71. apple,fiq-index:
  72. description:
  73. The interrupt number specified as a FIQ, and for which
  74. the affinity is not the default.
  75. $ref: /schemas/types.yaml#/definitions/uint32
  76. maximum: 5
  77. cpus:
  78. $ref: /schemas/types.yaml#/definitions/phandle-array
  79. description:
  80. Should be a list of phandles to CPU nodes (as described in
  81. Documentation/devicetree/bindings/arm/cpus.yaml).
  82. required:
  83. - apple,fiq-index
  84. - cpus
  85. required:
  86. - compatible
  87. - '#interrupt-cells'
  88. - interrupt-controller
  89. - reg
  90. - reg-names
  91. additionalProperties: false
  92. allOf:
  93. - $ref: /schemas/interrupt-controller.yaml#
  94. - if:
  95. properties:
  96. compatible:
  97. contains:
  98. const: apple,t8112-aic
  99. then:
  100. properties:
  101. '#interrupt-cells':
  102. const: 3
  103. else:
  104. properties:
  105. '#interrupt-cells':
  106. const: 4
  107. examples:
  108. - |
  109. soc {
  110. #address-cells = <2>;
  111. #size-cells = <2>;
  112. aic: interrupt-controller@28e100000 {
  113. compatible = "apple,t6000-aic", "apple,aic2";
  114. #interrupt-cells = <4>;
  115. interrupt-controller;
  116. reg = <0x2 0x8e100000 0x0 0xc000>,
  117. <0x2 0x8e10c000 0x0 0x4>;
  118. reg-names = "core", "event";
  119. };
  120. };