1 BCM2835 Top-Level ("ARMCTRL") Interrupt Controller
3 The BCM2835 contains a custom top-level interrupt controller, which supports
4 72 interrupt sources using a 2-level register scheme. The interrupt
5 controller, or the HW block containing it, is referred to occasionally
6 as "armctrl" in the SoC documentation, hence naming of this binding.
8 The BCM2836 contains the same interrupt controller with the same
9 interrupts, but the per-CPU interrupt controller is the root, and an
10 interrupt there indicates that the ARMCTRL has an interrupt to handle.
14 - compatible : should be "brcm,bcm2835-armctrl-ic" or
15 "brcm,bcm2836-armctrl-ic"
16 - reg : Specifies base physical address and size of the registers.
17 - interrupt-controller : Identifies the node as an interrupt controller
18 - #interrupt-cells : Specifies the number of cells needed to encode an
19 interrupt source. The value shall be 2.
21 The 1st cell is the interrupt bank; 0 for interrupts in the "IRQ basic
22 pending" register, or 1/2 respectively for interrupts in the "IRQ pending
25 The 2nd cell contains the interrupt number within the bank. Valid values
26 are 0..7 for bank 0, and 0..31 for bank 1.
28 Additional required properties for brcm,bcm2836-armctrl-ic:
29 - interrupt-parent : Specifies the parent interrupt controller when this
30 controller is the second level.
31 - interrupts : Specifies the interrupt on the parent for this interrupt
34 The interrupt sources are as follows:
74 27: DMA11-14 - shared interrupt for DMA 11 to 14
75 28: DMAALL - triggers on all dma interrupts (including chanel 15)
116 /* BCM2835, first level */
117 intc: interrupt-controller {
118 compatible = "brcm,bcm2835-armctrl-ic";
119 reg = <0x7e00b200 0x200>;
120 interrupt-controller;
121 #interrupt-cells = <2>;
124 /* BCM2836, second level */
125 intc: interrupt-controller {
126 compatible = "brcm,bcm2836-armctrl-ic";
127 reg = <0x7e00b200 0x200>;
128 interrupt-controller;
129 #interrupt-cells = <2>;
131 interrupt-parent = <&local_intc>;