2015-03-09 14:03:10 +05:30
* ARC-HS Interrupt Distribution Unit
2019-07-24 14:04:35 +02:00
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.
2015-03-09 14:03:10 +05:30
Properties:
- compatible: "snps,archs-idu-intc"
- interrupt-controller: This is an interrupt controller.
2019-07-24 14:04:36 +02:00
- #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.
2016-12-28 11:46:26 +03:00
2019-07-24 14:04:35 +02:00
The interrupt controller is accessed via the special ARC AUX register
interface, hence "reg" property is not specified.
2015-03-09 14:03:10 +05:30
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>;
2017-02-02 03:13:32 +03:00
#interrupt-cells = <1>;
2015-03-09 14:03:10 +05:30
};
some_device: serial@c0fc1000 {
interrupt-parent = <&idu_intc>;
2017-02-02 03:13:32 +03:00
interrupts = <0>; /* upstream idu IRQ #24 */
2015-03-09 14:03:10 +05:30
};