diff options
author | Ben Dooks <ben-linux@fluff.org> | 2008-11-04 16:29:09 +0100 |
---|---|---|
committer | Ben Dooks <ben-linux@fluff.org> | 2008-12-18 17:26:16 +0100 |
commit | dbf35992e17334f9ae8b2ea35e795d0c264e57ef (patch) | |
tree | 6af4f6534787dfbaba03046aa07177639240126c /arch/arm | |
parent | [ARM] S3C: Update CONFIG_SERIAL_SAMSUNG_UARTS handling (diff) | |
download | linux-dbf35992e17334f9ae8b2ea35e795d0c264e57ef.tar.xz linux-dbf35992e17334f9ae8b2ea35e795d0c264e57ef.zip |
[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>
Diffstat (limited to 'arch/arm')
-rw-r--r-- | arch/arm/mach-s3c2410/include/mach/irqs.h | 6 | ||||
-rw-r--r-- | arch/arm/plat-s3c/include/plat/regs-serial.h | 2 | ||||
-rw-r--r-- | arch/arm/plat-s3c24xx/devs.c | 26 |
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 @@ #define NR_IRQS (IRQ_S3C2440_AC97+1) #endif +/* compatibility define. */ +#define IRQ_UART3 IRQ_S3C2443_UART3 +#define IRQ_S3CUART_RX3 IRQ_S3C2443_RX3 +#define IRQ_S3CUART_TX3 IRQ_S3C2443_TX3 +#define IRQ_S3CUART_ERR3 IRQ_S3C2443_ERR3 + /* Our FIQs are routable from IRQ_EINT0 to IRQ_ADCPARENT */ #define FIQ_START IRQ_EINT0 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 { * or platform_add_device() before the console_initcall() */ -extern struct platform_device *s3c24xx_uart_devs[3]; +extern struct platform_device *s3c24xx_uart_devs[4]; #endif /* __ASSEMBLY__ */ 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[] = { } }; +static struct resource s3c2410_uart3_resource[] = { + [0] = { + .start = S3C2443_PA_UART3, + .end = S3C2443_PA_UART3 + 0x3fff, + .flags = IORESOURCE_MEM, + }, + [1] = { + .start = IRQ_S3CUART_RX3, + .end = IRQ_S3CUART_ERR3, + .flags = IORESOURCE_IRQ, + }, +}; + struct s3c24xx_uart_resources s3c2410_uart_resources[] __initdata = { [0] = { .resources = s3c2410_uart0_resource, @@ -89,6 +102,10 @@ struct s3c24xx_uart_resources s3c2410_uart_resources[] __initdata = { .resources = s3c2410_uart2_resource, .nr_resources = ARRAY_SIZE(s3c2410_uart2_resource), }, + [3] = { + .resources = s3c2410_uart3_resource, + .nr_resources = ARRAY_SIZE(s3c2410_uart3_resource), + }, }; /* yart devices */ @@ -105,13 +122,18 @@ static struct platform_device s3c24xx_uart_device2 = { .id = 2, }; -struct platform_device *s3c24xx_uart_src[3] = { +static struct platform_device s3c24xx_uart_device3 = { + .id = 3, +}; + +struct platform_device *s3c24xx_uart_src[4] = { &s3c24xx_uart_device0, &s3c24xx_uart_device1, &s3c24xx_uart_device2, + &s3c24xx_uart_device3, }; -struct platform_device *s3c24xx_uart_devs[3] = { +struct platform_device *s3c24xx_uart_devs[4] = { }; /* USB Host Controller */ |