brcm,bcm2835-armctrl-ic

Description

BCM2835 ARMC peripheral interrupt controller -- the "GPU IRQ" side
of the BCM283x family (Pi 1 / Pi 2 / Pi 3 / Pi Zero family).

Hangs off the BCM2836 ARM-local intc as a child. Aggregates 64 GPU
IRQs (PEND1 + PEND2 banks) plus 8 ARMC "basic" IRQs into the GPU
cascade line of its parent.

Zephyr exposes this controller's IRQs in a flat range offset by 32
(the L1 ARM-local intc occupies 0..31, only 0..9 used):
  32..39   = basic bank   (IRQ_BASIC_PENDING bits 0..7)
  64..95   = GPU PEND1    (PEND1 bits 0..31)
  96..127  = GPU PEND2    (PEND2 bits 0..31)
(See <zephyr/dt-bindings/interrupt-controller/bcm2835-armctrl.h>
for the symbolic constants, and soc/brcm/bcm2710/soc_irq.c +
drivers/interrupt_controller/intc_bcm2835_armctrl.c for the
decode that maps these numbers to the bank-0 shortcut bits +
PEND1 / PEND2 registers.)

Properties

Properties not inherited from the base binding file.

Name

Type

Details

interrupt-controller

boolean

Convey's this node is an interrupt controller

This property is required.

#interrupt-cells

int

Cell 0: flat IRQ number from the offset-by-32 ARMC space
        (32..39 basic / 64..95 PEND1 / 96..127 PEND2).
Cell 1: trigger-type flags (IRQ_TYPE_LEVEL / IRQ_TYPE_EDGE).
Cell 2: priority -- unused by this controller, kept as a
        fixed third cell for parity with the parent
        brcm,bcm2836-l1-intc binding (see its rationale).

This property is required.

Constant value: 3

Specifier cell names

  • interrupt cells: irq, flags, priority