diff options
Diffstat (limited to 'arch/arm/mach-shmobile/setup-sh7372.c')
-rw-r--r-- | arch/arm/mach-shmobile/setup-sh7372.c | 94 |
1 files changed, 81 insertions, 13 deletions
diff --git a/arch/arm/mach-shmobile/setup-sh7372.c b/arch/arm/mach-shmobile/setup-sh7372.c index e26686c9d0b6..564a6d0be473 100644 --- a/arch/arm/mach-shmobile/setup-sh7372.c +++ b/arch/arm/mach-shmobile/setup-sh7372.c | |||
@@ -158,7 +158,6 @@ static struct sh_timer_config cmt10_platform_data = { | |||
158 | .name = "CMT10", | 158 | .name = "CMT10", |
159 | .channel_offset = 0x10, | 159 | .channel_offset = 0x10, |
160 | .timer_bit = 0, | 160 | .timer_bit = 0, |
161 | .clk = "cmt1", | ||
162 | .clockevent_rating = 125, | 161 | .clockevent_rating = 125, |
163 | .clocksource_rating = 125, | 162 | .clocksource_rating = 125, |
164 | }; | 163 | }; |
@@ -186,6 +185,67 @@ static struct platform_device cmt10_device = { | |||
186 | .num_resources = ARRAY_SIZE(cmt10_resources), | 185 | .num_resources = ARRAY_SIZE(cmt10_resources), |
187 | }; | 186 | }; |
188 | 187 | ||
188 | /* TMU */ | ||
189 | static struct sh_timer_config tmu00_platform_data = { | ||
190 | .name = "TMU00", | ||
191 | .channel_offset = 0x4, | ||
192 | .timer_bit = 0, | ||
193 | .clockevent_rating = 200, | ||
194 | }; | ||
195 | |||
196 | static struct resource tmu00_resources[] = { | ||
197 | [0] = { | ||
198 | .name = "TMU00", | ||
199 | .start = 0xfff60008, | ||
200 | .end = 0xfff60013, | ||
201 | .flags = IORESOURCE_MEM, | ||
202 | }, | ||
203 | [1] = { | ||
204 | .start = intcs_evt2irq(0xe80), /* TMU_TUNI0 */ | ||
205 | .flags = IORESOURCE_IRQ, | ||
206 | }, | ||
207 | }; | ||
208 | |||
209 | static struct platform_device tmu00_device = { | ||
210 | .name = "sh_tmu", | ||
211 | .id = 0, | ||
212 | .dev = { | ||
213 | .platform_data = &tmu00_platform_data, | ||
214 | }, | ||
215 | .resource = tmu00_resources, | ||
216 | .num_resources = ARRAY_SIZE(tmu00_resources), | ||
217 | }; | ||
218 | |||
219 | static struct sh_timer_config tmu01_platform_data = { | ||
220 | .name = "TMU01", | ||
221 | .channel_offset = 0x10, | ||
222 | .timer_bit = 1, | ||
223 | .clocksource_rating = 200, | ||
224 | }; | ||
225 | |||
226 | static struct resource tmu01_resources[] = { | ||
227 | [0] = { | ||
228 | .name = "TMU01", | ||
229 | .start = 0xfff60014, | ||
230 | .end = 0xfff6001f, | ||
231 | .flags = IORESOURCE_MEM, | ||
232 | }, | ||
233 | [1] = { | ||
234 | .start = intcs_evt2irq(0xea0), /* TMU_TUNI1 */ | ||
235 | .flags = IORESOURCE_IRQ, | ||
236 | }, | ||
237 | }; | ||
238 | |||
239 | static struct platform_device tmu01_device = { | ||
240 | .name = "sh_tmu", | ||
241 | .id = 1, | ||
242 | .dev = { | ||
243 | .platform_data = &tmu01_platform_data, | ||
244 | }, | ||
245 | .resource = tmu01_resources, | ||
246 | .num_resources = ARRAY_SIZE(tmu01_resources), | ||
247 | }; | ||
248 | |||
189 | /* I2C */ | 249 | /* I2C */ |
190 | static struct resource iic0_resources[] = { | 250 | static struct resource iic0_resources[] = { |
191 | [0] = { | 251 | [0] = { |
@@ -419,14 +479,14 @@ static struct resource sh7372_dmae0_resources[] = { | |||
419 | }, | 479 | }, |
420 | { | 480 | { |
421 | /* DMA error IRQ */ | 481 | /* DMA error IRQ */ |
422 | .start = 246, | 482 | .start = evt2irq(0x20c0), |
423 | .end = 246, | 483 | .end = evt2irq(0x20c0), |
424 | .flags = IORESOURCE_IRQ, | 484 | .flags = IORESOURCE_IRQ, |
425 | }, | 485 | }, |
426 | { | 486 | { |
427 | /* IRQ for channels 0-5 */ | 487 | /* IRQ for channels 0-5 */ |
428 | .start = 240, | 488 | .start = evt2irq(0x2000), |
429 | .end = 245, | 489 | .end = evt2irq(0x20a0), |
430 | .flags = IORESOURCE_IRQ, | 490 | .flags = IORESOURCE_IRQ, |
431 | }, | 491 | }, |
432 | }; | 492 | }; |
@@ -447,14 +507,14 @@ static struct resource sh7372_dmae1_resources[] = { | |||
447 | }, | 507 | }, |
448 | { | 508 | { |
449 | /* DMA error IRQ */ | 509 | /* DMA error IRQ */ |
450 | .start = 254, | 510 | .start = evt2irq(0x21c0), |
451 | .end = 254, | 511 | .end = evt2irq(0x21c0), |
452 | .flags = IORESOURCE_IRQ, | 512 | .flags = IORESOURCE_IRQ, |
453 | }, | 513 | }, |
454 | { | 514 | { |
455 | /* IRQ for channels 0-5 */ | 515 | /* IRQ for channels 0-5 */ |
456 | .start = 248, | 516 | .start = evt2irq(0x2100), |
457 | .end = 253, | 517 | .end = evt2irq(0x21a0), |
458 | .flags = IORESOURCE_IRQ, | 518 | .flags = IORESOURCE_IRQ, |
459 | }, | 519 | }, |
460 | }; | 520 | }; |
@@ -475,14 +535,14 @@ static struct resource sh7372_dmae2_resources[] = { | |||
475 | }, | 535 | }, |
476 | { | 536 | { |
477 | /* DMA error IRQ */ | 537 | /* DMA error IRQ */ |
478 | .start = 262, | 538 | .start = evt2irq(0x22c0), |
479 | .end = 262, | 539 | .end = evt2irq(0x22c0), |
480 | .flags = IORESOURCE_IRQ, | 540 | .flags = IORESOURCE_IRQ, |
481 | }, | 541 | }, |
482 | { | 542 | { |
483 | /* IRQ for channels 0-5 */ | 543 | /* IRQ for channels 0-5 */ |
484 | .start = 256, | 544 | .start = evt2irq(0x2200), |
485 | .end = 261, | 545 | .end = evt2irq(0x22a0), |
486 | .flags = IORESOURCE_IRQ, | 546 | .flags = IORESOURCE_IRQ, |
487 | }, | 547 | }, |
488 | }; | 548 | }; |
@@ -526,6 +586,11 @@ static struct platform_device *sh7372_early_devices[] __initdata = { | |||
526 | &scif5_device, | 586 | &scif5_device, |
527 | &scif6_device, | 587 | &scif6_device, |
528 | &cmt10_device, | 588 | &cmt10_device, |
589 | &tmu00_device, | ||
590 | &tmu01_device, | ||
591 | }; | ||
592 | |||
593 | static struct platform_device *sh7372_late_devices[] __initdata = { | ||
529 | &iic0_device, | 594 | &iic0_device, |
530 | &iic1_device, | 595 | &iic1_device, |
531 | &dma0_device, | 596 | &dma0_device, |
@@ -537,6 +602,9 @@ void __init sh7372_add_standard_devices(void) | |||
537 | { | 602 | { |
538 | platform_add_devices(sh7372_early_devices, | 603 | platform_add_devices(sh7372_early_devices, |
539 | ARRAY_SIZE(sh7372_early_devices)); | 604 | ARRAY_SIZE(sh7372_early_devices)); |
605 | |||
606 | platform_add_devices(sh7372_late_devices, | ||
607 | ARRAY_SIZE(sh7372_late_devices)); | ||
540 | } | 608 | } |
541 | 609 | ||
542 | void __init sh7372_add_early_devices(void) | 610 | void __init sh7372_add_early_devices(void) |