xref: /linux/Documentation/devicetree/bindings/interrupt-controller/atmel,aic.yaml (revision 79790b6818e96c58fe2bffee1b418c16e64e7b80)
1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/interrupt-controller/atmel,aic.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Advanced Interrupt Controller (AIC)
8
9maintainers:
10  - Nicolas Ferre <nicolas.ferre@microchip.com>
11  - Dharma balasubiramani <dharma.b@microchip.com>
12
13description:
14  The Advanced Interrupt Controller (AIC) is an 8-level priority, individually
15  maskable, vectored interrupt controller providing handling of up to one
16  hundred and twenty-eight interrupt sources.
17
18properties:
19  compatible:
20    enum:
21      - atmel,at91rm9200-aic
22      - atmel,sama5d2-aic
23      - atmel,sama5d3-aic
24      - atmel,sama5d4-aic
25      - microchip,sam9x60-aic
26
27  reg:
28    maxItems: 1
29
30  interrupt-controller: true
31
32  "#interrupt-cells":
33    const: 3
34    description: |
35      The 1st cell is the IRQ number (Peripheral IDentifier on datasheet).
36      The 2nd cell specifies flags:
37        bits[3:0] trigger type and level flags:
38          1 = low-to-high edge triggered.
39          2 = high-to-low edge triggered.
40          4 = active high level-sensitive.
41          8 = active low level-sensitive.
42        Valid combinations: 1, 2, 3, 4, 8.
43        Default for internal sources: 4 (active high).
44      The 3rd cell specifies irq priority from 0 (lowest) to 7 (highest).
45
46  interrupts:
47    maxItems: 1
48
49  atmel,external-irqs:
50    $ref: /schemas/types.yaml#/definitions/uint32-array
51    description: u32 array of external irqs.
52
53allOf:
54  - $ref: /schemas/interrupt-controller.yaml#
55  - if:
56      properties:
57        compatible:
58          contains:
59            const: atmel,at91rm9200-aic
60    then:
61      properties:
62        atmel,external-irqs:
63          minItems: 1
64          maxItems: 7
65    else:
66      properties:
67        atmel,external-irqs:
68          minItems: 1
69          maxItems: 1
70
71required:
72  - compatible
73  - reg
74  - interrupt-controller
75  - "#interrupt-cells"
76  - atmel,external-irqs
77
78unevaluatedProperties: false
79
80examples:
81  - |
82    interrupt-controller@fffff000 {
83      compatible = "atmel,at91rm9200-aic";
84      reg = <0xfffff000 0x200>;
85      interrupt-controller;
86      #interrupt-cells = <3>;
87      atmel,external-irqs = <31>;
88    };
89...
90