irqchip: Renesas IRQC driver
authorMagnus Damm <damm@opensource.se>
Wed, 27 Feb 2013 08:15:01 +0000 (17:15 +0900)
committerSimon Horman <horms+renesas@verge.net.au>
Mon, 18 Mar 2013 12:26:06 +0000 (21:26 +0900)
commitfbc83b7f59dd8ed1154286b6de00b6d03c24a3c4
tree3b1159be1b1ccc7f42516c52d73228969d289e35
parent0ca8712285e9e762ce4f5faf9f803b52e48c6837
irqchip: Renesas IRQC driver

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

The IRQC hardware block is used together with more
recent ARM based SoCs using the GIC. As usual the GIC
requires external IRQ trigger setup somewhere else
which in this particular case happens to be IRQC.

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 IRQC to the GIC.

Tested on r8a73a4 but is designed to work with a wide
range of SoCs. The driver requires one GIC SPI per
external IRQ pin to operate.  Each driver instance
will handle up to 32 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>
Tested-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
drivers/irqchip/Kconfig
drivers/irqchip/Makefile
drivers/irqchip/irq-renesas-irqc.c [new file with mode: 0644]
include/linux/platform_data/irq-renesas-irqc.h [new file with mode: 0644]