aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/devicetree/bindings/interrupt-controller/xilinx,intc.txt
blob: 03b39f4b1625b1604c767cc54711745832a5de7a (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
47
48
49
50
51
52
53
54
55
56
Xilinx Interrupt Controller

The controller is a soft IP core that is configured at build time for the
number of interrupts and the type of each interrupt. These details cannot
be changed at run time.

Required properties:

- compatible : should be "xlnx,xps-intc-1.00.a"
- reg : Specifies base physical address and size of the registers.
- interrupt-controller : Identifies the node as an interrupt controller
- #interrupt-cells : Specifies the number of cells needed to encode an
		     interrupt source. The value shall be a minimum of 1.
		     The Xilinx device trees typically use 2 but the 2nd value
		     is not used.
- xlnx,kind-of-intr : A 32 bit value specifying the interrupt type for each
		      possible interrupt (1 = edge, 0 = level). The interrupt
		      type typically comes in thru the device tree node of
		      the interrupt generating device, but in this case
		      the interrupt type is determined by the interrupt
		      controller based on how it was implemented.
- xlnx,num-intr-inputs: Specifies the number of interrupts supported
		        by the specific implementation of the controller (1-32).

Optional properties:
- interrupt-parent : Specifies an interrupt controller from which it is
		     chained (cascaded).
- interrupts : Specifies the interrupt of the parent controller from which
	       it is chained.

Example:

axi_intc_0: interrupt-controller@41800000 {
	#interrupt-cells = <2>;
	compatible = "xlnx,xps-intc-1.00.a";
	interrupt-controller;
	reg = <0x41800000 0x10000>;
	xlnx,kind-of-intr = <0x1>;
	xlnx,num-intr-inputs = <0x1>;
};

Chained Example:

The interrupt is chained to hardware interrupt 61 (29 + 32) of the GIC
for Zynq.

axi_intc_0: interrupt-controller@41800000 {
	#interrupt-cells = <2>;
	compatible = "xlnx,xps-intc-1.00.a";
	interrupt-controller;
	interrupt-parent = <&ps7_scugic_0>;
	interrupts = <0 29 4>;
	reg = <0x41800000 0x10000>;
	xlnx,kind-of-intr = <0x1>;
	xlnx,num-intr-inputs = <0x1>;
};