On 09/30/2013 08:59 AM, Sricharan R wrote: > Some socs have a large number of interrupts requests to service > the needs of its many peripherals and subsystems. All of the interrupt > requests lines from the subsystems are not needed at the same > time, so they have to be muxed to the controllers appropriately. > In such places a interrupt controllers are preceded by an > IRQ CROSSBAR that provides flexibility in muxing the device interrupt > requests to the controller inputs. > > This series models the peripheral interrupts that can be routed through > the crossbar to the GIC as 'routable-irqs'. The routable irqs are added > in a separate linear domain inside the GIC. The registered routable domain's > callback are invoked as a part of the GIC's callback, which in turn should > allocate a free irq line and configure the IP accordingly. So every peripheral > in the dts files mentions the fixed crossbar number as its interrupt. A free > gic line for that gets allocated and configured when the peripheral's interrupt > is mapped. > > The minimal crossbar driver to track and allocate free GIC lines and configure the > crossbar is added here, along with the DT bindings. Seems like interrupt-map property is what you need here. http://devicetree.org/Device_Tree_Usage#Advanced_Interrupt_Mapping Versatile Express also has an example. Rob > > Sricharan R (6): > DRIVERS: IRQCHIP: IRQ-GIC: Add support for routable irqs > DRIVERS: IRQCHIP: CROSSBAR: Add support for Crossbar IP > ARM: DTS: DRA: Add crossbar device binding > ARM: DTS: DRA: Replace peripheral interrupt numbers with crossbar > inputs. > ARM: OMAP4+: Correct Wakeup-gen code to use physical irq number > ARM: DRA: Enable Crossbar IP support for DRA7XX > > Documentation/devicetree/bindings/arm/gic.txt | 5 + > .../devicetree/bindings/arm/omap/crossbar.txt | 27 +++ > arch/arm/boot/dts/dra7.dtsi | 98 +++++----- > arch/arm/mach-omap2/Kconfig | 1 + > arch/arm/mach-omap2/omap-wakeupgen.c | 4 +- > arch/arm/mach-omap2/omap4-common.c | 4 + > drivers/irqchip/Kconfig | 8 + > drivers/irqchip/Makefile | 1 + > drivers/irqchip/irq-crossbar.c | 195 ++++++++++++++++++++ > drivers/irqchip/irq-gic.c | 57 +++++- > include/linux/irqchip/arm-gic.h | 8 +- > include/linux/irqchip/irq-crossbar.h | 11 ++ > 12 files changed, 363 insertions(+), 56 deletions(-) > create mode 100644 Documentation/devicetree/bindings/arm/omap/crossbar.txt > create mode 100644 drivers/irqchip/irq-crossbar.c > create mode 100644 include/linux/irqchip/irq-crossbar.h > -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html