diff options
Diffstat (limited to 'arch/sh/boards/se/7206/setup.c')
-rw-r--r-- | arch/sh/boards/se/7206/setup.c | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/arch/sh/boards/se/7206/setup.c b/arch/sh/boards/se/7206/setup.c new file mode 100644 index 000000000000..e543e3980c08 --- /dev/null +++ b/arch/sh/boards/se/7206/setup.c | |||
@@ -0,0 +1,80 @@ | |||
1 | /* | ||
2 | * | ||
3 | * linux/arch/sh/boards/se/7206/setup.c | ||
4 | * | ||
5 | * Copyright (C) 2006 Yoshinori Sato | ||
6 | * | ||
7 | * Hitachi 7206 SolutionEngine Support. | ||
8 | * | ||
9 | */ | ||
10 | |||
11 | #include <linux/init.h> | ||
12 | #include <linux/platform_device.h> | ||
13 | #include <asm/io.h> | ||
14 | #include <asm/se7206.h> | ||
15 | #include <asm/machvec.h> | ||
16 | |||
17 | static struct resource smc91x_resources[] = { | ||
18 | [0] = { | ||
19 | .start = 0x300, | ||
20 | .end = 0x300 + 0x020 - 1, | ||
21 | .flags = IORESOURCE_MEM, | ||
22 | }, | ||
23 | [1] = { | ||
24 | .start = 64, | ||
25 | .end = 64, | ||
26 | .flags = IORESOURCE_IRQ, | ||
27 | }, | ||
28 | }; | ||
29 | |||
30 | static struct platform_device smc91x_device = { | ||
31 | .name = "smc91x", | ||
32 | .id = -1, | ||
33 | .num_resources = ARRAY_SIZE(smc91x_resources), | ||
34 | .resource = smc91x_resources, | ||
35 | }; | ||
36 | |||
37 | static int __init se7206_devices_setup(void) | ||
38 | { | ||
39 | return platform_device_register(&smc91x_device); | ||
40 | } | ||
41 | |||
42 | __initcall(se7206_devices_setup); | ||
43 | |||
44 | void heartbeat_se(void); | ||
45 | |||
46 | /* | ||
47 | * The Machine Vector | ||
48 | */ | ||
49 | |||
50 | struct sh_machine_vector mv_se __initmv = { | ||
51 | .mv_name = "SolutionEngine", | ||
52 | .mv_nr_irqs = 256, | ||
53 | .mv_inb = se7206_inb, | ||
54 | .mv_inw = se7206_inw, | ||
55 | .mv_inl = se7206_inl, | ||
56 | .mv_outb = se7206_outb, | ||
57 | .mv_outw = se7206_outw, | ||
58 | .mv_outl = se7206_outl, | ||
59 | |||
60 | .mv_inb_p = se7206_inb_p, | ||
61 | .mv_inw_p = se7206_inw, | ||
62 | .mv_inl_p = se7206_inl, | ||
63 | .mv_outb_p = se7206_outb_p, | ||
64 | .mv_outw_p = se7206_outw, | ||
65 | .mv_outl_p = se7206_outl, | ||
66 | |||
67 | .mv_insb = se7206_insb, | ||
68 | .mv_insw = se7206_insw, | ||
69 | .mv_insl = se7206_insl, | ||
70 | .mv_outsb = se7206_outsb, | ||
71 | .mv_outsw = se7206_outsw, | ||
72 | .mv_outsl = se7206_outsl, | ||
73 | |||
74 | .mv_init_irq = init_se7206_IRQ, | ||
75 | .mv_irq_demux = se7206_irq_demux, | ||
76 | #ifdef CONFIG_HEARTBEAT | ||
77 | .mv_heartbeat = heartbeat_se, | ||
78 | #endif | ||
79 | }; | ||
80 | ALIAS_MV(se) | ||