]> git.baikalelectronics.ru Git - kernel.git/commit
irqchip: Renesas INTC External IRQ pin driver
authorMagnus Damm <damm@opensource.se>
Mon, 18 Feb 2013 14:28:34 +0000 (23:28 +0900)
committerSimon Horman <horms+renesas@verge.net.au>
Mon, 18 Mar 2013 12:26:05 +0000 (21:26 +0900)
commitcf3aa4c13f54bbe2815f02b08393ace5f0438200
tree495af2e0ffddefdbed12ccc29cdd5443664d4d57
parent2a1dd5f7db59d0412a19dfdd7c517f7302b46429
irqchip: Renesas INTC External IRQ pin driver

This patch adds a driver for external IRQ pins connected
to the INTC block on recent SoCs from Renesas.

The INTC hardware block usually contains a rather wide
range of features ranging from external IRQ pin handling
to legacy interrupt controller support. On older SoCs
the INTC is used as a general purpose interrupt controller
both for external IRQ pins and on-chip devices.

On more recent ARM based SoCs with Cortex-A9 the main
interrupt controller is the GIC, but IRQ trigger setup
still need to happen in the INTC hardware block.

This driver implements the glue code needed to configure
IRQ trigger and also handle mask/unmask and demux of
external IRQ pins hooked up from the INTC to the GIC.

Tested on sh73a0 and r8a7779. The hardware varies quite
a bit with SoC model, for instance register width and
bitfield widths vary wildly. The driver requires one GIC
SPI per external IRQ pin to operate.  Each driver instance
will handle up to 8 external IRQ pins.

The SoCs using this driver are currently mainly used
together with regular platform devices so this driver
allows configuration via platform data to support things
like static interrupt base address. DT support will
be added incrementally in the not so distant future.

Signed-off-by: Magnus Damm <damm@opensource.se>
Acked-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
drivers/irqchip/Kconfig
drivers/irqchip/Makefile
drivers/irqchip/irq-renesas-intc-irqpin.c [new file with mode: 0644]
include/linux/platform_data/irq-renesas-intc-irqpin.h [new file with mode: 0644]