Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
[pandora-kernel.git] / arch / sh / boards / titan / setup.c
1 /*
2  *      Setup for Titan
3  */
4
5 #include <linux/init.h>
6 #include <asm/irq.h>
7 #include <asm/titan.h>
8 #include <asm/io.h>
9
10 extern void __init pcibios_init_platform(void);
11
12 static void __init init_titan_irq(void)
13 {
14         /* enable individual interrupt mode for externals */
15         ctrl_outw(ctrl_inw(INTC_ICR) | INTC_ICR_IRLM, INTC_ICR);
16
17         make_ipr_irq( TITAN_IRQ_WAN,   IRL0_IPR_ADDR, IRL0_IPR_POS, IRL0_PRIORITY); /* PCIRQ0 */
18         make_ipr_irq( TITAN_IRQ_LAN,   IRL1_IPR_ADDR, IRL1_IPR_POS, IRL1_PRIORITY); /* PCIRQ1 */
19         make_ipr_irq( TITAN_IRQ_MPCIA, IRL2_IPR_ADDR, IRL2_IPR_POS, IRL2_PRIORITY); /* PCIRQ2 */
20         make_ipr_irq( TITAN_IRQ_USB,   IRL3_IPR_ADDR, IRL3_IPR_POS, IRL3_PRIORITY); /* PCIRQ3 */
21 }
22
23 struct sh_machine_vector mv_titan __initmv = {
24         .mv_name =      "Titan",
25
26         .mv_inb =       titan_inb,
27         .mv_inw =       titan_inw,
28         .mv_inl =       titan_inl,
29         .mv_outb =      titan_outb,
30         .mv_outw =      titan_outw,
31         .mv_outl =      titan_outl,
32
33         .mv_inb_p =     titan_inb_p,
34         .mv_inw_p =     titan_inw,
35         .mv_inl_p =     titan_inl,
36         .mv_outb_p =    titan_outb_p,
37         .mv_outw_p =    titan_outw,
38         .mv_outl_p =    titan_outl,
39
40         .mv_insl =      titan_insl,
41         .mv_outsl =     titan_outsl,
42
43         .mv_ioport_map = titan_ioport_map,
44
45         .mv_init_irq =  init_titan_irq,
46         .mv_init_pci =  pcibios_init_platform,
47 };
48 ALIAS_MV(titan)