1 /* 2 * arch/sh/boards/dreamcast/setup.c 3 * 4 * Hardware support for the Sega Dreamcast. 5 * 6 * Copyright (c) 2001, 2002 M. R. Brown <mrbrown@linuxdc.org> 7 * Copyright (c) 2002, 2003, 2004 Paul Mundt <lethal@linux-sh.org> 8 * 9 * This file is part of the LinuxDC project (www.linuxdc.org) 10 * 11 * Released under the terms of the GNU GPL v2.0. 12 * 13 * This file originally bore the message (with enclosed-$): 14 * Id: setup_dc.c,v 1.5 2001/05/24 05:09:16 mrbrown Exp 15 * SEGA Dreamcast support 16 */ 17 18 #include <linux/sched.h> 19 #include <linux/kernel.h> 20 #include <linux/param.h> 21 #include <linux/interrupt.h> 22 #include <linux/init.h> 23 #include <linux/irq.h> 24 #include <linux/device.h> 25 #include <asm/io.h> 26 #include <asm/irq.h> 27 #include <asm/rtc.h> 28 #include <asm/machvec.h> 29 #include <mach/sysasic.h> 30 31 extern struct irq_chip systemasic_int; 32 extern void aica_time_init(void); 33 extern int systemasic_irq_demux(int); 34 35 static void __init dreamcast_setup(char **cmdline_p) 36 { 37 int i; 38 39 /* Mask all hardware events */ 40 /* XXX */ 41 42 /* Acknowledge any previous events */ 43 /* XXX */ 44 45 /* Assign all virtual IRQs to the System ASIC int. handler */ 46 for (i = HW_EVENT_IRQ_BASE; i < HW_EVENT_IRQ_MAX; i++) 47 set_irq_chip_and_handler(i, &systemasic_int, 48 handle_level_irq); 49 50 board_time_init = aica_time_init; 51 } 52 53 static struct sh_machine_vector mv_dreamcast __initmv = { 54 .mv_name = "Sega Dreamcast", 55 .mv_setup = dreamcast_setup, 56 .mv_irq_demux = systemasic_irq_demux, 57 }; 58