blob: d4658fe3867caba900e6d7a14c3fdd2fa398de9e [file] [log] [blame]
Tom Rini6bb92fc2024-05-20 09:54:58 -06001# 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...