2006-09-27 10:41:24 +04:00
/*
2005-04-17 02:20:36 +04:00
* Copyright ( C ) 2002 David McCullough < davidm @ snapgear . com >
* Copyright ( C ) 2003 Paul Mundt < lethal @ linux - sh . org >
*
* Based on files with the following comments :
*
* Copyright ( C ) 2000 Kazumoto Kojima
*
* Modified for 7751 Solution Engine by
* Ian da Silva and Jeremy Siegel , 2001.
*/
# include <linux/init.h>
# include <linux/irq.h>
# include <linux/interrupt.h>
# include <linux/timer.h>
# include <linux/delay.h>
# include <linux/module.h>
# include <linux/sched.h>
# include <asm/machvec.h>
2010-10-29 14:06:53 +04:00
# include <mach/secureedge5410.h>
2005-04-17 02:20:36 +04:00
# include <asm/irq.h>
# include <asm/io.h>
2008-07-29 03:09:44 +04:00
# include <cpu/timer.h>
2005-04-17 02:20:36 +04:00
2010-10-29 13:59:58 +04:00
unsigned short secureedge5410_ioport ;
2005-04-17 02:20:36 +04:00
/*
* EraseConfig handling functions
*/
2006-10-06 10:31:16 +04:00
static irqreturn_t eraseconfig_interrupt ( int irq , void * dev_id )
2005-04-17 02:20:36 +04:00
{
printk ( " SnapGear: erase switch interrupt! \n " ) ;
return IRQ_HANDLED ;
}
static int __init eraseconfig_init ( void )
{
2010-10-29 13:59:58 +04:00
unsigned int irq = evt2irq ( 0x240 ) ;
2005-04-17 02:20:36 +04:00
printk ( " SnapGear: EraseConfig init \n " ) ;
2010-10-29 13:59:58 +04:00
2005-04-17 02:20:36 +04:00
/* Setup "EraseConfig" switch on external IRQ 0 */
2011-10-22 13:56:28 +04:00
if ( request_irq ( irq , eraseconfig_interrupt , 0 , " Erase Config " , NULL ) )
2005-04-17 02:20:36 +04:00
printk ( " SnapGear: failed to register IRQ%d for Reset witch \n " ,
2010-10-29 13:59:58 +04:00
irq ) ;
2005-04-17 02:20:36 +04:00
else
printk ( " SnapGear: registered EraseConfig switch on IRQ%d \n " ,
2010-10-29 13:59:58 +04:00
irq ) ;
return 0 ;
2005-04-17 02:20:36 +04:00
}
module_init ( eraseconfig_init ) ;
/*
* Initialize IRQ setting
*
* IRL0 = erase switch
* IRL1 = eth0
* IRL2 = eth1
* IRL3 = crypto
*/
static void __init init_snapgear_IRQ ( void )
{
printk ( " Setup SnapGear IRQ/IPR ... \n " ) ;
2007-08-03 09:23:35 +04:00
/* enable individual interrupt mode for externals */
plat_irq_setup_pins ( IRQ_MODE_IRQ ) ;
2005-04-17 02:20:36 +04:00
}
/*
* The Machine Vector
*/
2007-05-15 10:19:34 +04:00
static struct sh_machine_vector mv_snapgear __initmv = {
2006-09-27 13:17:31 +04:00
. mv_name = " SnapGear SecureEdge5410 " ,
2005-04-17 02:20:36 +04:00
. mv_init_irq = init_snapgear_IRQ ,
} ;