diff options
author | Magnus Damm <damm@opensource.se> | 2009-12-14 07:30:05 -0500 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2009-12-14 22:06:32 -0500 |
commit | 44658dfb660c4744b862571a3d8e1dae65e8b75a (patch) | |
tree | 0123bb959e8c96d9a49bc3cc7acc5f2293c964a5 /arch/sh/kernel/cpu/sh3/setup-sh7705.c | |
parent | be091d20efe7b045ca02bdf91c63c72d91f5899d (diff) |
sh: sh3 scif pdata (sh7705/sh770x/sh7710/sh7720)
This patch breaks out the sh3 scif serial port platform
data from a shared platform device to one platform
device per port. Also, add serial ports to the list of
early platform devices.
Signed-off-by: Magnus Damm <damm@opensource.se>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch/sh/kernel/cpu/sh3/setup-sh7705.c')
-rw-r--r-- | arch/sh/kernel/cpu/sh3/setup-sh7705.c | 49 |
1 files changed, 29 insertions, 20 deletions
diff --git a/arch/sh/kernel/cpu/sh3/setup-sh7705.c b/arch/sh/kernel/cpu/sh3/setup-sh7705.c index c23105983878..7b892d60e3a0 100644 --- a/arch/sh/kernel/cpu/sh3/setup-sh7705.c +++ b/arch/sh/kernel/cpu/sh3/setup-sh7705.c | |||
@@ -67,27 +67,33 @@ static struct intc_prio_reg prio_registers[] __initdata = { | |||
67 | static DECLARE_INTC_DESC(intc_desc, "sh7705", vectors, NULL, | 67 | static DECLARE_INTC_DESC(intc_desc, "sh7705", vectors, NULL, |
68 | NULL, prio_registers, NULL); | 68 | NULL, prio_registers, NULL); |
69 | 69 | ||
70 | static struct plat_sci_port sci_platform_data[] = { | 70 | static struct plat_sci_port scif0_platform_data = { |
71 | { | 71 | .mapbase = 0xa4410000, |
72 | .mapbase = 0xa4410000, | 72 | .flags = UPF_BOOT_AUTOCONF, |
73 | .flags = UPF_BOOT_AUTOCONF, | 73 | .type = PORT_SCIF, |
74 | .type = PORT_SCIF, | 74 | .irqs = { 56, 56, 56 }, |
75 | .irqs = { 56, 56, 56 }, | 75 | }; |
76 | }, { | 76 | |
77 | .mapbase = 0xa4400000, | 77 | static struct platform_device scif0_device = { |
78 | .flags = UPF_BOOT_AUTOCONF, | ||
79 | .type = PORT_SCIF, | ||
80 | .irqs = { 52, 52, 52 }, | ||
81 | }, { | ||
82 | .flags = 0, | ||
83 | } | ||
84 | }; | ||
85 | |||
86 | static struct platform_device sci_device = { | ||
87 | .name = "sh-sci", | 78 | .name = "sh-sci", |
88 | .id = -1, | 79 | .id = 0, |
80 | .dev = { | ||
81 | .platform_data = &scif0_platform_data, | ||
82 | }, | ||
83 | }; | ||
84 | |||
85 | static struct plat_sci_port scif1_platform_data = { | ||
86 | .mapbase = 0xa4400000, | ||
87 | .flags = UPF_BOOT_AUTOCONF, | ||
88 | .type = PORT_SCIF, | ||
89 | .irqs = { 52, 52, 52 }, | ||
90 | }; | ||
91 | |||
92 | static struct platform_device scif1_device = { | ||
93 | .name = "sh-sci", | ||
94 | .id = 1, | ||
89 | .dev = { | 95 | .dev = { |
90 | .platform_data = sci_platform_data, | 96 | .platform_data = &scif1_platform_data, |
91 | }, | 97 | }, |
92 | }; | 98 | }; |
93 | 99 | ||
@@ -210,10 +216,11 @@ static struct platform_device tmu2_device = { | |||
210 | }; | 216 | }; |
211 | 217 | ||
212 | static struct platform_device *sh7705_devices[] __initdata = { | 218 | static struct platform_device *sh7705_devices[] __initdata = { |
219 | &scif0_device, | ||
220 | &scif1_device, | ||
213 | &tmu0_device, | 221 | &tmu0_device, |
214 | &tmu1_device, | 222 | &tmu1_device, |
215 | &tmu2_device, | 223 | &tmu2_device, |
216 | &sci_device, | ||
217 | &rtc_device, | 224 | &rtc_device, |
218 | }; | 225 | }; |
219 | 226 | ||
@@ -225,6 +232,8 @@ static int __init sh7705_devices_setup(void) | |||
225 | arch_initcall(sh7705_devices_setup); | 232 | arch_initcall(sh7705_devices_setup); |
226 | 233 | ||
227 | static struct platform_device *sh7705_early_devices[] __initdata = { | 234 | static struct platform_device *sh7705_early_devices[] __initdata = { |
235 | &scif0_device, | ||
236 | &scif1_device, | ||
228 | &tmu0_device, | 237 | &tmu0_device, |
229 | &tmu1_device, | 238 | &tmu1_device, |
230 | &tmu2_device, | 239 | &tmu2_device, |