aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sh/boards/mach-sh03/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-sh03/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-sh03/setup.c')
-rw-r--r--arch/sh/boards/mach-sh03/setup.c75
1 files changed, 75 insertions, 0 deletions
diff --git a/arch/sh/boards/mach-sh03/setup.c b/arch/sh/boards/mach-sh03/setup.c
new file mode 100644
index 000000000000..cd9cff1ed349
--- /dev/null
+++ b/arch/sh/boards/mach-sh03/setup.c
@@ -0,0 +1,75 @@
1/*
2 * linux/arch/sh/boards/sh03/setup.c
3 *
4 * Copyright (C) 2004 Interface Co.,Ltd. Saito.K
5 *
6 */
7
8#include <linux/init.h>
9#include <linux/irq.h>
10#include <linux/pci.h>
11#include <linux/platform_device.h>
12#include <asm/io.h>
13#include <asm/rtc.h>
14#include <mach/io.h>
15#include <mach/sh03.h>
16#include <asm/addrspace.h>
17
18static void __init init_sh03_IRQ(void)
19{
20 plat_irq_setup_pins(IRQ_MODE_IRQ);
21}
22
23extern void *cf_io_base;
24
25static void __iomem *sh03_ioport_map(unsigned long port, unsigned int size)
26{
27 if (PXSEG(port))
28 return (void __iomem *)port;
29 /* CompactFlash (IDE) */
30 if (((port >= 0x1f0) && (port <= 0x1f7)) || (port == 0x3f6))
31 return (void __iomem *)((unsigned long)cf_io_base + port);
32
33 return (void __iomem *)(port + PCI_IO_BASE);
34}
35
36/* arch/sh/boards/sh03/rtc.c */
37void sh03_time_init(void);
38
39static void __init sh03_setup(char **cmdline_p)
40{
41 board_time_init = sh03_time_init;
42}
43
44static struct resource heartbeat_resources[] = {
45 [0] = {
46 .start = 0xa0800000,
47 .end = 0xa0800000,
48 .flags = IORESOURCE_MEM,
49 },
50};
51
52static struct platform_device heartbeat_device = {
53 .name = "heartbeat",
54 .id = -1,
55 .num_resources = ARRAY_SIZE(heartbeat_resources),
56 .resource = heartbeat_resources,
57};
58
59static struct platform_device *sh03_devices[] __initdata = {
60 &heartbeat_device,
61};
62
63static int __init sh03_devices_setup(void)
64{
65 return platform_add_devices(sh03_devices, ARRAY_SIZE(sh03_devices));
66}
67__initcall(sh03_devices_setup);
68
69static struct sh_machine_vector mv_sh03 __initmv = {
70 .mv_name = "Interface (CTP/PCI-SH03)",
71 .mv_setup = sh03_setup,
72 .mv_nr_irqs = 48,
73 .mv_ioport_map = sh03_ioport_map,
74 .mv_init_irq = init_sh03_IRQ,
75};