diff options
author | Magnus Damm <damm@igel.co.jp> | 2009-05-12 05:48:21 -0400 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2009-05-12 06:37:39 -0400 |
commit | f2710ebcd0a0404ccca3bbad68fd3639fe87ba6f (patch) | |
tree | b626e44470229f2943b3b7254522499afb53a649 | |
parent | e37677a429a67cb45004b060ea3376e500bc73c4 (diff) |
sh: TMU platform data for sh7366
This patch adds TMU platform data for sh7366. Both clockevent
and clocksource support is enabled.
Signed-off-by: Magnus Damm <damm@igel.co.jp>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
-rw-r--r-- | arch/sh/kernel/cpu/sh4a/setup-sh7366.c | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/arch/sh/kernel/cpu/sh4a/setup-sh7366.c b/arch/sh/kernel/cpu/sh4a/setup-sh7366.c index d4a994be4a7d..04de0fa85120 100644 --- a/arch/sh/kernel/cpu/sh4a/setup-sh7366.c +++ b/arch/sh/kernel/cpu/sh4a/setup-sh7366.c | |||
@@ -180,6 +180,98 @@ static struct platform_device cmt_device = { | |||
180 | .num_resources = ARRAY_SIZE(cmt_resources), | 180 | .num_resources = ARRAY_SIZE(cmt_resources), |
181 | }; | 181 | }; |
182 | 182 | ||
183 | static struct sh_timer_config tmu0_platform_data = { | ||
184 | .name = "TMU0", | ||
185 | .channel_offset = 0x04, | ||
186 | .timer_bit = 0, | ||
187 | .clk = "tmu0", | ||
188 | .clockevent_rating = 200, | ||
189 | }; | ||
190 | |||
191 | static struct resource tmu0_resources[] = { | ||
192 | [0] = { | ||
193 | .name = "TMU0", | ||
194 | .start = 0xffd80008, | ||
195 | .end = 0xffd80013, | ||
196 | .flags = IORESOURCE_MEM, | ||
197 | }, | ||
198 | [1] = { | ||
199 | .start = 16, | ||
200 | .flags = IORESOURCE_IRQ, | ||
201 | }, | ||
202 | }; | ||
203 | |||
204 | static struct platform_device tmu0_device = { | ||
205 | .name = "sh_tmu", | ||
206 | .id = 0, | ||
207 | .dev = { | ||
208 | .platform_data = &tmu0_platform_data, | ||
209 | }, | ||
210 | .resource = tmu0_resources, | ||
211 | .num_resources = ARRAY_SIZE(tmu0_resources), | ||
212 | }; | ||
213 | |||
214 | static struct sh_timer_config tmu1_platform_data = { | ||
215 | .name = "TMU1", | ||
216 | .channel_offset = 0x10, | ||
217 | .timer_bit = 1, | ||
218 | .clk = "tmu0", | ||
219 | .clocksource_rating = 200, | ||
220 | }; | ||
221 | |||
222 | static struct resource tmu1_resources[] = { | ||
223 | [0] = { | ||
224 | .name = "TMU1", | ||
225 | .start = 0xffd80014, | ||
226 | .end = 0xffd8001f, | ||
227 | .flags = IORESOURCE_MEM, | ||
228 | }, | ||
229 | [1] = { | ||
230 | .start = 17, | ||
231 | .flags = IORESOURCE_IRQ, | ||
232 | }, | ||
233 | }; | ||
234 | |||
235 | static struct platform_device tmu1_device = { | ||
236 | .name = "sh_tmu", | ||
237 | .id = 1, | ||
238 | .dev = { | ||
239 | .platform_data = &tmu1_platform_data, | ||
240 | }, | ||
241 | .resource = tmu1_resources, | ||
242 | .num_resources = ARRAY_SIZE(tmu1_resources), | ||
243 | }; | ||
244 | |||
245 | static struct sh_timer_config tmu2_platform_data = { | ||
246 | .name = "TMU2", | ||
247 | .channel_offset = 0x1c, | ||
248 | .timer_bit = 2, | ||
249 | .clk = "tmu0", | ||
250 | }; | ||
251 | |||
252 | static struct resource tmu2_resources[] = { | ||
253 | [0] = { | ||
254 | .name = "TMU2", | ||
255 | .start = 0xffd80020, | ||
256 | .end = 0xffd8002b, | ||
257 | .flags = IORESOURCE_MEM, | ||
258 | }, | ||
259 | [1] = { | ||
260 | .start = 18, | ||
261 | .flags = IORESOURCE_IRQ, | ||
262 | }, | ||
263 | }; | ||
264 | |||
265 | static struct platform_device tmu2_device = { | ||
266 | .name = "sh_tmu", | ||
267 | .id = 2, | ||
268 | .dev = { | ||
269 | .platform_data = &tmu2_platform_data, | ||
270 | }, | ||
271 | .resource = tmu2_resources, | ||
272 | .num_resources = ARRAY_SIZE(tmu2_resources), | ||
273 | }; | ||
274 | |||
183 | static struct plat_sci_port sci_platform_data[] = { | 275 | static struct plat_sci_port sci_platform_data[] = { |
184 | { | 276 | { |
185 | .mapbase = 0xffe00000, | 277 | .mapbase = 0xffe00000, |
@@ -202,6 +294,9 @@ static struct platform_device sci_device = { | |||
202 | 294 | ||
203 | static struct platform_device *sh7366_devices[] __initdata = { | 295 | static struct platform_device *sh7366_devices[] __initdata = { |
204 | &cmt_device, | 296 | &cmt_device, |
297 | &tmu0_device, | ||
298 | &tmu1_device, | ||
299 | &tmu2_device, | ||
205 | &iic_device, | 300 | &iic_device, |
206 | &sci_device, | 301 | &sci_device, |
207 | &usb_host_device, | 302 | &usb_host_device, |
@@ -229,6 +324,9 @@ __initcall(sh7366_devices_setup); | |||
229 | 324 | ||
230 | static struct platform_device *sh7366_early_devices[] __initdata = { | 325 | static struct platform_device *sh7366_early_devices[] __initdata = { |
231 | &cmt_device, | 326 | &cmt_device, |
327 | &tmu0_device, | ||
328 | &tmu1_device, | ||
329 | &tmu2_device, | ||
232 | }; | 330 | }; |
233 | 331 | ||
234 | void __init plat_early_device_setup(void) | 332 | void __init plat_early_device_setup(void) |