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