132 lines · plain
1BCM2835 Top-Level ("ARMCTRL") Interrupt Controller2 3The BCM2835 contains a custom top-level interrupt controller, which supports472 interrupt sources using a 2-level register scheme. The interrupt5controller, or the HW block containing it, is referred to occasionally6as "armctrl" in the SoC documentation, hence naming of this binding.7 8The BCM2836 contains the same interrupt controller with the same9interrupts, but the per-CPU interrupt controller is the root, and an10interrupt there indicates that the ARMCTRL has an interrupt to handle.11 12Required properties:13 14- compatible : should be "brcm,bcm2835-armctrl-ic" or15 "brcm,bcm2836-armctrl-ic"16- reg : Specifies base physical address and size of the registers.17- interrupt-controller : Identifies the node as an interrupt controller18- #interrupt-cells : Specifies the number of cells needed to encode an19 interrupt source. The value shall be 2.20 21 The 1st cell is the interrupt bank; 0 for interrupts in the "IRQ basic22 pending" register, or 1/2 respectively for interrupts in the "IRQ pending23 1/2" register.24 25 The 2nd cell contains the interrupt number within the bank. Valid values26 are 0..7 for bank 0, and 0..31 for bank 1.27 28Additional required properties for brcm,bcm2836-armctrl-ic:29- interrupts : Specifies the interrupt on the parent for this interrupt30 controller to handle.31 32The interrupt sources are as follows:33 34Bank 0:350: ARM_TIMER361: ARM_MAILBOX372: ARM_DOORBELL_0383: ARM_DOORBELL_1394: VPU0_HALTED405: VPU1_HALTED416: ILLEGAL_TYPE0427: ILLEGAL_TYPE143 44Bank 1:450: TIMER0461: TIMER1472: TIMER2483: TIMER3494: CODEC0505: CODEC1516: CODEC2527: VC_JPEG538: ISP549: VC_USB5510: VC_3D5611: TRANSPOSER5712: MULTICORESYNC05813: MULTICORESYNC15914: MULTICORESYNC26015: MULTICORESYNC36116: DMA06217: DMA16318: VC_DMA26419: VC_DMA36520: DMA46621: DMA56722: DMA66823: DMA76924: DMA87025: DMA97126: DMA107227: DMA11-14 - shared interrupt for DMA 11 to 147328: DMAALL - triggers on all dma interrupts (including channel 15)7429: AUX7530: ARM7631: VPUDMA77 78Bank 2:790: HOSTPORT801: VIDEOSCALER812: CCP2TX823: SDC834: DSI0845: AVE856: CAM0867: CAM1878: HDMI0889: HDMI18910: PIXELVALVE19011: I2CSPISLV9112: DSI19213: PWA09314: PWA19415: CPR9516: SMI9617: GPIO09718: GPIO19819: GPIO29920: GPIO310021: VC_I2C10122: VC_SPI10223: VC_I2SPCM10324: VC_SDIO10425: VC_UART10526: SLIMBUS10627: VEC10728: CPG10829: RNG10930: VC_ARASANSDIO11031: AVSPMON111 112Example:113 114/* BCM2835, first level */115intc: interrupt-controller {116 compatible = "brcm,bcm2835-armctrl-ic";117 reg = <0x7e00b200 0x200>;118 interrupt-controller;119 #interrupt-cells = <2>;120};121 122/* BCM2836, second level */123intc: interrupt-controller {124 compatible = "brcm,bcm2836-armctrl-ic";125 reg = <0x7e00b200 0x200>;126 interrupt-controller;127 #interrupt-cells = <2>;128 129 interrupt-parent = <&local_intc>;130 interrupts = <8>;131};132