forked from Minki/linux
e261501d05
Add an irqdomain for the AIC interrupt controller. The device tree support is mapping the registers and is using the irq_domain_add_legacy() to manage hwirq translation. The documentation is describing the meaning of the two cells required for using this "interrupt-controller" in a device tree node. Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com> Acked-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
39 lines
1.2 KiB
Plaintext
39 lines
1.2 KiB
Plaintext
* Advanced Interrupt Controller (AIC)
|
|
|
|
Required properties:
|
|
- compatible: Should be "atmel,<chip>-aic"
|
|
- interrupt-controller: Identifies the node as an interrupt controller.
|
|
- interrupt-parent: For single AIC system, it is an empty property.
|
|
- #interrupt-cells: The number of cells to define the interrupts. It sould be 2.
|
|
The first cell is the IRQ number (aka "Peripheral IDentifier" on datasheet).
|
|
The second cell is used to specify flags:
|
|
bits[3:0] trigger type and level flags:
|
|
1 = low-to-high edge triggered.
|
|
2 = high-to-low edge triggered.
|
|
4 = active high level-sensitive.
|
|
8 = active low level-sensitive.
|
|
Valid combinations are 1, 2, 3, 4, 8.
|
|
Default flag for internal sources should be set to 4 (active high).
|
|
- reg: Should contain AIC registers location and length
|
|
|
|
Examples:
|
|
/*
|
|
* AIC
|
|
*/
|
|
aic: interrupt-controller@fffff000 {
|
|
compatible = "atmel,at91rm9200-aic";
|
|
interrupt-controller;
|
|
interrupt-parent;
|
|
#interrupt-cells = <2>;
|
|
reg = <0xfffff000 0x200>;
|
|
};
|
|
|
|
/*
|
|
* An interrupt generating device that is wired to an AIC.
|
|
*/
|
|
dma: dma-controller@ffffec00 {
|
|
compatible = "atmel,at91sam9g45-dma";
|
|
reg = <0xffffec00 0x200>;
|
|
interrupts = <21 4>;
|
|
};
|