|
@@ -18,6 +18,7 @@
|
|
|
#include <linux/types.h>
|
|
|
#include <linux/interrupt.h>
|
|
|
#include <linux/ioport.h>
|
|
|
+#include <linux/of_irq.h>
|
|
|
#include <linux/timex.h>
|
|
|
#include <linux/slab.h>
|
|
|
#include <linux/delay.h>
|
|
@@ -32,6 +33,8 @@
|
|
|
|
|
|
#include "irq.h"
|
|
|
|
|
|
+#include "../../drivers/irqchip/irqchip.h"
|
|
|
+
|
|
|
static void __iomem *jz_intc_base;
|
|
|
|
|
|
#define JZ_REG_INTC_STATUS 0x00
|
|
@@ -77,7 +80,8 @@ static struct irqaction jz4740_cascade_action = {
|
|
|
.name = "JZ4740 cascade interrupt",
|
|
|
};
|
|
|
|
|
|
-void __init jz4740_intc_init(void)
|
|
|
+static int __init jz4740_intc_of_init(struct device_node *node,
|
|
|
+ struct device_node *parent)
|
|
|
{
|
|
|
struct irq_chip_generic *gc;
|
|
|
struct irq_chip_type *ct;
|
|
@@ -105,7 +109,9 @@ void __init jz4740_intc_init(void)
|
|
|
irq_setup_generic_chip(gc, IRQ_MSK(32), 0, 0, IRQ_NOPROBE | IRQ_LEVEL);
|
|
|
|
|
|
setup_irq(2, &jz4740_cascade_action);
|
|
|
+ return 0;
|
|
|
}
|
|
|
+IRQCHIP_DECLARE(jz4740_intc, "ingenic,jz4740-intc", jz4740_intc_of_init);
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_FS
|
|
|
|