aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBen Dooks <ben-linux@fluff.org>2008-11-04 10:29:09 -0500
committerBen Dooks <ben-linux@fluff.org>2008-12-18 11:26:16 -0500
commitdbf35992e17334f9ae8b2ea35e795d0c264e57ef (patch)
tree6af4f6534787dfbaba03046aa07177639240126c
parentbdd4915a9f05ef6b41b51910b199f2668f20d2ef (diff)
[ARM] S3C24XX: Add fourth UART definition for S3C2443
Add the fourth UART definition for the S3C2443, and at the same time fixup the problems caused by the enlarging of the UART array in the previous commits. Signed-off-by: Ben Dooks <ben-linux@fluff.org>
-rw-r--r--arch/arm/mach-s3c2410/include/mach/irqs.h6
-rw-r--r--arch/arm/plat-s3c/include/plat/regs-serial.h2
-rw-r--r--arch/arm/plat-s3c24xx/devs.c26
3 files changed, 31 insertions, 3 deletions
diff --git a/arch/arm/mach-s3c2410/include/mach/irqs.h b/arch/arm/mach-s3c2410/include/mach/irqs.h
index fa8764b05692..9565903d490b 100644
--- a/arch/arm/mach-s3c2410/include/mach/irqs.h
+++ b/arch/arm/mach-s3c2410/include/mach/irqs.h
@@ -162,6 +162,12 @@
162#define NR_IRQS (IRQ_S3C2440_AC97+1) 162#define NR_IRQS (IRQ_S3C2440_AC97+1)
163#endif 163#endif
164 164
165/* compatibility define. */
166#define IRQ_UART3 IRQ_S3C2443_UART3
167#define IRQ_S3CUART_RX3 IRQ_S3C2443_RX3
168#define IRQ_S3CUART_TX3 IRQ_S3C2443_TX3
169#define IRQ_S3CUART_ERR3 IRQ_S3C2443_ERR3
170
165/* Our FIQs are routable from IRQ_EINT0 to IRQ_ADCPARENT */ 171/* Our FIQs are routable from IRQ_EINT0 to IRQ_ADCPARENT */
166#define FIQ_START IRQ_EINT0 172#define FIQ_START IRQ_EINT0
167 173
diff --git a/arch/arm/plat-s3c/include/plat/regs-serial.h b/arch/arm/plat-s3c/include/plat/regs-serial.h
index 3ca28585cf80..487d7d2a7e1d 100644
--- a/arch/arm/plat-s3c/include/plat/regs-serial.h
+++ b/arch/arm/plat-s3c/include/plat/regs-serial.h
@@ -238,7 +238,7 @@ struct s3c2410_uartcfg {
238 * or platform_add_device() before the console_initcall() 238 * or platform_add_device() before the console_initcall()
239*/ 239*/
240 240
241extern struct platform_device *s3c24xx_uart_devs[3]; 241extern struct platform_device *s3c24xx_uart_devs[4];
242 242
243#endif /* __ASSEMBLY__ */ 243#endif /* __ASSEMBLY__ */
244 244
diff --git a/arch/arm/plat-s3c24xx/devs.c b/arch/arm/plat-s3c24xx/devs.c
index 14d4f0bc1253..16ac01d9b8ab 100644
--- a/arch/arm/plat-s3c24xx/devs.c
+++ b/arch/arm/plat-s3c24xx/devs.c
@@ -76,6 +76,19 @@ static struct resource s3c2410_uart2_resource[] = {
76 } 76 }
77}; 77};
78 78
79static struct resource s3c2410_uart3_resource[] = {
80 [0] = {
81 .start = S3C2443_PA_UART3,
82 .end = S3C2443_PA_UART3 + 0x3fff,
83 .flags = IORESOURCE_MEM,
84 },
85 [1] = {
86 .start = IRQ_S3CUART_RX3,
87 .end = IRQ_S3CUART_ERR3,
88 .flags = IORESOURCE_IRQ,
89 },
90};
91
79struct s3c24xx_uart_resources s3c2410_uart_resources[] __initdata = { 92struct s3c24xx_uart_resources s3c2410_uart_resources[] __initdata = {
80 [0] = { 93 [0] = {
81 .resources = s3c2410_uart0_resource, 94 .resources = s3c2410_uart0_resource,
@@ -89,6 +102,10 @@ struct s3c24xx_uart_resources s3c2410_uart_resources[] __initdata = {
89 .resources = s3c2410_uart2_resource, 102 .resources = s3c2410_uart2_resource,
90 .nr_resources = ARRAY_SIZE(s3c2410_uart2_resource), 103 .nr_resources = ARRAY_SIZE(s3c2410_uart2_resource),
91 }, 104 },
105 [3] = {
106 .resources = s3c2410_uart3_resource,
107 .nr_resources = ARRAY_SIZE(s3c2410_uart3_resource),
108 },
92}; 109};
93 110
94/* yart devices */ 111/* yart devices */
@@ -105,13 +122,18 @@ static struct platform_device s3c24xx_uart_device2 = {
105 .id = 2, 122 .id = 2,
106}; 123};
107 124
108struct platform_device *s3c24xx_uart_src[3] = { 125static struct platform_device s3c24xx_uart_device3 = {
126 .id = 3,
127};
128
129struct platform_device *s3c24xx_uart_src[4] = {
109 &s3c24xx_uart_device0, 130 &s3c24xx_uart_device0,
110 &s3c24xx_uart_device1, 131 &s3c24xx_uart_device1,
111 &s3c24xx_uart_device2, 132 &s3c24xx_uart_device2,
133 &s3c24xx_uart_device3,
112}; 134};
113 135
114struct platform_device *s3c24xx_uart_devs[3] = { 136struct platform_device *s3c24xx_uart_devs[4] = {
115}; 137};
116 138
117/* USB Host Controller */ 139/* USB Host Controller */