aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sh/boards/mach-se/7206/setup.c
diff options
context:
space:
mode:
authorPaul Mundt <lethal@linux-sh.org>2008-07-29 08:01:19 -0400
committerPaul Mundt <lethal@linux-sh.org>2008-07-29 08:01:19 -0400
commitda2014a2b080e7f3024a4eb6917d47069ad9620b (patch)
treecfde12c6d4b5baa222966b14a676f107992cf786 /arch/sh/boards/mach-se/7206/setup.c
parent71b8064e7df5698520d73b4c1566a3dbc98eb9ef (diff)
sh: Shuffle the board directories in to mach groups.
This flattens out the board directories in to individual mach groups, we will use this for getting rid of unneeded directories, simplifying the build system, and becoming more coherent with the refactored arch/sh/include topology. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch/sh/boards/mach-se/7206/setup.c')
-rw-r--r--arch/sh/boards/mach-se/7206/setup.c108
1 files changed, 108 insertions, 0 deletions
diff --git a/arch/sh/boards/mach-se/7206/setup.c b/arch/sh/boards/mach-se/7206/setup.c
new file mode 100644
index 000000000000..4fe84cc08406
--- /dev/null
+++ b/arch/sh/boards/mach-se/7206/setup.c
@@ -0,0 +1,108 @@
1/*
2 *
3 * linux/arch/sh/boards/se/7206/setup.c
4 *
5 * Copyright (C) 2006 Yoshinori Sato
6 * Copyright (C) 2007 - 2008 Paul Mundt
7 *
8 * Hitachi 7206 SolutionEngine Support.
9 */
10#include <linux/init.h>
11#include <linux/platform_device.h>
12#include <linux/smc91x.h>
13#include <asm/se7206.h>
14#include <asm/io.h>
15#include <asm/machvec.h>
16#include <asm/heartbeat.h>
17
18static struct resource smc91x_resources[] = {
19 [0] = {
20 .name = "smc91x-regs",
21 .start = PA_SMSC + 0x300,
22 .end = PA_SMSC + 0x300 + 0x020 - 1,
23 .flags = IORESOURCE_MEM,
24 },
25 [1] = {
26 .start = 64,
27 .end = 64,
28 .flags = IORESOURCE_IRQ,
29 },
30};
31
32static struct smc91x_platdata smc91x_info = {
33 .flags = SMC91X_USE_16BIT,
34};
35
36static struct platform_device smc91x_device = {
37 .name = "smc91x",
38 .id = -1,
39 .dev = {
40 .dma_mask = NULL,
41 .coherent_dma_mask = 0xffffffff,
42 .platform_data = &smc91x_info,
43 },
44 .num_resources = ARRAY_SIZE(smc91x_resources),
45 .resource = smc91x_resources,
46};
47
48static unsigned char heartbeat_bit_pos[] = { 8, 9, 10, 11, 12, 13, 14, 15 };
49
50static struct heartbeat_data heartbeat_data = {
51 .bit_pos = heartbeat_bit_pos,
52 .nr_bits = ARRAY_SIZE(heartbeat_bit_pos),
53 .regsize = 32,
54};
55
56static struct resource heartbeat_resources[] = {
57 [0] = {
58 .start = PA_LED,
59 .end = PA_LED,
60 .flags = IORESOURCE_MEM,
61 },
62};
63
64static struct platform_device heartbeat_device = {
65 .name = "heartbeat",
66 .id = -1,
67 .dev = {
68 .platform_data = &heartbeat_data,
69 },
70 .num_resources = ARRAY_SIZE(heartbeat_resources),
71 .resource = heartbeat_resources,
72};
73
74static struct platform_device *se7206_devices[] __initdata = {
75 &smc91x_device,
76 &heartbeat_device,
77};
78
79static int __init se7206_devices_setup(void)
80{
81 return platform_add_devices(se7206_devices, ARRAY_SIZE(se7206_devices));
82}
83__initcall(se7206_devices_setup);
84
85/*
86 * The Machine Vector
87 */
88
89static struct sh_machine_vector mv_se __initmv = {
90 .mv_name = "SolutionEngine",
91 .mv_nr_irqs = 256,
92 .mv_inb = se7206_inb,
93 .mv_inw = se7206_inw,
94 .mv_outb = se7206_outb,
95 .mv_outw = se7206_outw,
96
97 .mv_inb_p = se7206_inb_p,
98 .mv_inw_p = se7206_inw,
99 .mv_outb_p = se7206_outb_p,
100 .mv_outw_p = se7206_outw,
101
102 .mv_insb = se7206_insb,
103 .mv_insw = se7206_insw,
104 .mv_outsb = se7206_outsb,
105 .mv_outsw = se7206_outsw,
106
107 .mv_init_irq = init_se7206_IRQ,
108};