1/* 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. 9 */ 10#include <linux/init.h> 11#include <linux/irq.h> 12#include <asm/titan.h> 13#include <asm/io.h> 14 15static struct ipr_data titan_ipr_map[] = { 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 */ 21}; 22 23static void __init init_titan_irq(void) 24{ 25 /* enable individual interrupt mode for externals */ 26 ipr_irq_enable_irlm(); 27 /* register ipr irqs */ 28 make_ipr_irq(titan_ipr_map, ARRAY_SIZE(titan_ipr_map)); 29} 30 31struct sh_machine_vector mv_titan __initmv = { 32 .mv_name = "Titan", 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 51 .mv_ioport_map = titan_ioport_map, 52 53 .mv_init_irq = init_titan_irq, 54}; 55ALIAS_MV(titan) 56