%YAML 1.2 --- $id: http://devicetree.org/schemas/interrupt-controller/brcm,bcm2835-armctrl-ic.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: BCM2835 ARMCTRL Interrupt Controller maintainers: - Florian Fainelli - Raspberry Pi Kernel Maintenance description: > The BCM2835 contains a custom top-level interrupt controller, which supports 72 interrupt sources using a 2-level register scheme. The interrupt controller, or the HW block containing it, is referred to occasionally as "armctrl" in the SoC documentation, hence naming of this binding. The BCM2836 contains the same interrupt controller with the same interrupts, but the per-CPU interrupt controller is the root, and an interrupt there indicates that the ARMCTRL has an interrupt to handle. The interrupt sources are as follows: Bank 0: 0: ARM_TIMER 1: ARM_MAILBOX 2: ARM_DOORBELL_0 3: ARM_DOORBELL_1 4: VPU0_HALTED 5: VPU1_HALTED 6: ILLEGAL_TYPE0 7: ILLEGAL_TYPE1 Bank 1: 0: TIMER0 1: TIMER1 2: TIMER2 3: TIMER3 4: CODEC0 5: CODEC1 6: CODEC2 7: VC_JPEG 8: ISP 9: VC_USB 10: VC_3D 11: TRANSPOSER 12: MULTICORESYNC0 13: MULTICORESYNC1 14: MULTICORESYNC2 15: MULTICORESYNC3 16: DMA0 17: DMA1 18: VC_DMA2 19: VC_DMA3 20: DMA4 21: DMA5 22: DMA6 23: DMA7 24: DMA8 25: DMA9 26: DMA10 27: DMA11-14 - shared interrupt for DMA 11 to 14 28: DMAALL - triggers on all dma interrupts (including channel 15) 29: AUX 30: ARM 31: VPUDMA Bank 2: 0: HOSTPORT 1: VIDEOSCALER 2: CCP2TX 3: SDC 4: DSI0 5: AVE 6: CAM0 7: CAM1 8: HDMI0 9: HDMI1 10: PIXELVALVE1 11: I2CSPISLV 12: DSI1 13: PWA0 14: PWA1 15: CPR 16: SMI 17: GPIO0 18: GPIO1 19: GPIO2 20: GPIO3 21: VC_I2C 22: VC_SPI 23: VC_I2SPCM 24: VC_SDIO 25: VC_UART 26: SLIMBUS 27: VEC 28: CPG 29: RNG 30: VC_ARASANSDIO 31: AVSPMON properties: compatible: enum: - brcm,bcm2835-armctrl-ic - brcm,bcm2836-armctrl-ic reg: maxItems: 1 interrupt-controller: true '#interrupt-cells': const: 2 description: > The 1st cell is the interrupt bank; 0 for interrupts in the "IRQ basic pending" register, or 1/2 respectively for interrupts in the "IRQ pending 1/2" register. The 2nd cell contains the interrupt number within the bank. Valid values are 0..7 for bank 0, and 0..31 for bank 1. interrupts: maxItems: 1 required: - compatible - reg - interrupt-controller - '#interrupt-cells' allOf: - if: properties: compatible: contains: const: brcm,bcm2836-armctrl-ic then: required: - interrupts else: properties: interrupts: false additionalProperties: false examples: - | interrupt-controller@7e00b200 { compatible = "brcm,bcm2835-armctrl-ic"; reg = <0x7e00b200 0x200>; interrupt-controller; #interrupt-cells = <2>; }; - | interrupt-controller@7e00b200 { compatible = "brcm,bcm2836-armctrl-ic"; reg = <0x7e00b200 0x200>; interrupt-controller; #interrupt-cells = <2>; interrupts = <8>; };