diff options
Diffstat (limited to 'arch/arm/mach-s3c24xx/mach-otom.c')
-rw-r--r-- | arch/arm/mach-s3c24xx/mach-otom.c | 127 |
1 files changed, 127 insertions, 0 deletions
diff --git a/arch/arm/mach-s3c24xx/mach-otom.c b/arch/arm/mach-s3c24xx/mach-otom.c new file mode 100644 index 000000000000..5f1e0eeb38a9 --- /dev/null +++ b/arch/arm/mach-s3c24xx/mach-otom.c | |||
@@ -0,0 +1,127 @@ | |||
1 | /* linux/arch/arm/mach-s3c2410/mach-otom.c | ||
2 | * | ||
3 | * Copyright (c) 2004 Nex Vision | ||
4 | * Guillaume GOURAT <guillaume.gourat@nexvision.fr> | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU General Public License version 2 as | ||
8 | * published by the Free Software Foundation. | ||
9 | * | ||
10 | */ | ||
11 | |||
12 | #include <linux/kernel.h> | ||
13 | #include <linux/types.h> | ||
14 | #include <linux/interrupt.h> | ||
15 | #include <linux/list.h> | ||
16 | #include <linux/timer.h> | ||
17 | #include <linux/init.h> | ||
18 | #include <linux/serial_core.h> | ||
19 | #include <linux/platform_device.h> | ||
20 | #include <linux/io.h> | ||
21 | |||
22 | #include <asm/mach/arch.h> | ||
23 | #include <asm/mach/map.h> | ||
24 | #include <asm/mach/irq.h> | ||
25 | |||
26 | #include <mach/otom-map.h> | ||
27 | |||
28 | #include <mach/hardware.h> | ||
29 | #include <asm/irq.h> | ||
30 | #include <asm/mach-types.h> | ||
31 | |||
32 | #include <plat/regs-serial.h> | ||
33 | #include <mach/regs-gpio.h> | ||
34 | |||
35 | #include <plat/s3c2410.h> | ||
36 | #include <plat/clock.h> | ||
37 | #include <plat/devs.h> | ||
38 | #include <plat/iic.h> | ||
39 | #include <plat/cpu.h> | ||
40 | |||
41 | #include "common.h" | ||
42 | |||
43 | static struct map_desc otom11_iodesc[] __initdata = { | ||
44 | /* Device area */ | ||
45 | { (u32)OTOM_VA_CS8900A_BASE, OTOM_PA_CS8900A_BASE, SZ_16M, MT_DEVICE }, | ||
46 | }; | ||
47 | |||
48 | #define UCON S3C2410_UCON_DEFAULT | ||
49 | #define ULCON S3C2410_LCON_CS8 | S3C2410_LCON_PNONE | S3C2410_LCON_STOPB | ||
50 | #define UFCON S3C2410_UFCON_RXTRIG12 | S3C2410_UFCON_FIFOMODE | ||
51 | |||
52 | static struct s3c2410_uartcfg otom11_uartcfgs[] __initdata = { | ||
53 | [0] = { | ||
54 | .hwport = 0, | ||
55 | .flags = 0, | ||
56 | .ucon = UCON, | ||
57 | .ulcon = ULCON, | ||
58 | .ufcon = UFCON, | ||
59 | }, | ||
60 | [1] = { | ||
61 | .hwport = 1, | ||
62 | .flags = 0, | ||
63 | .ucon = UCON, | ||
64 | .ulcon = ULCON, | ||
65 | .ufcon = UFCON, | ||
66 | }, | ||
67 | /* port 2 is not actually used */ | ||
68 | [2] = { | ||
69 | .hwport = 2, | ||
70 | .flags = 0, | ||
71 | .ucon = UCON, | ||
72 | .ulcon = ULCON, | ||
73 | .ufcon = UFCON, | ||
74 | } | ||
75 | }; | ||
76 | |||
77 | /* NOR Flash on NexVision OTOM board */ | ||
78 | |||
79 | static struct resource otom_nor_resource[] = { | ||
80 | [0] = { | ||
81 | .start = S3C2410_CS0, | ||
82 | .end = S3C2410_CS0 + (4*1024*1024) - 1, | ||
83 | .flags = IORESOURCE_MEM, | ||
84 | } | ||
85 | }; | ||
86 | |||
87 | static struct platform_device otom_device_nor = { | ||
88 | .name = "mtd-flash", | ||
89 | .id = -1, | ||
90 | .num_resources = ARRAY_SIZE(otom_nor_resource), | ||
91 | .resource = otom_nor_resource, | ||
92 | }; | ||
93 | |||
94 | /* Standard OTOM devices */ | ||
95 | |||
96 | static struct platform_device *otom11_devices[] __initdata = { | ||
97 | &s3c_device_ohci, | ||
98 | &s3c_device_lcd, | ||
99 | &s3c_device_wdt, | ||
100 | &s3c_device_i2c0, | ||
101 | &s3c_device_iis, | ||
102 | &s3c_device_rtc, | ||
103 | &otom_device_nor, | ||
104 | }; | ||
105 | |||
106 | static void __init otom11_map_io(void) | ||
107 | { | ||
108 | s3c24xx_init_io(otom11_iodesc, ARRAY_SIZE(otom11_iodesc)); | ||
109 | s3c24xx_init_clocks(0); | ||
110 | s3c24xx_init_uarts(otom11_uartcfgs, ARRAY_SIZE(otom11_uartcfgs)); | ||
111 | } | ||
112 | |||
113 | static void __init otom11_init(void) | ||
114 | { | ||
115 | s3c_i2c0_set_platdata(NULL); | ||
116 | platform_add_devices(otom11_devices, ARRAY_SIZE(otom11_devices)); | ||
117 | } | ||
118 | |||
119 | MACHINE_START(OTOM, "Nex Vision - Otom 1.1") | ||
120 | /* Maintainer: Guillaume GOURAT <guillaume.gourat@nexvision.tv> */ | ||
121 | .atag_offset = 0x100, | ||
122 | .map_io = otom11_map_io, | ||
123 | .init_machine = otom11_init, | ||
124 | .init_irq = s3c24xx_init_irq, | ||
125 | .timer = &s3c24xx_timer, | ||
126 | .restart = s3c2410_restart, | ||
127 | MACHINE_END | ||