diff options
author | Arnd Bergmann <arnd@arndb.de> | 2009-06-12 03:53:47 -0400 |
---|---|---|
committer | Arnd Bergmann <arnd@arndb.de> | 2009-06-12 05:32:58 -0400 |
commit | 5b02ee3d219f9e01b6e9146e25613822cfc2e5ce (patch) | |
tree | 7ce9126738c3cf4b37d67170d0e4b34818c057a9 /arch/sh/kernel/cpu/sh3/setup-sh770x.c | |
parent | 26a28fa4fea5b8c65713aa50c124f76a88c7924d (diff) | |
parent | 8ebf975608aaebd7feb33d77f07ba21a6380e086 (diff) |
asm-generic: merge branch 'master' of torvalds/linux-2.6
Fixes a merge conflict against the x86 tree caused by a fix to
atomic.h which I renamed to atomic_long.h.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Diffstat (limited to 'arch/sh/kernel/cpu/sh3/setup-sh770x.c')
-rw-r--r-- | arch/sh/kernel/cpu/sh3/setup-sh770x.c | 108 |
1 files changed, 108 insertions, 0 deletions
diff --git a/arch/sh/kernel/cpu/sh3/setup-sh770x.c b/arch/sh/kernel/cpu/sh3/setup-sh770x.c index a74f960b5e79..c56306798584 100644 --- a/arch/sh/kernel/cpu/sh3/setup-sh770x.c +++ b/arch/sh/kernel/cpu/sh3/setup-sh770x.c | |||
@@ -18,6 +18,7 @@ | |||
18 | #include <linux/platform_device.h> | 18 | #include <linux/platform_device.h> |
19 | #include <linux/serial.h> | 19 | #include <linux/serial.h> |
20 | #include <linux/serial_sci.h> | 20 | #include <linux/serial_sci.h> |
21 | #include <linux/sh_timer.h> | ||
21 | 22 | ||
22 | enum { | 23 | enum { |
23 | UNUSED = 0, | 24 | UNUSED = 0, |
@@ -144,7 +145,102 @@ static struct platform_device sci_device = { | |||
144 | }, | 145 | }, |
145 | }; | 146 | }; |
146 | 147 | ||
148 | static struct sh_timer_config tmu0_platform_data = { | ||
149 | .name = "TMU0", | ||
150 | .channel_offset = 0x02, | ||
151 | .timer_bit = 0, | ||
152 | .clk = "peripheral_clk", | ||
153 | .clockevent_rating = 200, | ||
154 | }; | ||
155 | |||
156 | static struct resource tmu0_resources[] = { | ||
157 | [0] = { | ||
158 | .name = "TMU0", | ||
159 | .start = 0xfffffe94, | ||
160 | .end = 0xfffffe9f, | ||
161 | .flags = IORESOURCE_MEM, | ||
162 | }, | ||
163 | [1] = { | ||
164 | .start = 16, | ||
165 | .flags = IORESOURCE_IRQ, | ||
166 | }, | ||
167 | }; | ||
168 | |||
169 | static struct platform_device tmu0_device = { | ||
170 | .name = "sh_tmu", | ||
171 | .id = 0, | ||
172 | .dev = { | ||
173 | .platform_data = &tmu0_platform_data, | ||
174 | }, | ||
175 | .resource = tmu0_resources, | ||
176 | .num_resources = ARRAY_SIZE(tmu0_resources), | ||
177 | }; | ||
178 | |||
179 | static struct sh_timer_config tmu1_platform_data = { | ||
180 | .name = "TMU1", | ||
181 | .channel_offset = 0xe, | ||
182 | .timer_bit = 1, | ||
183 | .clk = "peripheral_clk", | ||
184 | .clocksource_rating = 200, | ||
185 | }; | ||
186 | |||
187 | static struct resource tmu1_resources[] = { | ||
188 | [0] = { | ||
189 | .name = "TMU1", | ||
190 | .start = 0xfffffea0, | ||
191 | .end = 0xfffffeab, | ||
192 | .flags = IORESOURCE_MEM, | ||
193 | }, | ||
194 | [1] = { | ||
195 | .start = 17, | ||
196 | .flags = IORESOURCE_IRQ, | ||
197 | }, | ||
198 | }; | ||
199 | |||
200 | static struct platform_device tmu1_device = { | ||
201 | .name = "sh_tmu", | ||
202 | .id = 1, | ||
203 | .dev = { | ||
204 | .platform_data = &tmu1_platform_data, | ||
205 | }, | ||
206 | .resource = tmu1_resources, | ||
207 | .num_resources = ARRAY_SIZE(tmu1_resources), | ||
208 | }; | ||
209 | |||
210 | static struct sh_timer_config tmu2_platform_data = { | ||
211 | .name = "TMU2", | ||
212 | .channel_offset = 0x1a, | ||
213 | .timer_bit = 2, | ||
214 | .clk = "peripheral_clk", | ||
215 | }; | ||
216 | |||
217 | static struct resource tmu2_resources[] = { | ||
218 | [0] = { | ||
219 | .name = "TMU2", | ||
220 | .start = 0xfffffeac, | ||
221 | .end = 0xfffffebb, | ||
222 | .flags = IORESOURCE_MEM, | ||
223 | }, | ||
224 | [1] = { | ||
225 | .start = 18, | ||
226 | .flags = IORESOURCE_IRQ, | ||
227 | }, | ||
228 | }; | ||
229 | |||
230 | static struct platform_device tmu2_device = { | ||
231 | .name = "sh_tmu", | ||
232 | .id = 2, | ||
233 | .dev = { | ||
234 | .platform_data = &tmu2_platform_data, | ||
235 | }, | ||
236 | .resource = tmu2_resources, | ||
237 | .num_resources = ARRAY_SIZE(tmu2_resources), | ||
238 | }; | ||
239 | |||
147 | static struct platform_device *sh770x_devices[] __initdata = { | 240 | static struct platform_device *sh770x_devices[] __initdata = { |
241 | &tmu0_device, | ||
242 | &tmu1_device, | ||
243 | &tmu2_device, | ||
148 | &sci_device, | 244 | &sci_device, |
149 | &rtc_device, | 245 | &rtc_device, |
150 | }; | 246 | }; |
@@ -156,6 +252,18 @@ static int __init sh770x_devices_setup(void) | |||
156 | } | 252 | } |
157 | __initcall(sh770x_devices_setup); | 253 | __initcall(sh770x_devices_setup); |
158 | 254 | ||
255 | static struct platform_device *sh770x_early_devices[] __initdata = { | ||
256 | &tmu0_device, | ||
257 | &tmu1_device, | ||
258 | &tmu2_device, | ||
259 | }; | ||
260 | |||
261 | void __init plat_early_device_setup(void) | ||
262 | { | ||
263 | early_platform_add_devices(sh770x_early_devices, | ||
264 | ARRAY_SIZE(sh770x_early_devices)); | ||
265 | } | ||
266 | |||
159 | void __init plat_irq_setup(void) | 267 | void __init plat_irq_setup(void) |
160 | { | 268 | { |
161 | register_intc_controller(&intc_desc); | 269 | register_intc_controller(&intc_desc); |