~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/devicetree/bindings/interrupt-controller/apple,aic.yaml

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  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,aic.yaml#
  5 $schema: http://devicetree.org/meta-schemas/core.yaml#
  6 
  7 title: Apple Interrupt Controller
  8 
  9 maintainers:
 10   - Hector Martin <marcan@marcan.st>
 11 
 12 description: |
 13   The Apple Interrupt Controller is a simple interrupt controller present on
 14   Apple ARM SoC platforms, including various iPhone and iPad devices and the
 15   "Apple Silicon" Macs.
 16 
 17   It provides the following features:
 18 
 19   - Level-triggered hardware IRQs wired to SoC blocks
 20     - Single mask bit per IRQ
 21     - Per-IRQ affinity setting
 22     - Automatic masking on event delivery (auto-ack)
 23     - Software triggering (ORed with hw line)
 24   - 2 per-CPU IPIs (meant as "self" and "other", but they are interchangeable
 25     if not symmetric)
 26   - Automatic prioritization (single event/ack register per CPU, lower IRQs =
 27     higher priority)
 28   - Automatic masking on ack
 29   - Default "this CPU" register view and explicit per-CPU views
 30 
 31   This device also represents the FIQ interrupt sources on platforms using AIC,
 32   which do not go through a discrete interrupt controller.
 33 
 34   IPIs may be performed via MMIO registers on all variants of AIC. Starting
 35   from A11, system registers may also be used for "fast" IPIs. Starting from
 36   M1, even faster IPIs within the same cluster may be achieved by writing to
 37   a "local" fast IPI register as opposed to using the "global" fast IPI
 38   register.
 39 
 40 allOf:
 41   - $ref: /schemas/interrupt-controller.yaml#
 42 
 43 properties:
 44   compatible:
 45     items:
 46       - enum:
 47           - apple,s5l8960x-aic
 48           - apple,t7000-aic
 49           - apple,s8000-aic
 50           - apple,t8010-aic
 51           - apple,t8015-aic
 52           - apple,t8103-aic
 53       - const: apple,aic
 54 
 55   interrupt-controller: true
 56 
 57   '#interrupt-cells':
 58     const: 3
 59     description: |
 60       The 1st cell contains the interrupt type:
 61         - 0: Hardware IRQ
 62         - 1: FIQ
 63 
 64       The 2nd cell contains the interrupt number.
 65         - HW IRQs: interrupt number
 66         - FIQs:
 67           - 0: physical HV timer
 68           - 1: virtual HV timer
 69           - 2: physical guest timer
 70           - 3: virtual guest timer
 71           - 4: 'efficient' CPU PMU
 72           - 5: 'performance' CPU PMU
 73 
 74       The 3rd cell contains the interrupt flags. This is normally
 75       IRQ_TYPE_LEVEL_HIGH (4).
 76 
 77   reg:
 78     description: |
 79       Specifies base physical address and size of the AIC registers.
 80     maxItems: 1
 81 
 82   power-domains:
 83     maxItems: 1
 84 
 85   affinities:
 86     type: object
 87     additionalProperties: false
 88     description:
 89       FIQ affinity can be expressed as a single "affinities" node,
 90       containing a set of sub-nodes, one per FIQ with a non-default
 91       affinity.
 92     patternProperties:
 93       "^.+-affinity$":
 94         type: object
 95         additionalProperties: false
 96         properties:
 97           apple,fiq-index:
 98             description:
 99               The interrupt number specified as a FIQ, and for which
100               the affinity is not the default.
101             $ref: /schemas/types.yaml#/definitions/uint32
102             maximum: 5
103 
104           cpus:
105             description:
106               Should be a list of phandles to CPU nodes (as described in
107               Documentation/devicetree/bindings/arm/cpus.yaml).
108 
109         required:
110           - apple,fiq-index
111           - cpus
112 
113 required:
114   - compatible
115   - '#interrupt-cells'
116   - interrupt-controller
117   - reg
118 
119 additionalProperties: false
120 
121 examples:
122   - |
123     soc {
124         #address-cells = <2>;
125         #size-cells = <2>;
126 
127         aic: interrupt-controller@23b100000 {
128             compatible = "apple,t8103-aic", "apple,aic";
129             #interrupt-cells = <3>;
130             interrupt-controller;
131             reg = <0x2 0x3b100000 0x0 0x8000>;
132         };
133     };

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php