summaryrefslogtreecommitdiff
path: root/Documentation/devicetree/bindings/interrupt-controller/snps,archs-idu-intc.txt
blob: a5c1db95b3ecb105c31eb7890bc731340ba92a3a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
* 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 */
	};