Path: blob/master/arch/sh/boards/board-secureedge5410.c
10817 views
/*1* Copyright (C) 2002 David McCullough <[email protected]>2* Copyright (C) 2003 Paul Mundt <[email protected]>3*4* Based on files with the following comments:5*6* Copyright (C) 2000 Kazumoto Kojima7*8* Modified for 7751 Solution Engine by9* Ian da Silva and Jeremy Siegel, 2001.10*/11#include <linux/init.h>12#include <linux/irq.h>13#include <linux/interrupt.h>14#include <linux/timer.h>15#include <linux/delay.h>16#include <linux/module.h>17#include <linux/sched.h>18#include <asm/machvec.h>19#include <mach/secureedge5410.h>20#include <asm/irq.h>21#include <asm/io.h>22#include <cpu/timer.h>2324unsigned short secureedge5410_ioport;2526/*27* EraseConfig handling functions28*/29static irqreturn_t eraseconfig_interrupt(int irq, void *dev_id)30{31printk("SnapGear: erase switch interrupt!\n");3233return IRQ_HANDLED;34}3536static int __init eraseconfig_init(void)37{38unsigned int irq = evt2irq(0x240);3940printk("SnapGear: EraseConfig init\n");4142/* Setup "EraseConfig" switch on external IRQ 0 */43if (request_irq(irq, eraseconfig_interrupt, IRQF_DISABLED,44"Erase Config", NULL))45printk("SnapGear: failed to register IRQ%d for Reset witch\n",46irq);47else48printk("SnapGear: registered EraseConfig switch on IRQ%d\n",49irq);50return 0;51}52module_init(eraseconfig_init);5354/*55* Initialize IRQ setting56*57* IRL0 = erase switch58* IRL1 = eth059* IRL2 = eth160* IRL3 = crypto61*/62static void __init init_snapgear_IRQ(void)63{64printk("Setup SnapGear IRQ/IPR ...\n");65/* enable individual interrupt mode for externals */66plat_irq_setup_pins(IRQ_MODE_IRQ);67}6869/*70* The Machine Vector71*/72static struct sh_machine_vector mv_snapgear __initmv = {73.mv_name = "SnapGear SecureEdge5410",74.mv_nr_irqs = 72,75.mv_init_irq = init_snapgear_IRQ,76};777879