47 lines
1.5 KiB
Plaintext
47 lines
1.5 KiB
Plaintext
* ARC-HS Interrupt Distribution Unit
|
|
|
|
This optional 2nd level interrupt controller can be used in SMP configurations
|
|
for dynamic IRQ routing, load balancing of common/external IRQs towards core
|
|
intc.
|
|
|
|
Properties:
|
|
|
|
- compatible: "snps,archs-idu-intc"
|
|
- interrupt-controller: This is an interrupt controller.
|
|
- #interrupt-cells: Must be <1> or <2>.
|
|
|
|
Value of the first cell specifies the "common" IRQ from peripheral to IDU.
|
|
Number N of the particular interrupt line of IDU corresponds to the line N+24
|
|
of the core interrupt controller.
|
|
|
|
The (optional) second cell specifies any of the following flags:
|
|
- bits[3:0] trigger type and level flags
|
|
1 = low-to-high edge triggered
|
|
2 = NOT SUPPORTED (high-to-low edge triggered)
|
|
4 = active high level-sensitive <<< DEFAULT
|
|
8 = NOT SUPPORTED (active low level-sensitive)
|
|
When no second cell is specified, the interrupt is assumed to be level
|
|
sensitive.
|
|
|
|
The interrupt controller is accessed via the special ARC AUX register
|
|
interface, hence "reg" property is not specified.
|
|
|
|
Example:
|
|
core_intc: core-interrupt-controller {
|
|
compatible = "snps,archs-intc";
|
|
interrupt-controller;
|
|
#interrupt-cells = <1>;
|
|
};
|
|
|
|
idu_intc: idu-interrupt-controller {
|
|
compatible = "snps,archs-idu-intc";
|
|
interrupt-controller;
|
|
interrupt-parent = <&core_intc>;
|
|
#interrupt-cells = <1>;
|
|
};
|
|
|
|
some_device: serial@c0fc1000 {
|
|
interrupt-parent = <&idu_intc>;
|
|
interrupts = <0>; /* upstream idu IRQ #24 */
|
|
};
|