board-edosk7705.c 1.6 KB
Newer Older
L
Linus Torvalds 已提交
1 2 3 4 5 6 7 8 9 10 11
/*
 * 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>
12
#include <linux/irq.h>
13 14 15 16 17 18 19 20 21 22 23
#include <linux/platform_device.h>
#include <linux/interrupt.h>
#include <linux/smc91x.h>
#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)

#define ETHERNET_IRQ	0x09
L
Linus Torvalds 已提交
24

P
Paul Mundt 已提交
25 26
static void __init sh_edosk7705_init_irq(void)
{
27
	make_imask_irq(ETHERNET_IRQ);
P
Paul Mundt 已提交
28
}
L
Linus Torvalds 已提交
29

30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
/* 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));
}
__initcall(init_edosk7705_devices);

L
Linus Torvalds 已提交
71 72 73
/*
 * The Machine Vector
 */
P
Paul Mundt 已提交
74
static struct sh_machine_vector mv_edosk7705 __initmv = {
P
Paul Mundt 已提交
75
	.mv_name		= "EDOSK7705",
L
Linus Torvalds 已提交
76
	.mv_nr_irqs		= 80,
P
Paul Mundt 已提交
77
	.mv_init_irq		= sh_edosk7705_init_irq,
L
Linus Torvalds 已提交
78
};