diff options
author | Greg Ungerer <gerg@uclinux.org> | 2009-04-30 02:22:24 -0400 |
---|---|---|
committer | Greg Ungerer <gerg@uclinux.org> | 2009-09-15 19:43:44 -0400 |
commit | 33a21263bf74177209c11f08246fc308916d9ffa (patch) | |
tree | e17343a09cb5f0a0faaeb2985b91368cc32cbda1 /arch/m68knommu | |
parent | 6589c1d71581618dfc344628fb425ee4f09ce904 (diff) |
m68knommu: use common interrupt controller code for older ColdFire CPU's
The old ColdFire CPU's (5206, 5307, 5407, 5249 etc) use a simple
interrupt controller. Use common setup code for them. This addition
means that all ColdFire CPU's now have some specific type of interrupt
controller code.
Signed-off-by: Greg Ungerer <gerg@uclinux.org>
Diffstat (limited to 'arch/m68knommu')
-rw-r--r-- | arch/m68knommu/kernel/irq.c | 4 | ||||
-rw-r--r-- | arch/m68knommu/platform/coldfire/Makefile | 12 | ||||
-rw-r--r-- | arch/m68knommu/platform/coldfire/intc.c | 55 | ||||
-rw-r--r-- | arch/m68knommu/platform/coldfire/vectors.c | 20 |
4 files changed, 63 insertions, 28 deletions
diff --git a/arch/m68knommu/kernel/irq.c b/arch/m68knommu/kernel/irq.c index 93d567bbf33d..73daaf0a4552 100644 --- a/arch/m68knommu/kernel/irq.c +++ b/arch/m68knommu/kernel/irq.c | |||
@@ -29,9 +29,7 @@ asmlinkage void do_IRQ(int irq, struct pt_regs *regs) | |||
29 | set_irq_regs(oldregs); | 29 | set_irq_regs(oldregs); |
30 | } | 30 | } |
31 | 31 | ||
32 | #if !defined(CONFIG_M520x) && !defined(CONFIG_M523x) && \ | 32 | #if !defined(CONFIG_COLDFIRE) |
33 | !defined(CONFIG_M527x) && !defined(CONFIG_M528x) && \ | ||
34 | !defined(CONFIG_M532x) | ||
35 | 33 | ||
36 | static struct irq_chip m_irq_chip = { | 34 | static struct irq_chip m_irq_chip = { |
37 | .name = "M68K-INTC", | 35 | .name = "M68K-INTC", |
diff --git a/arch/m68knommu/platform/coldfire/Makefile b/arch/m68knommu/platform/coldfire/Makefile index 6c5f699cf145..24ea95a23128 100644 --- a/arch/m68knommu/platform/coldfire/Makefile +++ b/arch/m68knommu/platform/coldfire/Makefile | |||
@@ -15,17 +15,17 @@ | |||
15 | asflags-$(CONFIG_FULLDEBUG) := -DDEBUGGER_COMPATIBLE_CACHE=1 | 15 | asflags-$(CONFIG_FULLDEBUG) := -DDEBUGGER_COMPATIBLE_CACHE=1 |
16 | 16 | ||
17 | obj-$(CONFIG_COLDFIRE) += clk.o dma.o entry.o vectors.o | 17 | obj-$(CONFIG_COLDFIRE) += clk.o dma.o entry.o vectors.o |
18 | obj-$(CONFIG_M5206) += timers.o | 18 | obj-$(CONFIG_M5206) += timers.o intc.o |
19 | obj-$(CONFIG_M5206e) += timers.o | 19 | obj-$(CONFIG_M5206e) += timers.o intc.o |
20 | obj-$(CONFIG_M520x) += pit.o intc-simr.o | 20 | obj-$(CONFIG_M520x) += pit.o intc-simr.o |
21 | obj-$(CONFIG_M523x) += pit.o dma_timer.o intc-2.o | 21 | obj-$(CONFIG_M523x) += pit.o dma_timer.o intc-2.o |
22 | obj-$(CONFIG_M5249) += timers.o | 22 | obj-$(CONFIG_M5249) += timers.o intc.o |
23 | obj-$(CONFIG_M527x) += pit.o intc-2.o | 23 | obj-$(CONFIG_M527x) += pit.o intc-2.o |
24 | obj-$(CONFIG_M5272) += timers.o | 24 | obj-$(CONFIG_M5272) += timers.o intc.o |
25 | obj-$(CONFIG_M528x) += pit.o intc-2.o | 25 | obj-$(CONFIG_M528x) += pit.o intc-2.o |
26 | obj-$(CONFIG_M5307) += timers.o | 26 | obj-$(CONFIG_M5307) += timers.o intc.o |
27 | obj-$(CONFIG_M532x) += timers.o intc-simr.o | 27 | obj-$(CONFIG_M532x) += timers.o intc-simr.o |
28 | obj-$(CONFIG_M5407) += timers.o | 28 | obj-$(CONFIG_M5407) += timers.o intc.o |
29 | 29 | ||
30 | obj-y += pinmux.o gpio.o | 30 | obj-y += pinmux.o gpio.o |
31 | extra-y := head.o | 31 | extra-y := head.o |
diff --git a/arch/m68knommu/platform/coldfire/intc.c b/arch/m68knommu/platform/coldfire/intc.c new file mode 100644 index 000000000000..c81ab6e5cf26 --- /dev/null +++ b/arch/m68knommu/platform/coldfire/intc.c | |||
@@ -0,0 +1,55 @@ | |||
1 | /* | ||
2 | * intc.c | ||
3 | * | ||
4 | * (C) Copyright 2009, Greg Ungerer <gerg@snapgear.com> | ||
5 | * | ||
6 | * This file is subject to the terms and conditions of the GNU General Public | ||
7 | * License. See the file COPYING in the main directory of this archive | ||
8 | * for more details. | ||
9 | */ | ||
10 | |||
11 | #include <linux/types.h> | ||
12 | #include <linux/init.h> | ||
13 | #include <linux/kernel.h> | ||
14 | #include <linux/interrupt.h> | ||
15 | #include <linux/irq.h> | ||
16 | #include <linux/io.h> | ||
17 | #include <asm/traps.h> | ||
18 | #include <asm/coldfire.h> | ||
19 | #include <asm/mcfsim.h> | ||
20 | |||
21 | static void intc_irq_mask(unsigned int irq) | ||
22 | { | ||
23 | } | ||
24 | |||
25 | static void intc_irq_unmask(unsigned int irq) | ||
26 | { | ||
27 | } | ||
28 | |||
29 | static int intc_irq_set_type(unsigned int irq, unsigned int type) | ||
30 | { | ||
31 | return 0; | ||
32 | } | ||
33 | |||
34 | static struct irq_chip intc_irq_chip = { | ||
35 | .name = "CF-INTC", | ||
36 | .mask = intc_irq_mask, | ||
37 | .unmask = intc_irq_unmask, | ||
38 | .set_type = intc_irq_set_type, | ||
39 | }; | ||
40 | |||
41 | void __init init_IRQ(void) | ||
42 | { | ||
43 | int irq; | ||
44 | |||
45 | init_vectors(); | ||
46 | |||
47 | for (irq = 0; (irq < NR_IRQS); irq++) { | ||
48 | irq_desc[irq].status = IRQ_DISABLED; | ||
49 | irq_desc[irq].action = NULL; | ||
50 | irq_desc[irq].depth = 1; | ||
51 | irq_desc[irq].chip = &intc_irq_chip; | ||
52 | intc_irq_set_type(irq, 0); | ||
53 | } | ||
54 | } | ||
55 | |||
diff --git a/arch/m68knommu/platform/coldfire/vectors.c b/arch/m68knommu/platform/coldfire/vectors.c index bdca0297fa9a..a21d3f870b7a 100644 --- a/arch/m68knommu/platform/coldfire/vectors.c +++ b/arch/m68knommu/platform/coldfire/vectors.c | |||
@@ -1,7 +1,7 @@ | |||
1 | /***************************************************************************/ | 1 | /***************************************************************************/ |
2 | 2 | ||
3 | /* | 3 | /* |
4 | * linux/arch/m68knommu/platform/5307/vectors.c | 4 | * linux/arch/m68knommu/platform/coldfire/vectors.c |
5 | * | 5 | * |
6 | * Copyright (C) 1999-2007, Greg Ungerer <gerg@snapgear.com> | 6 | * Copyright (C) 1999-2007, Greg Ungerer <gerg@snapgear.com> |
7 | */ | 7 | */ |
@@ -15,7 +15,6 @@ | |||
15 | #include <asm/machdep.h> | 15 | #include <asm/machdep.h> |
16 | #include <asm/coldfire.h> | 16 | #include <asm/coldfire.h> |
17 | #include <asm/mcfsim.h> | 17 | #include <asm/mcfsim.h> |
18 | #include <asm/mcfdma.h> | ||
19 | #include <asm/mcfwdebug.h> | 18 | #include <asm/mcfwdebug.h> |
20 | 19 | ||
21 | /***************************************************************************/ | 20 | /***************************************************************************/ |
@@ -79,20 +78,3 @@ void __init init_vectors(void) | |||
79 | } | 78 | } |
80 | 79 | ||
81 | /***************************************************************************/ | 80 | /***************************************************************************/ |
82 | |||
83 | void enable_vector(unsigned int irq) | ||
84 | { | ||
85 | /* Currently no action on ColdFire */ | ||
86 | } | ||
87 | |||
88 | void disable_vector(unsigned int irq) | ||
89 | { | ||
90 | /* Currently no action on ColdFire */ | ||
91 | } | ||
92 | |||
93 | void ack_vector(unsigned int irq) | ||
94 | { | ||
95 | /* Currently no action on ColdFire */ | ||
96 | } | ||
97 | |||
98 | /***************************************************************************/ | ||