Commit | Line | Data |
---|---|---|
a09749dd | 1 | /* |
ea0f8fea JL |
2 | * arch/sh/boards/titan/setup.c - Setup for Titan |
3 | * | |
4 | * Copyright (C) 2006 Jamie Lenehan | |
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. | |
a09749dd | 9 | */ |
a09749dd | 10 | #include <linux/init.h> |
ea0f8fea | 11 | #include <linux/irq.h> |
a09749dd JL |
12 | #include <asm/titan.h> |
13 | #include <asm/io.h> | |
14 | ||
bd71ab88 | 15 | static struct ipr_data titan_ipr_map[] = { |
ea0f8fea JL |
16 | /* IRQ, IPR idx, shift, prio */ |
17 | { TITAN_IRQ_WAN, 3, 12, 8 }, /* eth0 (WAN) */ | |
18 | { TITAN_IRQ_LAN, 3, 8, 8 }, /* eth1 (LAN) */ | |
19 | { TITAN_IRQ_MPCIA, 3, 4, 8 }, /* mPCI A (top) */ | |
20 | { TITAN_IRQ_USB, 3, 0, 8 }, /* mPCI B (bottom), USB */ | |
bd71ab88 JL |
21 | }; |
22 | ||
a09749dd JL |
23 | static void __init init_titan_irq(void) |
24 | { | |
25 | /* enable individual interrupt mode for externals */ | |
ea0f8fea JL |
26 | ipr_irq_enable_irlm(); |
27 | /* register ipr irqs */ | |
bd71ab88 | 28 | make_ipr_irq(titan_ipr_map, ARRAY_SIZE(titan_ipr_map)); |
a09749dd JL |
29 | } |
30 | ||
a09749dd | 31 | struct sh_machine_vector mv_titan __initmv = { |
2c7834a6 | 32 | .mv_name = "Titan", |
a09749dd JL |
33 | |
34 | .mv_inb = titan_inb, | |
35 | .mv_inw = titan_inw, | |
36 | .mv_inl = titan_inl, | |
37 | .mv_outb = titan_outb, | |
38 | .mv_outw = titan_outw, | |
39 | .mv_outl = titan_outl, | |
40 | ||
41 | .mv_inb_p = titan_inb_p, | |
42 | .mv_inw_p = titan_inw, | |
43 | .mv_inl_p = titan_inl, | |
44 | .mv_outb_p = titan_outb_p, | |
45 | .mv_outw_p = titan_outw, | |
46 | .mv_outl_p = titan_outl, | |
47 | ||
48 | .mv_insl = titan_insl, | |
49 | .mv_outsl = titan_outsl, | |
50 | ||
a09749dd JL |
51 | .mv_ioport_map = titan_ioport_map, |
52 | ||
53 | .mv_init_irq = init_titan_irq, | |
a09749dd JL |
54 | }; |
55 | ALIAS_MV(titan) |