1/* 2 * Copyright (C) 2002 David McCullough <davidm@snapgear.com> 3 * Copyright (C) 2003 Paul Mundt <lethal@linux-sh.org> 4 * 5 * Based on files with the following comments: 6 * 7 * Copyright (C) 2000 Kazumoto Kojima 8 * 9 * Modified for 7751 Solution Engine by 10 * Ian da Silva and Jeremy Siegel, 2001. 11 */ 12#include <linux/init.h> 13#include <linux/irq.h> 14#include <linux/interrupt.h> 15#include <linux/timer.h> 16#include <linux/delay.h> 17#include <linux/module.h> 18#include <linux/sched.h> 19#include <asm/machvec.h> 20#include <mach/secureedge5410.h> 21#include <asm/irq.h> 22#include <asm/io.h> 23#include <cpu/timer.h> 24 25unsigned short secureedge5410_ioport; 26 27/* 28 * EraseConfig handling functions 29 */ 30static irqreturn_t eraseconfig_interrupt(int irq, void *dev_id) 31{ 32 printk("SnapGear: erase switch interrupt!\n"); 33 34 return IRQ_HANDLED; 35} 36 37static int __init eraseconfig_init(void) 38{ 39 unsigned int irq = evt2irq(0x240); 40 41 printk("SnapGear: EraseConfig init\n"); 42 43 /* Setup "EraseConfig" switch on external IRQ 0 */ 44 if (request_irq(irq, eraseconfig_interrupt, 0, "Erase Config", NULL)) 45 printk("SnapGear: failed to register IRQ%d for Reset witch\n", 46 irq); 47 else 48 printk("SnapGear: registered EraseConfig switch on IRQ%d\n", 49 irq); 50 return 0; 51} 52module_init(eraseconfig_init); 53 54/* 55 * Initialize IRQ setting 56 * 57 * IRL0 = erase switch 58 * IRL1 = eth0 59 * IRL2 = eth1 60 * IRL3 = crypto 61 */ 62static void __init init_snapgear_IRQ(void) 63{ 64 printk("Setup SnapGear IRQ/IPR ...\n"); 65 /* enable individual interrupt mode for externals */ 66 plat_irq_setup_pins(IRQ_MODE_IRQ); 67} 68 69/* 70 * The Machine Vector 71 */ 72static struct sh_machine_vector mv_snapgear __initmv = { 73 .mv_name = "SnapGear SecureEdge5410", 74 .mv_init_irq = init_snapgear_IRQ, 75}; 76