Back to home page

OSCL-LXR

 
 

    


0001 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
0002 %YAML 1.2
0003 ---
0004 $id: http://devicetree.org/schemas/interrupt-controller/apple,aic2.yaml#
0005 $schema: http://devicetree.org/meta-schemas/core.yaml#
0006 
0007 title: Apple Interrupt Controller 2
0008 
0009 maintainers:
0010   - Hector Martin <marcan@marcan.st>
0011 
0012 description: |
0013   The Apple Interrupt Controller 2 is a simple interrupt controller present on
0014   Apple ARM SoC platforms starting with t600x (M1 Pro and Max).
0015 
0016   It provides the following features:
0017 
0018   - Level-triggered hardware IRQs wired to SoC blocks
0019     - Single mask bit per IRQ
0020     - Automatic masking on event delivery (auto-ack)
0021     - Software triggering (ORed with hw line)
0022   - Automatic prioritization (single event/ack register per CPU, lower IRQs =
0023     higher priority)
0024   - Automatic masking on ack
0025   - Support for multiple dies
0026 
0027   This device also represents the FIQ interrupt sources on platforms using AIC,
0028   which do not go through a discrete interrupt controller. It also handles
0029   FIQ-based Fast IPIs.
0030 
0031 properties:
0032   compatible:
0033     items:
0034       - const: apple,t6000-aic
0035       - const: apple,aic2
0036 
0037   interrupt-controller: true
0038 
0039   '#interrupt-cells':
0040     const: 4
0041     description: |
0042       The 1st cell contains the interrupt type:
0043         - 0: Hardware IRQ
0044         - 1: FIQ
0045 
0046       The 2nd cell contains the die ID.
0047 
0048       The next cell contains the interrupt number.
0049         - HW IRQs: interrupt number
0050         - FIQs:
0051           - 0: physical HV timer
0052           - 1: virtual HV timer
0053           - 2: physical guest timer
0054           - 3: virtual guest timer
0055 
0056       The last cell contains the interrupt flags. This is normally
0057       IRQ_TYPE_LEVEL_HIGH (4).
0058 
0059   reg:
0060     items:
0061       - description: Address and size of the main AIC2 registers.
0062       - description: Address and size of the AIC2 Event register.
0063 
0064   reg-names:
0065     items:
0066       - const: core
0067       - const: event
0068 
0069   power-domains:
0070     maxItems: 1
0071 
0072 required:
0073   - compatible
0074   - '#interrupt-cells'
0075   - interrupt-controller
0076   - reg
0077   - reg-names
0078 
0079 additionalProperties: false
0080 
0081 allOf:
0082   - $ref: /schemas/interrupt-controller.yaml#
0083 
0084 examples:
0085   - |
0086     soc {
0087         #address-cells = <2>;
0088         #size-cells = <2>;
0089 
0090         aic: interrupt-controller@28e100000 {
0091             compatible = "apple,t6000-aic", "apple,aic2";
0092             #interrupt-cells = <4>;
0093             interrupt-controller;
0094             reg = <0x2 0x8e100000 0x0 0xc000>,
0095                   <0x2 0x8e10c000 0x0 0x4>;
0096             reg-names = "core", "event";
0097         };
0098     };