Messages in this thread | | | From | Phil Elwell <> | Subject | [PATCH v2 0/4] Add bcm2835aux interrupt controller | Date | Mon, 12 Jun 2017 15:25:02 +0100 |
| |
Devices in the BCM2835 AUX block share a common interrupt line, with a register indicating which devices have active IRQs. Expose this as a nested interrupt controller to avoid IRQ sharing problems (easily observed if UART1 and SPI1/2 are enabled simultaneously).
This patch set is complicated by the fact that the DT node for the AUX clock controller includes the AUXIRQ register needed by this driver. Patch 1 lays the groundwork by allowing this overlap and preparing for a future DT change that removes it.
Changes in v2: * Add DT bindings and header file for bcm2835-aux-intc. * Split the interrupt-controller functionality into a dedicated irqchip driver with a dedicated DT node. * Remove mask tracking from the intc driver, so that all interrupts (including spurious ones) are submitted to the IRQ framework. * Replace hard-coded masks with BIT macro in the intc driver. * Prepare the AUX clock driver for a time when its DT node may only be a single word register, but until then ioremap its region without reserving it to permit sharing.
Phil Elwell (4): clk: bcm2835: More flexible IO register remapping dt: bindings: Add bindings for bcm2835-aux-intc irqchip: Add BCM2835 AUX interrupt controller ARM: dts: bcm283x: Add and use bcm2835-aux-intc
.../interrupt-controller/brcm,bcm2835-aux-intc.txt | 28 ++++ arch/arm/boot/dts/bcm283x.dtsi | 27 +++- drivers/clk/bcm/clk-bcm2835-aux.c | 20 ++- drivers/irqchip/Makefile | 2 +- drivers/irqchip/irq-bcm2835-aux.c | 155 +++++++++++++++++++++ .../interrupt-controller/bcm2835-aux-intc.h | 20 +++ 6 files changed, 243 insertions(+), 9 deletions(-) create mode 100644 Documentation/devicetree/bindings/interrupt-controller/brcm,bcm2835-aux-intc.txt create mode 100644 drivers/irqchip/irq-bcm2835-aux.c create mode 100644 include/dt-bindings/interrupt-controller/bcm2835-aux-intc.h
-- 1.9.1
| |