83 lines
2.4 KiB
Plaintext
83 lines
2.4 KiB
Plaintext
|
* 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>;
|
||
|
};
|