Merge master.kernel.org:/pub/scm/linux/kernel/git/lethal/sh-2.6
[pandora-kernel.git] / arch / sh / boards / se / 7343 / setup.c
1 #include <linux/init.h>
2 #include <linux/platform_device.h>
3 #include <asm/machvec.h>
4 #include <asm/mach/se7343.h>
5 #include <asm/irq.h>
6
7 void heartbeat_7343se(void);
8 void init_7343se_IRQ(void);
9
10 static struct resource smc91x_resources[] = {
11         [0] = {
12                 .start  = 0x10000000,
13                 .end    = 0x1000000F,
14                 .flags  = IORESOURCE_MEM,
15         },
16         [1] = {
17                 /*
18                  * shared with other devices via externel
19                  * interrupt controller in FPGA...
20                  */
21                 .start  = EXT_IRQ2,
22                 .end    = EXT_IRQ2,
23                 .flags  = IORESOURCE_IRQ,
24         },
25 };
26
27 static struct platform_device smc91x_device = {
28         .name           = "smc91x",
29         .id             = 0,
30         .num_resources  = ARRAY_SIZE(smc91x_resources),
31         .resource       = smc91x_resources,
32 };
33
34 static struct platform_device *smc91x_platform_devices[] __initdata = {
35         &smc91x_device,
36 };
37
38 static int __init sh7343se_devices_setup(void)
39 {
40         return platform_add_devices(smc91x_platform_devices,
41                                     ARRAY_SIZE(smc91x_platform_devices));
42 }
43
44 static void __init sh7343se_setup(char **cmdline_p)
45 {
46         device_initcall(sh7343se_devices_setup);
47 }
48
49 /*
50  * The Machine Vector
51  */
52 struct sh_machine_vector mv_7343se __initmv = {
53         .mv_name = "SolutionEngine 7343",
54         .mv_setup = sh7343se_setup,
55         .mv_nr_irqs = 108,
56         .mv_inb = sh7343se_inb,
57         .mv_inw = sh7343se_inw,
58         .mv_inl = sh7343se_inl,
59         .mv_outb = sh7343se_outb,
60         .mv_outw = sh7343se_outw,
61         .mv_outl = sh7343se_outl,
62
63         .mv_inb_p = sh7343se_inb_p,
64         .mv_inw_p = sh7343se_inw,
65         .mv_inl_p = sh7343se_inl,
66         .mv_outb_p = sh7343se_outb_p,
67         .mv_outw_p = sh7343se_outw,
68         .mv_outl_p = sh7343se_outl,
69
70         .mv_insb = sh7343se_insb,
71         .mv_insw = sh7343se_insw,
72         .mv_insl = sh7343se_insl,
73         .mv_outsb = sh7343se_outsb,
74         .mv_outsw = sh7343se_outsw,
75         .mv_outsl = sh7343se_outsl,
76
77         .mv_init_irq = init_7343se_IRQ,
78         .mv_irq_demux = shmse_irq_demux,
79 #ifdef CONFIG_HEARTBEAT
80         .mv_heartbeat = heartbeat_7343se,
81 #endif
82 };
83 ALIAS_MV(7343se)