-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
ARM: at91/aic: add irq domain and device tree support
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>
- Loading branch information
Nicolas Ferre
committed
Mar 1, 2012
1 parent
89d4a17
commit e261501
Showing
5 changed files
with
117 additions
and
30 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
* 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>; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters