hc
2023-10-25 6c2073b7aa40e29d0eca7d571dd7bc590c7ecaa7
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>;
   };