]>
Commit | Line | Data |
---|---|---|
bc8fb5d0 PM |
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) |