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