Linux-libre 5.3.12-gnu
[librecmc/linux-libre.git] / Documentation / devicetree / bindings / interrupt-controller / atmel,aic.txt
1 * Advanced Interrupt Controller (AIC)
2
3 Required properties:
4 - compatible: Should be "atmel,<chip>-aic"
5   <chip> can be "at91rm9200", "sama5d2", "sama5d3" or "sama5d4"
6 - interrupt-controller: Identifies the node as an interrupt controller.
7 - #interrupt-cells: The number of cells to define the interrupts. It should be 3.
8   The first cell is the IRQ number (aka "Peripheral IDentifier" on datasheet).
9   The second cell is used to specify flags:
10     bits[3:0] trigger type and level flags:
11       1 = low-to-high edge triggered.
12       2 = high-to-low edge triggered.
13       4 = active high level-sensitive.
14       8 = active low level-sensitive.
15       Valid combinations are 1, 2, 3, 4, 8.
16       Default flag for internal sources should be set to 4 (active high).
17   The third cell is used to specify the irq priority from 0 (lowest) to 7
18   (highest).
19 - reg: Should contain AIC registers location and length
20 - atmel,external-irqs: u32 array of external irqs.
21
22 Examples:
23         /*
24          * AIC
25          */
26         aic: interrupt-controller@fffff000 {
27                 compatible = "atmel,at91rm9200-aic";
28                 interrupt-controller;
29                 #interrupt-cells = <3>;
30                 reg = <0xfffff000 0x200>;
31         };
32
33         /*
34          * An interrupt generating device that is wired to an AIC.
35          */
36         dma: dma-controller@ffffec00 {
37                 compatible = "atmel,at91sam9g45-dma";
38                 reg = <0xffffec00 0x200>;
39                 interrupts = <21 4 5>;
40         };