2005-04-17 02:20:36 +04:00
/*
* arch / sh / boards / renesas / edosk7705 / setup . c
*
* Copyright ( C ) 2000 Kazumoto Kojima
*
* Hitachi SolutionEngine Support .
*
* Modified for edosk7705 development
* board by S . Dunn , 2003.
*/
# include <linux/init.h>
2008-12-17 07:57:15 +03:00
# include <linux/irq.h>
2010-10-29 14:34:13 +04:00
# include <linux/platform_device.h>
# include <linux/interrupt.h>
# include <linux/smc91x.h>
2012-05-18 09:48:53 +04:00
# include <linux/sh_intc.h>
2010-10-29 14:34:13 +04:00
# include <asm/machvec.h>
# include <asm/sizes.h>
# define SMC_IOBASE 0xA2000000
# define SMC_IO_OFFSET 0x300
# define SMC_IOADDR (SMC_IOBASE + SMC_IO_OFFSET)
2012-05-18 09:48:53 +04:00
# define ETHERNET_IRQ evt2irq(0x320)
2005-04-17 02:20:36 +04:00
2006-09-27 13:17:31 +04:00
static void __init sh_edosk7705_init_irq ( void )
{
2010-10-29 14:34:13 +04:00
make_imask_irq ( ETHERNET_IRQ ) ;
2006-09-27 13:17:31 +04:00
}
2005-04-17 02:20:36 +04:00
2010-10-29 14:34:13 +04:00
/* eth initialization functions */
static struct smc91x_platdata smc91x_info = {
. flags = SMC91X_USE_16BIT | SMC91X_IO_SHIFT_1 | IORESOURCE_IRQ_LOWLEVEL ,
} ;
static struct resource smc91x_res [ ] = {
[ 0 ] = {
. start = SMC_IOADDR ,
. end = SMC_IOADDR + SZ_32 - 1 ,
. flags = IORESOURCE_MEM ,
} ,
[ 1 ] = {
. start = ETHERNET_IRQ ,
. end = ETHERNET_IRQ ,
. flags = IORESOURCE_IRQ ,
}
} ;
static struct platform_device smc91x_dev = {
. name = " smc91x " ,
. id = - 1 ,
. num_resources = ARRAY_SIZE ( smc91x_res ) ,
. resource = smc91x_res ,
. dev = {
. platform_data = & smc91x_info ,
} ,
} ;
/* platform init code */
static struct platform_device * edosk7705_devices [ ] __initdata = {
& smc91x_dev ,
} ;
static int __init init_edosk7705_devices ( void )
{
return platform_add_devices ( edosk7705_devices ,
ARRAY_SIZE ( edosk7705_devices ) ) ;
}
2011-01-07 06:02:15 +03:00
device_initcall ( init_edosk7705_devices ) ;
2010-10-29 14:34:13 +04:00
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_edosk7705 __initmv = {
2006-09-27 13:17:31 +04:00
. mv_name = " EDOSK7705 " ,
. mv_init_irq = sh_edosk7705_init_irq ,
2005-04-17 02:20:36 +04:00
} ;