summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arch/mips/include/asm/mach-jz4740/irq.h2
-rw-r--r--arch/mips/jz4740/irq.c5
-rw-r--r--arch/mips/jz4740/setup.c8
3 files changed, 11 insertions, 4 deletions
diff --git a/arch/mips/include/asm/mach-jz4740/irq.h b/arch/mips/include/asm/mach-jz4740/irq.h
index df50736749c1..5ce430218e42 100644
--- a/arch/mips/include/asm/mach-jz4740/irq.h
+++ b/arch/mips/include/asm/mach-jz4740/irq.h
@@ -54,4 +54,6 @@
#define NR_IRQS (JZ4740_IRQ_ADC_BASE + 6)
+extern void __init jz4740_intc_init(void);
+
#endif
diff --git a/arch/mips/jz4740/irq.c b/arch/mips/jz4740/irq.c
index a2452bb80e1d..bac1f52d327f 100644
--- a/arch/mips/jz4740/irq.c
+++ b/arch/mips/jz4740/irq.c
@@ -18,7 +18,6 @@
#include <linux/types.h>
#include <linux/interrupt.h>
#include <linux/ioport.h>
-#include <linux/irqchip.h>
#include <linux/timex.h>
#include <linux/slab.h>
#include <linux/delay.h>
@@ -78,13 +77,11 @@ static struct irqaction jz4740_cascade_action = {
.name = "JZ4740 cascade interrupt",
};
-void __init arch_init_irq(void)
+void __init jz4740_intc_init(void)
{
struct irq_chip_generic *gc;
struct irq_chip_type *ct;
- irqchip_init();
-
jz_intc_base = ioremap(JZ4740_INTC_BASE_ADDR, 0x14);
/* Mask all irqs */
diff --git a/arch/mips/jz4740/setup.c b/arch/mips/jz4740/setup.c
index d6bb7a39fafe..480873031007 100644
--- a/arch/mips/jz4740/setup.c
+++ b/arch/mips/jz4740/setup.c
@@ -16,6 +16,7 @@
#include <linux/init.h>
#include <linux/io.h>
+#include <linux/irqchip.h>
#include <linux/kernel.h>
#include <linux/of_fdt.h>
#include <linux/of_platform.h>
@@ -24,6 +25,7 @@
#include <asm/prom.h>
#include <asm/mach-jz4740/base.h>
+#include <asm/mach-jz4740/irq.h>
#include "reset.h"
@@ -78,3 +80,9 @@ const char *get_system_type(void)
{
return "JZ4740";
}
+
+void __init arch_init_irq(void)
+{
+ irqchip_init();
+ jz4740_intc_init();
+}