162306a36Sopenharmony_ci* ARC-HS Interrupt Distribution Unit 262306a36Sopenharmony_ci 362306a36Sopenharmony_ci This optional 2nd level interrupt controller can be used in SMP configurations 462306a36Sopenharmony_ci for dynamic IRQ routing, load balancing of common/external IRQs towards core 562306a36Sopenharmony_ci intc. 662306a36Sopenharmony_ci 762306a36Sopenharmony_ciProperties: 862306a36Sopenharmony_ci 962306a36Sopenharmony_ci- compatible: "snps,archs-idu-intc" 1062306a36Sopenharmony_ci- interrupt-controller: This is an interrupt controller. 1162306a36Sopenharmony_ci- #interrupt-cells: Must be <1> or <2>. 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_ci Value of the first cell specifies the "common" IRQ from peripheral to IDU. 1462306a36Sopenharmony_ci Number N of the particular interrupt line of IDU corresponds to the line N+24 1562306a36Sopenharmony_ci of the core interrupt controller. 1662306a36Sopenharmony_ci 1762306a36Sopenharmony_ci The (optional) second cell specifies any of the following flags: 1862306a36Sopenharmony_ci - bits[3:0] trigger type and level flags 1962306a36Sopenharmony_ci 1 = low-to-high edge triggered 2062306a36Sopenharmony_ci 2 = NOT SUPPORTED (high-to-low edge triggered) 2162306a36Sopenharmony_ci 4 = active high level-sensitive <<< DEFAULT 2262306a36Sopenharmony_ci 8 = NOT SUPPORTED (active low level-sensitive) 2362306a36Sopenharmony_ci When no second cell is specified, the interrupt is assumed to be level 2462306a36Sopenharmony_ci sensitive. 2562306a36Sopenharmony_ci 2662306a36Sopenharmony_ci The interrupt controller is accessed via the special ARC AUX register 2762306a36Sopenharmony_ci interface, hence "reg" property is not specified. 2862306a36Sopenharmony_ci 2962306a36Sopenharmony_ciExample: 3062306a36Sopenharmony_ci core_intc: core-interrupt-controller { 3162306a36Sopenharmony_ci compatible = "snps,archs-intc"; 3262306a36Sopenharmony_ci interrupt-controller; 3362306a36Sopenharmony_ci #interrupt-cells = <1>; 3462306a36Sopenharmony_ci }; 3562306a36Sopenharmony_ci 3662306a36Sopenharmony_ci idu_intc: idu-interrupt-controller { 3762306a36Sopenharmony_ci compatible = "snps,archs-idu-intc"; 3862306a36Sopenharmony_ci interrupt-controller; 3962306a36Sopenharmony_ci interrupt-parent = <&core_intc>; 4062306a36Sopenharmony_ci #interrupt-cells = <1>; 4162306a36Sopenharmony_ci }; 4262306a36Sopenharmony_ci 4362306a36Sopenharmony_ci some_device: serial@c0fc1000 { 4462306a36Sopenharmony_ci interrupt-parent = <&idu_intc>; 4562306a36Sopenharmony_ci interrupts = <0>; /* upstream idu IRQ #24 */ 4662306a36Sopenharmony_ci }; 47