Kernel-3.10.0-957.el7_meta-intc

  • 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@0x02004c00 {
    // 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>;
};