img,meta-intc.txt 2.43 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14
* 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
15
      as an interrupt controller. No property value shall be defined.
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

    - #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.
	 */
74
	uart1: uart@02004c00 {
75 76 77 78 79 80 81 82
		// 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>;
	};