aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-shmobile/setup-sh7367.c
diff options
context:
space:
mode:
authorMagnus Damm <damm@opensource.se>2010-02-08 22:35:42 -0500
committerPaul Mundt <lethal@linux-sh.org>2010-02-09 04:01:42 -0500
commitf8eef1305b33438dd7a3a01e43b94e57ca87fc9b (patch)
tree4ffd800fc3a872502aa8780444f24142135537e6 /arch/arm/mach-shmobile/setup-sh7367.c
parent4ae04acb81256719a71125c0f0280e2a3ad68e25 (diff)
ARM: mach-shmobile: sh7367 INTCA support
Add support for the sh7367 INTCA hardware block. Signed-off-by: Magnus Damm <damm@opensource.se> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch/arm/mach-shmobile/setup-sh7367.c')
-rw-r--r--arch/arm/mach-shmobile/setup-sh7367.c43
1 files changed, 0 insertions, 43 deletions
diff --git a/arch/arm/mach-shmobile/setup-sh7367.c b/arch/arm/mach-shmobile/setup-sh7367.c
index 840e5bcf2d68..eca90716140e 100644
--- a/arch/arm/mach-shmobile/setup-sh7367.c
+++ b/arch/arm/mach-shmobile/setup-sh7367.c
@@ -26,7 +26,6 @@
26#include <linux/input.h> 26#include <linux/input.h>
27#include <linux/io.h> 27#include <linux/io.h>
28#include <linux/serial_sci.h> 28#include <linux/serial_sci.h>
29#include <linux/sh_intc.h>
30#include <linux/sh_timer.h> 29#include <linux/sh_timer.h>
31#include <mach/hardware.h> 30#include <mach/hardware.h>
32#include <asm/mach-types.h> 31#include <asm/mach-types.h>
@@ -197,45 +196,3 @@ void __init sh7367_add_early_devices(void)
197 early_platform_add_devices(sh7367_early_devices, 196 early_platform_add_devices(sh7367_early_devices,
198 ARRAY_SIZE(sh7367_early_devices)); 197 ARRAY_SIZE(sh7367_early_devices));
199} 198}
200
201enum {
202 UNUSED = 0,
203
204 /* interrupt sources INTCA */
205
206 SCIFA0, SCIFA1, SCIFA2, SCIFA3, SCIFA4, SCIFA5, SCIFB,
207 CMT10,
208};
209
210static struct intc_vect vectors[] = {
211 INTC_VECT(CMT10, 0xb00),
212 INTC_VECT(SCIFA0, 0xc00), INTC_VECT(SCIFA1, 0xc20),
213 INTC_VECT(SCIFA2, 0xc40), INTC_VECT(SCIFA3, 0xc60),
214 INTC_VECT(SCIFA4, 0xd20), INTC_VECT(SCIFA5, 0xd40),
215 INTC_VECT(SCIFB, 0xd60),
216};
217
218static struct intc_mask_reg mask_registers[] = {
219 { 0xe6940094, 0xe69400d4, 8, /* IMR5A / IMCR5A */
220 { 0, 0, 0, 0, SCIFA3, SCIFA2, SCIFA1, SCIFA0 } },
221 { 0xe6940098, 0xe69400d8, 8, /* IMR6A / IMCR6A */
222 { SCIFB, SCIFA5, SCIFA4, 0, 0, 0, 0, 0 } },
223 { 0xe69400a4, 0xe69400e4, 8, /* IMR9A / IMCR9A */
224 { 0, 0, 0, CMT10, 0, 0, 0, 0 } },
225};
226
227static struct intc_prio_reg prio_registers[] = {
228 { 0xe6940014, 0, 16, 4, /* IPRFA */ { 0, 0, 0, CMT10 } },
229 { 0xe6940018, 0, 16, 4, /* IPRGA */ { SCIFA0, SCIFA1,
230 SCIFA2, SCIFA3 } },
231 { 0xe6940020, 0, 16, 4, /* IPRIA */ { 0, SCIFA4, 0, 0 } },
232 { 0xe6940034, 0, 16, 4, /* IPRNA */ { SCIFB, SCIFA5, 0, 0 } },
233};
234
235static DECLARE_INTC_DESC(intc_desc, "sh7367", vectors, NULL, mask_registers,
236 prio_registers, NULL);
237
238void __init sh7367_init_irq(void)
239{
240 register_intc_controller(&intc_desc);
241}