diff options
Diffstat (limited to 'arch/sh/kernel/cpu/sh4a/setup-sh7723.c')
-rw-r--r-- | arch/sh/kernel/cpu/sh4a/setup-sh7723.c | 160 |
1 files changed, 109 insertions, 51 deletions
diff --git a/arch/sh/kernel/cpu/sh4a/setup-sh7723.c b/arch/sh/kernel/cpu/sh4a/setup-sh7723.c index 4caa5a7ca86e..772b9265d0e4 100644 --- a/arch/sh/kernel/cpu/sh4a/setup-sh7723.c +++ b/arch/sh/kernel/cpu/sh4a/setup-sh7723.c | |||
@@ -20,6 +20,103 @@ | |||
20 | #include <asm/mmzone.h> | 20 | #include <asm/mmzone.h> |
21 | #include <cpu/sh7723.h> | 21 | #include <cpu/sh7723.h> |
22 | 22 | ||
23 | /* Serial */ | ||
24 | static struct plat_sci_port scif0_platform_data = { | ||
25 | .mapbase = 0xffe00000, | ||
26 | .flags = UPF_BOOT_AUTOCONF, | ||
27 | .type = PORT_SCIF, | ||
28 | .irqs = { 80, 80, 80, 80 }, | ||
29 | .clk = "scif0", | ||
30 | }; | ||
31 | |||
32 | static struct platform_device scif0_device = { | ||
33 | .name = "sh-sci", | ||
34 | .id = 0, | ||
35 | .dev = { | ||
36 | .platform_data = &scif0_platform_data, | ||
37 | }, | ||
38 | }; | ||
39 | |||
40 | static struct plat_sci_port scif1_platform_data = { | ||
41 | .mapbase = 0xffe10000, | ||
42 | .flags = UPF_BOOT_AUTOCONF, | ||
43 | .type = PORT_SCIF, | ||
44 | .irqs = { 81, 81, 81, 81 }, | ||
45 | .clk = "scif1", | ||
46 | }; | ||
47 | |||
48 | static struct platform_device scif1_device = { | ||
49 | .name = "sh-sci", | ||
50 | .id = 1, | ||
51 | .dev = { | ||
52 | .platform_data = &scif1_platform_data, | ||
53 | }, | ||
54 | }; | ||
55 | |||
56 | static struct plat_sci_port scif2_platform_data = { | ||
57 | .mapbase = 0xffe20000, | ||
58 | .flags = UPF_BOOT_AUTOCONF, | ||
59 | .type = PORT_SCIF, | ||
60 | .irqs = { 82, 82, 82, 82 }, | ||
61 | .clk = "scif2", | ||
62 | }; | ||
63 | |||
64 | static struct platform_device scif2_device = { | ||
65 | .name = "sh-sci", | ||
66 | .id = 2, | ||
67 | .dev = { | ||
68 | .platform_data = &scif2_platform_data, | ||
69 | }, | ||
70 | }; | ||
71 | |||
72 | static struct plat_sci_port scif3_platform_data = { | ||
73 | .mapbase = 0xa4e30000, | ||
74 | .flags = UPF_BOOT_AUTOCONF, | ||
75 | .type = PORT_SCIFA, | ||
76 | .irqs = { 56, 56, 56, 56 }, | ||
77 | .clk = "scif3", | ||
78 | }; | ||
79 | |||
80 | static struct platform_device scif3_device = { | ||
81 | .name = "sh-sci", | ||
82 | .id = 3, | ||
83 | .dev = { | ||
84 | .platform_data = &scif3_platform_data, | ||
85 | }, | ||
86 | }; | ||
87 | |||
88 | static struct plat_sci_port scif4_platform_data = { | ||
89 | .mapbase = 0xa4e40000, | ||
90 | .flags = UPF_BOOT_AUTOCONF, | ||
91 | .type = PORT_SCIFA, | ||
92 | .irqs = { 88, 88, 88, 88 }, | ||
93 | .clk = "scif4", | ||
94 | }; | ||
95 | |||
96 | static struct platform_device scif4_device = { | ||
97 | .name = "sh-sci", | ||
98 | .id = 4, | ||
99 | .dev = { | ||
100 | .platform_data = &scif4_platform_data, | ||
101 | }, | ||
102 | }; | ||
103 | |||
104 | static struct plat_sci_port scif5_platform_data = { | ||
105 | .mapbase = 0xa4e50000, | ||
106 | .flags = UPF_BOOT_AUTOCONF, | ||
107 | .type = PORT_SCIFA, | ||
108 | .irqs = { 109, 109, 109, 109 }, | ||
109 | .clk = "scif5", | ||
110 | }; | ||
111 | |||
112 | static struct platform_device scif5_device = { | ||
113 | .name = "sh-sci", | ||
114 | .id = 5, | ||
115 | .dev = { | ||
116 | .platform_data = &scif5_platform_data, | ||
117 | }, | ||
118 | }; | ||
119 | |||
23 | static struct uio_info vpu_platform_data = { | 120 | static struct uio_info vpu_platform_data = { |
24 | .name = "VPU5", | 121 | .name = "VPU5", |
25 | .version = "0", | 122 | .version = "0", |
@@ -348,56 +445,6 @@ static struct platform_device tmu5_device = { | |||
348 | }, | 445 | }, |
349 | }; | 446 | }; |
350 | 447 | ||
351 | static struct plat_sci_port sci_platform_data[] = { | ||
352 | { | ||
353 | .mapbase = 0xffe00000, | ||
354 | .flags = UPF_BOOT_AUTOCONF, | ||
355 | .type = PORT_SCIF, | ||
356 | .irqs = { 80, 80, 80, 80 }, | ||
357 | .clk = "scif0", | ||
358 | },{ | ||
359 | .mapbase = 0xffe10000, | ||
360 | .flags = UPF_BOOT_AUTOCONF, | ||
361 | .type = PORT_SCIF, | ||
362 | .irqs = { 81, 81, 81, 81 }, | ||
363 | .clk = "scif1", | ||
364 | },{ | ||
365 | .mapbase = 0xffe20000, | ||
366 | .flags = UPF_BOOT_AUTOCONF, | ||
367 | .type = PORT_SCIF, | ||
368 | .irqs = { 82, 82, 82, 82 }, | ||
369 | .clk = "scif2", | ||
370 | },{ | ||
371 | .mapbase = 0xa4e30000, | ||
372 | .flags = UPF_BOOT_AUTOCONF, | ||
373 | .type = PORT_SCIFA, | ||
374 | .irqs = { 56, 56, 56, 56 }, | ||
375 | .clk = "scif3", | ||
376 | },{ | ||
377 | .mapbase = 0xa4e40000, | ||
378 | .flags = UPF_BOOT_AUTOCONF, | ||
379 | .type = PORT_SCIFA, | ||
380 | .irqs = { 88, 88, 88, 88 }, | ||
381 | .clk = "scif4", | ||
382 | },{ | ||
383 | .mapbase = 0xa4e50000, | ||
384 | .flags = UPF_BOOT_AUTOCONF, | ||
385 | .type = PORT_SCIFA, | ||
386 | .irqs = { 109, 109, 109, 109 }, | ||
387 | .clk = "scif5", | ||
388 | }, { | ||
389 | .flags = 0, | ||
390 | } | ||
391 | }; | ||
392 | |||
393 | static struct platform_device sci_device = { | ||
394 | .name = "sh-sci", | ||
395 | .id = -1, | ||
396 | .dev = { | ||
397 | .platform_data = sci_platform_data, | ||
398 | }, | ||
399 | }; | ||
400 | |||
401 | static struct resource rtc_resources[] = { | 448 | static struct resource rtc_resources[] = { |
402 | [0] = { | 449 | [0] = { |
403 | .start = 0xa465fec0, | 450 | .start = 0xa465fec0, |
@@ -488,6 +535,12 @@ static struct platform_device iic_device = { | |||
488 | }; | 535 | }; |
489 | 536 | ||
490 | static struct platform_device *sh7723_devices[] __initdata = { | 537 | static struct platform_device *sh7723_devices[] __initdata = { |
538 | &scif0_device, | ||
539 | &scif1_device, | ||
540 | &scif2_device, | ||
541 | &scif3_device, | ||
542 | &scif4_device, | ||
543 | &scif5_device, | ||
491 | &cmt_device, | 544 | &cmt_device, |
492 | &tmu0_device, | 545 | &tmu0_device, |
493 | &tmu1_device, | 546 | &tmu1_device, |
@@ -495,7 +548,6 @@ static struct platform_device *sh7723_devices[] __initdata = { | |||
495 | &tmu3_device, | 548 | &tmu3_device, |
496 | &tmu4_device, | 549 | &tmu4_device, |
497 | &tmu5_device, | 550 | &tmu5_device, |
498 | &sci_device, | ||
499 | &rtc_device, | 551 | &rtc_device, |
500 | &iic_device, | 552 | &iic_device, |
501 | &sh7723_usb_host_device, | 553 | &sh7723_usb_host_device, |
@@ -516,6 +568,12 @@ static int __init sh7723_devices_setup(void) | |||
516 | arch_initcall(sh7723_devices_setup); | 568 | arch_initcall(sh7723_devices_setup); |
517 | 569 | ||
518 | static struct platform_device *sh7723_early_devices[] __initdata = { | 570 | static struct platform_device *sh7723_early_devices[] __initdata = { |
571 | &scif0_device, | ||
572 | &scif1_device, | ||
573 | &scif2_device, | ||
574 | &scif3_device, | ||
575 | &scif4_device, | ||
576 | &scif5_device, | ||
519 | &cmt_device, | 577 | &cmt_device, |
520 | &tmu0_device, | 578 | &tmu0_device, |
521 | &tmu1_device, | 579 | &tmu1_device, |