xref: /freebsd/sys/contrib/device-tree/Bindings/interrupt-controller/brcm,bcm2835-armctrl-ic.txt (revision aa1a8ff2d6dbc51ef058f46f3db5a8bb77967145)
1c66ec88fSEmmanuel VadotBCM2835 Top-Level ("ARMCTRL") Interrupt Controller
2c66ec88fSEmmanuel Vadot
3c66ec88fSEmmanuel VadotThe BCM2835 contains a custom top-level interrupt controller, which supports
4c66ec88fSEmmanuel Vadot72 interrupt sources using a 2-level register scheme. The interrupt
5c66ec88fSEmmanuel Vadotcontroller, or the HW block containing it, is referred to occasionally
6c66ec88fSEmmanuel Vadotas "armctrl" in the SoC documentation, hence naming of this binding.
7c66ec88fSEmmanuel Vadot
8c66ec88fSEmmanuel VadotThe BCM2836 contains the same interrupt controller with the same
9c66ec88fSEmmanuel Vadotinterrupts, but the per-CPU interrupt controller is the root, and an
10c66ec88fSEmmanuel Vadotinterrupt there indicates that the ARMCTRL has an interrupt to handle.
11c66ec88fSEmmanuel Vadot
12c66ec88fSEmmanuel VadotRequired properties:
13c66ec88fSEmmanuel Vadot
14c66ec88fSEmmanuel Vadot- compatible : should be "brcm,bcm2835-armctrl-ic" or
15c66ec88fSEmmanuel Vadot                 "brcm,bcm2836-armctrl-ic"
16c66ec88fSEmmanuel Vadot- reg : Specifies base physical address and size of the registers.
17c66ec88fSEmmanuel Vadot- interrupt-controller : Identifies the node as an interrupt controller
18c66ec88fSEmmanuel Vadot- #interrupt-cells : Specifies the number of cells needed to encode an
19c66ec88fSEmmanuel Vadot  interrupt source. The value shall be 2.
20c66ec88fSEmmanuel Vadot
21c66ec88fSEmmanuel Vadot  The 1st cell is the interrupt bank; 0 for interrupts in the "IRQ basic
22c66ec88fSEmmanuel Vadot  pending" register, or 1/2 respectively for interrupts in the "IRQ pending
23c66ec88fSEmmanuel Vadot  1/2" register.
24c66ec88fSEmmanuel Vadot
25c66ec88fSEmmanuel Vadot  The 2nd cell contains the interrupt number within the bank. Valid values
26c66ec88fSEmmanuel Vadot  are 0..7 for bank 0, and 0..31 for bank 1.
27c66ec88fSEmmanuel Vadot
28c66ec88fSEmmanuel VadotAdditional required properties for brcm,bcm2836-armctrl-ic:
29c66ec88fSEmmanuel Vadot- interrupts : Specifies the interrupt on the parent for this interrupt
30c66ec88fSEmmanuel Vadot  controller to handle.
31c66ec88fSEmmanuel Vadot
32c66ec88fSEmmanuel VadotThe interrupt sources are as follows:
33c66ec88fSEmmanuel Vadot
34c66ec88fSEmmanuel VadotBank 0:
35c66ec88fSEmmanuel Vadot0: ARM_TIMER
36c66ec88fSEmmanuel Vadot1: ARM_MAILBOX
37c66ec88fSEmmanuel Vadot2: ARM_DOORBELL_0
38c66ec88fSEmmanuel Vadot3: ARM_DOORBELL_1
39c66ec88fSEmmanuel Vadot4: VPU0_HALTED
40c66ec88fSEmmanuel Vadot5: VPU1_HALTED
41c66ec88fSEmmanuel Vadot6: ILLEGAL_TYPE0
42c66ec88fSEmmanuel Vadot7: ILLEGAL_TYPE1
43c66ec88fSEmmanuel Vadot
44c66ec88fSEmmanuel VadotBank 1:
45c66ec88fSEmmanuel Vadot0: TIMER0
46c66ec88fSEmmanuel Vadot1: TIMER1
47c66ec88fSEmmanuel Vadot2: TIMER2
48c66ec88fSEmmanuel Vadot3: TIMER3
49c66ec88fSEmmanuel Vadot4: CODEC0
50c66ec88fSEmmanuel Vadot5: CODEC1
51c66ec88fSEmmanuel Vadot6: CODEC2
52c66ec88fSEmmanuel Vadot7: VC_JPEG
53c66ec88fSEmmanuel Vadot8: ISP
54c66ec88fSEmmanuel Vadot9: VC_USB
55c66ec88fSEmmanuel Vadot10: VC_3D
56c66ec88fSEmmanuel Vadot11: TRANSPOSER
57c66ec88fSEmmanuel Vadot12: MULTICORESYNC0
58c66ec88fSEmmanuel Vadot13: MULTICORESYNC1
59c66ec88fSEmmanuel Vadot14: MULTICORESYNC2
60c66ec88fSEmmanuel Vadot15: MULTICORESYNC3
61c66ec88fSEmmanuel Vadot16: DMA0
62c66ec88fSEmmanuel Vadot17: DMA1
63c66ec88fSEmmanuel Vadot18: VC_DMA2
64c66ec88fSEmmanuel Vadot19: VC_DMA3
65c66ec88fSEmmanuel Vadot20: DMA4
66c66ec88fSEmmanuel Vadot21: DMA5
67c66ec88fSEmmanuel Vadot22: DMA6
68c66ec88fSEmmanuel Vadot23: DMA7
69c66ec88fSEmmanuel Vadot24: DMA8
70c66ec88fSEmmanuel Vadot25: DMA9
71c66ec88fSEmmanuel Vadot26: DMA10
72c66ec88fSEmmanuel Vadot27: DMA11-14 - shared interrupt for DMA 11 to 14
73*aa1a8ff2SEmmanuel Vadot28: DMAALL - triggers on all dma interrupts (including channel 15)
74c66ec88fSEmmanuel Vadot29: AUX
75c66ec88fSEmmanuel Vadot30: ARM
76c66ec88fSEmmanuel Vadot31: VPUDMA
77c66ec88fSEmmanuel Vadot
78c66ec88fSEmmanuel VadotBank 2:
79c66ec88fSEmmanuel Vadot0: HOSTPORT
80c66ec88fSEmmanuel Vadot1: VIDEOSCALER
81c66ec88fSEmmanuel Vadot2: CCP2TX
82c66ec88fSEmmanuel Vadot3: SDC
83c66ec88fSEmmanuel Vadot4: DSI0
84c66ec88fSEmmanuel Vadot5: AVE
85c66ec88fSEmmanuel Vadot6: CAM0
86c66ec88fSEmmanuel Vadot7: CAM1
87c66ec88fSEmmanuel Vadot8: HDMI0
88c66ec88fSEmmanuel Vadot9: HDMI1
89c66ec88fSEmmanuel Vadot10: PIXELVALVE1
90c66ec88fSEmmanuel Vadot11: I2CSPISLV
91c66ec88fSEmmanuel Vadot12: DSI1
92c66ec88fSEmmanuel Vadot13: PWA0
93c66ec88fSEmmanuel Vadot14: PWA1
94c66ec88fSEmmanuel Vadot15: CPR
95c66ec88fSEmmanuel Vadot16: SMI
96c66ec88fSEmmanuel Vadot17: GPIO0
97c66ec88fSEmmanuel Vadot18: GPIO1
98c66ec88fSEmmanuel Vadot19: GPIO2
99c66ec88fSEmmanuel Vadot20: GPIO3
100c66ec88fSEmmanuel Vadot21: VC_I2C
101c66ec88fSEmmanuel Vadot22: VC_SPI
102c66ec88fSEmmanuel Vadot23: VC_I2SPCM
103c66ec88fSEmmanuel Vadot24: VC_SDIO
104c66ec88fSEmmanuel Vadot25: VC_UART
105c66ec88fSEmmanuel Vadot26: SLIMBUS
106c66ec88fSEmmanuel Vadot27: VEC
107c66ec88fSEmmanuel Vadot28: CPG
108c66ec88fSEmmanuel Vadot29: RNG
109c66ec88fSEmmanuel Vadot30: VC_ARASANSDIO
110c66ec88fSEmmanuel Vadot31: AVSPMON
111c66ec88fSEmmanuel Vadot
112c66ec88fSEmmanuel VadotExample:
113c66ec88fSEmmanuel Vadot
114c66ec88fSEmmanuel Vadot/* BCM2835, first level */
115c66ec88fSEmmanuel Vadotintc: interrupt-controller {
116c66ec88fSEmmanuel Vadot	compatible = "brcm,bcm2835-armctrl-ic";
117c66ec88fSEmmanuel Vadot	reg = <0x7e00b200 0x200>;
118c66ec88fSEmmanuel Vadot	interrupt-controller;
119c66ec88fSEmmanuel Vadot	#interrupt-cells = <2>;
120c66ec88fSEmmanuel Vadot};
121c66ec88fSEmmanuel Vadot
122c66ec88fSEmmanuel Vadot/* BCM2836, second level */
123c66ec88fSEmmanuel Vadotintc: interrupt-controller {
124c66ec88fSEmmanuel Vadot	compatible = "brcm,bcm2836-armctrl-ic";
125c66ec88fSEmmanuel Vadot	reg = <0x7e00b200 0x200>;
126c66ec88fSEmmanuel Vadot	interrupt-controller;
127c66ec88fSEmmanuel Vadot	#interrupt-cells = <2>;
128c66ec88fSEmmanuel Vadot
129c66ec88fSEmmanuel Vadot	interrupt-parent = <&local_intc>;
130c66ec88fSEmmanuel Vadot	interrupts = <8>;
131c66ec88fSEmmanuel Vadot};
132