summaryrefslogtreecommitdiff
path: root/Documentation/devicetree/bindings/interrupt-controller/img,meta-intc.txt
blob: 42431f44697fb22cee723d176ef4ce9d1cdc4ebd (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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
* Meta External Trigger Controller Binding

This binding specifies what properties must be available in the device tree
representation of a Meta external trigger controller.

Required properties:

    - compatible: Specifies the compatibility list for the interrupt controller.
      The type shall be <string> and the value shall include "img,meta-intc".

    - num-banks: Specifies the number of interrupt banks (each of which can
      handle 32 interrupt sources).

    - interrupt-controller: The presence of this property identifies the node
      as an interrupt controller. No property value shall be defined.

    - #interrupt-cells: Specifies the number of cells needed to encode an
      interrupt source. The type shall be a <u32> and the value shall be 2.

    - #address-cells: Specifies the number of cells needed to encode an
      address. The type shall be <u32> and the value shall be 0. As such,
      'interrupt-map' nodes do not have to specify a parent unit address.

Optional properties:

    - no-mask: The controller doesn't have any mask registers.

* Interrupt Specifier Definition

  Interrupt specifiers consists of 2 cells encoded as follows:

    - <1st-cell>: The interrupt-number that identifies the interrupt source.

    - <2nd-cell>: The Linux interrupt flags containing level-sense information,
                  encoded as follows:
                    1 = edge triggered
                    4 = level-sensitive

* Examples

Example 1:

	/*
	 * Meta external trigger block
	 */
	intc: intc {
		// This is an interrupt controller node.
		interrupt-controller;

		// No address cells so that 'interrupt-map' nodes which
		// reference this interrupt controller node do not need a parent
		// address specifier.
		#address-cells = <0>;

		// Two cells to encode interrupt sources.
		#interrupt-cells = <2>;

		// Number of interrupt banks
		num-banks = <2>;

		// No HWMASKEXT is available (specify on Chorus2 and Comet ES1)
		no-mask;

		// Compatible with Meta hardware trigger block.
		compatible = "img,meta-intc";
	};

Example 2:

	/*
	 * An interrupt generating device that is wired to a Meta external
	 * trigger block.
	 */
	uart1: uart@02004c00 {
		// Interrupt source '5' that is level-sensitive.
		// Note that there are only two cells as specified in the
		// interrupt parent's '#interrupt-cells' property.
		interrupts = <5 4 /* level */>;

		// The interrupt controller that this device is wired to.
		interrupt-parent = <&intc>;
	};