xref: /linux/Documentation/devicetree/bindings/interrupt-controller/brcm,bcm2835-armctrl-ic.yaml (revision bf373e4c786bfe989e637195252698f45b157a68)
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