irqchip: versatile-fpga: Add IRQCHIP_DECLARE support
Add support for initialization using IRQCHIP_DECLARE. This also requires that the controller initialization set the handle_irq function pointer itself when it is a primary controller. Signed-off-by: Rob Herring <robh@kernel.org> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Jason Cooper <jason@lakedaemon.net> Acked-by: Linus Walleij <linus.walleij@linaro.org>
This commit is contained in:
parent
0ba6c5d26a
commit
2920bc9abe
1 changed files with 6 additions and 1 deletions
|
@ -14,6 +14,8 @@
|
|||
#include <asm/exception.h>
|
||||
#include <asm/mach/irq.h>
|
||||
|
||||
#include "irqchip.h"
|
||||
|
||||
#define IRQ_STATUS 0x00
|
||||
#define IRQ_RAW_STATUS 0x04
|
||||
#define IRQ_ENABLE_SET 0x08
|
||||
|
@ -201,8 +203,10 @@ int __init fpga_irq_of_init(struct device_node *node,
|
|||
|
||||
/* Some chips are cascaded from a parent IRQ */
|
||||
parent_irq = irq_of_parse_and_map(node, 0);
|
||||
if (!parent_irq)
|
||||
if (!parent_irq) {
|
||||
set_handle_irq(fpga_handle_irq);
|
||||
parent_irq = -1;
|
||||
}
|
||||
|
||||
fpga_irq_init(base, node->name, 0, parent_irq, valid_mask, node);
|
||||
|
||||
|
@ -211,4 +215,5 @@ int __init fpga_irq_of_init(struct device_node *node,
|
|||
|
||||
return 0;
|
||||
}
|
||||
IRQCHIP_DECLARE(arm_fpga, "arm,versatile-fpga-irq", fpga_irq_of_init);
|
||||
#endif
|
||||
|
|
Loading…
Reference in a new issue