aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-shmobile/setup-sh7377.c
diff options
context:
space:
mode:
authorMagnus Damm <damm@opensource.se>2010-02-08 22:35:53 -0500
committerPaul Mundt <lethal@linux-sh.org>2010-02-09 04:01:44 -0500
commit6673be73809c8aa1ca5255c83f4fc85c43fdbfab (patch)
tree85efd6a908c5b7f8723a49dd1b33be72613ee9db /arch/arm/mach-shmobile/setup-sh7377.c
parentf8eef1305b33438dd7a3a01e43b94e57ca87fc9b (diff)
ARM: mach-shmobile: sh7377 INTCA support
Add support for the sh7377 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-sh7377.c')
-rw-r--r--arch/arm/mach-shmobile/setup-sh7377.c45
1 files changed, 0 insertions, 45 deletions
diff --git a/arch/arm/mach-shmobile/setup-sh7377.c b/arch/arm/mach-shmobile/setup-sh7377.c
index e568124ce197..60e37774c35c 100644
--- a/arch/arm/mach-shmobile/setup-sh7377.c
+++ b/arch/arm/mach-shmobile/setup-sh7377.c
@@ -213,48 +213,3 @@ void __init sh7377_add_early_devices(void)
213 early_platform_add_devices(sh7377_early_devices, 213 early_platform_add_devices(sh7377_early_devices,
214 ARRAY_SIZE(sh7377_early_devices)); 214 ARRAY_SIZE(sh7377_early_devices));
215} 215}
216
217enum {
218 UNUSED = 0,
219
220 /* interrupt sources INTCA */
221
222 SCIFA0, SCIFA1, SCIFA2, SCIFA3, SCIFA4, SCIFA5, SCIFB, SCIFA6,
223 CMT10,
224};
225
226static struct intc_vect vectors[] = {
227 INTC_VECT(CMT10, 0xb00),
228 INTC_VECT(SCIFA0, 0xc00), INTC_VECT(SCIFA1, 0xc20),
229 INTC_VECT(SCIFA2, 0xc40), INTC_VECT(SCIFA3, 0xc60),
230 INTC_VECT(SCIFA4, 0xd20), INTC_VECT(SCIFA5, 0xd40),
231 INTC_VECT(SCIFB, 0xd60), INTC_VECT(SCIFA6, 0x1a80),
232};
233
234static struct intc_mask_reg mask_registers[] = {
235 { 0xe6940094, 0xe69400d4, 8, /* IMR5A / IMCR5A */
236 { 0, 0, 0, 0, SCIFA3, SCIFA2, SCIFA1, SCIFA0 } },
237 { 0xe6940098, 0xe69400d8, 8, /* IMR6A / IMCR6A */
238 { SCIFB, SCIFA5, SCIFA4, 0, 0, 0, 0, 0 } },
239 { 0xe69400a4, 0xe69400e4, 8, /* IMR9A / IMCR9A */
240 { 0, 0, 0, CMT10, 0, 0, 0, 0 } },
241 { 0xe695009c, 0xe69500dc, 8, /* IMR7A3 / IMCR7A3 */
242 { 0, 0, 0, 0, SCIFA6, 0, 0, 0 } },
243};
244
245static struct intc_prio_reg prio_registers[] = {
246 { 0xe6940014, 0, 16, 4, /* IPRFA */ { 0, 0, 0, CMT10 } },
247 { 0xe6940018, 0, 16, 4, /* IPRGA */ { SCIFA0, SCIFA1,
248 SCIFA2, SCIFA3 } },
249 { 0xe6940020, 0, 16, 4, /* IPRIA */ { 0, SCIFA4, 0, 0 } },
250 { 0xe6940034, 0, 16, 4, /* IPRNA */ { SCIFB, SCIFA5, 0, 0 } },
251 { 0xe695003c, 0, 16, 4, /* IPRPA3 */ { SCIFA6, 0, 0, 0 } },
252};
253
254static DECLARE_INTC_DESC(intc_desc, "sh7377", vectors, NULL, mask_registers,
255 prio_registers, NULL);
256
257void __init sh7377_init_irq(void)
258{
259 register_intc_controller(&intc_desc);
260}