1*5511d95cSRob Herring (Arm)%YAML 1.2 2*5511d95cSRob Herring (Arm)--- 3*5511d95cSRob Herring (Arm)$id: http://devicetree.org/schemas/interrupt-controller/brcm,bcm2835-armctrl-ic.yaml# 4*5511d95cSRob Herring (Arm)$schema: http://devicetree.org/meta-schemas/core.yaml# 5*5511d95cSRob Herring (Arm) 6*5511d95cSRob Herring (Arm)title: BCM2835 ARMCTRL Interrupt Controller 7*5511d95cSRob Herring (Arm) 8*5511d95cSRob Herring (Arm)maintainers: 9*5511d95cSRob Herring (Arm) - Florian Fainelli <florian.fainelli@broadcom.com> 10*5511d95cSRob Herring (Arm) - Raspberry Pi Kernel Maintenance <kernel-list@raspberrypi.com> 11*5511d95cSRob Herring (Arm) 12*5511d95cSRob Herring (Arm)description: > 13*5511d95cSRob Herring (Arm) The BCM2835 contains a custom top-level interrupt controller, which supports 14*5511d95cSRob Herring (Arm) 72 interrupt sources using a 2-level register scheme. The interrupt 15*5511d95cSRob Herring (Arm) controller, or the HW block containing it, is referred to occasionally as 16*5511d95cSRob Herring (Arm) "armctrl" in the SoC documentation, hence naming of this binding. 17*5511d95cSRob Herring (Arm) 18*5511d95cSRob Herring (Arm) The BCM2836 contains the same interrupt controller with the same interrupts, 19*5511d95cSRob Herring (Arm) but the per-CPU interrupt controller is the root, and an interrupt there 20*5511d95cSRob Herring (Arm) indicates that the ARMCTRL has an interrupt to handle. 21*5511d95cSRob Herring (Arm) 22*5511d95cSRob Herring (Arm) The interrupt sources are as follows: 23*5511d95cSRob Herring (Arm) 24*5511d95cSRob Herring (Arm) Bank 0: 25*5511d95cSRob Herring (Arm) 0: ARM_TIMER 26*5511d95cSRob Herring (Arm) 1: ARM_MAILBOX 27*5511d95cSRob Herring (Arm) 2: ARM_DOORBELL_0 28*5511d95cSRob Herring (Arm) 3: ARM_DOORBELL_1 29*5511d95cSRob Herring (Arm) 4: VPU0_HALTED 30*5511d95cSRob Herring (Arm) 5: VPU1_HALTED 31*5511d95cSRob Herring (Arm) 6: ILLEGAL_TYPE0 32*5511d95cSRob Herring (Arm) 7: ILLEGAL_TYPE1 33*5511d95cSRob Herring (Arm) 34*5511d95cSRob Herring (Arm) Bank 1: 35*5511d95cSRob Herring (Arm) 0: TIMER0 36*5511d95cSRob Herring (Arm) 1: TIMER1 37*5511d95cSRob Herring (Arm) 2: TIMER2 38*5511d95cSRob Herring (Arm) 3: TIMER3 39*5511d95cSRob Herring (Arm) 4: CODEC0 40*5511d95cSRob Herring (Arm) 5: CODEC1 41*5511d95cSRob Herring (Arm) 6: CODEC2 42*5511d95cSRob Herring (Arm) 7: VC_JPEG 43*5511d95cSRob Herring (Arm) 8: ISP 44*5511d95cSRob Herring (Arm) 9: VC_USB 45*5511d95cSRob Herring (Arm) 10: VC_3D 46*5511d95cSRob Herring (Arm) 11: TRANSPOSER 47*5511d95cSRob Herring (Arm) 12: MULTICORESYNC0 48*5511d95cSRob Herring (Arm) 13: MULTICORESYNC1 49*5511d95cSRob Herring (Arm) 14: MULTICORESYNC2 50*5511d95cSRob Herring (Arm) 15: MULTICORESYNC3 51*5511d95cSRob Herring (Arm) 16: DMA0 52*5511d95cSRob Herring (Arm) 17: DMA1 53*5511d95cSRob Herring (Arm) 18: VC_DMA2 54*5511d95cSRob Herring (Arm) 19: VC_DMA3 55*5511d95cSRob Herring (Arm) 20: DMA4 56*5511d95cSRob Herring (Arm) 21: DMA5 57*5511d95cSRob Herring (Arm) 22: DMA6 58*5511d95cSRob Herring (Arm) 23: DMA7 59*5511d95cSRob Herring (Arm) 24: DMA8 60*5511d95cSRob Herring (Arm) 25: DMA9 61*5511d95cSRob Herring (Arm) 26: DMA10 62*5511d95cSRob Herring (Arm) 27: DMA11-14 - shared interrupt for DMA 11 to 14 63*5511d95cSRob Herring (Arm) 28: DMAALL - triggers on all dma interrupts (including channel 15) 64*5511d95cSRob Herring (Arm) 29: AUX 65*5511d95cSRob Herring (Arm) 30: ARM 66*5511d95cSRob Herring (Arm) 31: VPUDMA 67*5511d95cSRob Herring (Arm) 68*5511d95cSRob Herring (Arm) Bank 2: 69*5511d95cSRob Herring (Arm) 0: HOSTPORT 70*5511d95cSRob Herring (Arm) 1: VIDEOSCALER 71*5511d95cSRob Herring (Arm) 2: CCP2TX 72*5511d95cSRob Herring (Arm) 3: SDC 73*5511d95cSRob Herring (Arm) 4: DSI0 74*5511d95cSRob Herring (Arm) 5: AVE 75*5511d95cSRob Herring (Arm) 6: CAM0 76*5511d95cSRob Herring (Arm) 7: CAM1 77*5511d95cSRob Herring (Arm) 8: HDMI0 78*5511d95cSRob Herring (Arm) 9: HDMI1 79*5511d95cSRob Herring (Arm) 10: PIXELVALVE1 80*5511d95cSRob Herring (Arm) 11: I2CSPISLV 81*5511d95cSRob Herring (Arm) 12: DSI1 82*5511d95cSRob Herring (Arm) 13: PWA0 83*5511d95cSRob Herring (Arm) 14: PWA1 84*5511d95cSRob Herring (Arm) 15: CPR 85*5511d95cSRob Herring (Arm) 16: SMI 86*5511d95cSRob Herring (Arm) 17: GPIO0 87*5511d95cSRob Herring (Arm) 18: GPIO1 88*5511d95cSRob Herring (Arm) 19: GPIO2 89*5511d95cSRob Herring (Arm) 20: GPIO3 90*5511d95cSRob Herring (Arm) 21: VC_I2C 91*5511d95cSRob Herring (Arm) 22: VC_SPI 92*5511d95cSRob Herring (Arm) 23: VC_I2SPCM 93*5511d95cSRob Herring (Arm) 24: VC_SDIO 94*5511d95cSRob Herring (Arm) 25: VC_UART 95*5511d95cSRob Herring (Arm) 26: SLIMBUS 96*5511d95cSRob Herring (Arm) 27: VEC 97*5511d95cSRob Herring (Arm) 28: CPG 98*5511d95cSRob Herring (Arm) 29: RNG 99*5511d95cSRob Herring (Arm) 30: VC_ARASANSDIO 100*5511d95cSRob Herring (Arm) 31: AVSPMON 101*5511d95cSRob Herring (Arm) 102*5511d95cSRob Herring (Arm)properties: 103*5511d95cSRob Herring (Arm) compatible: 104*5511d95cSRob Herring (Arm) enum: 105*5511d95cSRob Herring (Arm) - brcm,bcm2835-armctrl-ic 106*5511d95cSRob Herring (Arm) - brcm,bcm2836-armctrl-ic 107*5511d95cSRob Herring (Arm) 108*5511d95cSRob Herring (Arm) reg: 109*5511d95cSRob Herring (Arm) maxItems: 1 110*5511d95cSRob Herring (Arm) 111*5511d95cSRob Herring (Arm) interrupt-controller: true 112*5511d95cSRob Herring (Arm) 113*5511d95cSRob Herring (Arm) '#interrupt-cells': 114*5511d95cSRob Herring (Arm) const: 2 115*5511d95cSRob Herring (Arm) description: > 116*5511d95cSRob Herring (Arm) The 1st cell is the interrupt bank; 0 for interrupts in the "IRQ basic 117*5511d95cSRob Herring (Arm) pending" register, or 1/2 respectively for interrupts in the "IRQ pending 118*5511d95cSRob Herring (Arm) 1/2" register. 119*5511d95cSRob Herring (Arm) 120*5511d95cSRob Herring (Arm) The 2nd cell contains the interrupt number within the bank. Valid values 121*5511d95cSRob Herring (Arm) are 0..7 for bank 0, and 0..31 for bank 1. 122*5511d95cSRob Herring (Arm) 123*5511d95cSRob Herring (Arm) interrupts: 124*5511d95cSRob Herring (Arm) maxItems: 1 125*5511d95cSRob Herring (Arm) 126*5511d95cSRob Herring (Arm)required: 127*5511d95cSRob Herring (Arm) - compatible 128*5511d95cSRob Herring (Arm) - reg 129*5511d95cSRob Herring (Arm) - interrupt-controller 130*5511d95cSRob Herring (Arm) - '#interrupt-cells' 131*5511d95cSRob Herring (Arm) 132*5511d95cSRob Herring (Arm)allOf: 133*5511d95cSRob Herring (Arm) - if: 134*5511d95cSRob Herring (Arm) properties: 135*5511d95cSRob Herring (Arm) compatible: 136*5511d95cSRob Herring (Arm) contains: 137*5511d95cSRob Herring (Arm) const: brcm,bcm2836-armctrl-ic 138*5511d95cSRob Herring (Arm) then: 139*5511d95cSRob Herring (Arm) required: 140*5511d95cSRob Herring (Arm) - interrupts 141*5511d95cSRob Herring (Arm) else: 142*5511d95cSRob Herring (Arm) properties: 143*5511d95cSRob Herring (Arm) interrupts: false 144*5511d95cSRob Herring (Arm) 145*5511d95cSRob Herring (Arm)additionalProperties: false 146*5511d95cSRob Herring (Arm) 147*5511d95cSRob Herring (Arm)examples: 148*5511d95cSRob Herring (Arm) - | 149*5511d95cSRob Herring (Arm) interrupt-controller@7e00b200 { 150*5511d95cSRob Herring (Arm) compatible = "brcm,bcm2835-armctrl-ic"; 151*5511d95cSRob Herring (Arm) reg = <0x7e00b200 0x200>; 152*5511d95cSRob Herring (Arm) interrupt-controller; 153*5511d95cSRob Herring (Arm) #interrupt-cells = <2>; 154*5511d95cSRob Herring (Arm) }; 155*5511d95cSRob Herring (Arm) - | 156*5511d95cSRob Herring (Arm) interrupt-controller@7e00b200 { 157*5511d95cSRob Herring (Arm) compatible = "brcm,bcm2836-armctrl-ic"; 158*5511d95cSRob Herring (Arm) reg = <0x7e00b200 0x200>; 159*5511d95cSRob Herring (Arm) interrupt-controller; 160*5511d95cSRob Herring (Arm) #interrupt-cells = <2>; 161*5511d95cSRob Herring (Arm) interrupts = <8>; 162*5511d95cSRob Herring (Arm) }; 163