ARM: S5P64X0: Add UART serial support for S5P6450
This patch adds UART serial port support for S5P6450 SoC. The S5P6450 has 6 UARTs, so adds resource of UART4 and UART5. And to fix membase which is in serial/samsung.c is from Ben Dooks. Signed-off-by: Kukjin Kim <kgene.kim@samsung.com> Cc: Ben Dooks <ben-linux@fluff.org>
This commit is contained in:
parent
6f315cb562
commit
2555e663b3
@ -119,6 +119,56 @@ static struct resource s5p_uart3_resource[] = {
|
|||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static struct resource s5p_uart4_resource[] = {
|
||||||
|
#if CONFIG_SERIAL_SAMSUNG_UARTS > 4
|
||||||
|
[0] = {
|
||||||
|
.start = S5P_PA_UART4,
|
||||||
|
.end = S5P_PA_UART4 + S5P_SZ_UART,
|
||||||
|
.flags = IORESOURCE_MEM,
|
||||||
|
},
|
||||||
|
[1] = {
|
||||||
|
.start = IRQ_S5P_UART_RX4,
|
||||||
|
.end = IRQ_S5P_UART_RX4,
|
||||||
|
.flags = IORESOURCE_IRQ,
|
||||||
|
},
|
||||||
|
[2] = {
|
||||||
|
.start = IRQ_S5P_UART_TX4,
|
||||||
|
.end = IRQ_S5P_UART_TX4,
|
||||||
|
.flags = IORESOURCE_IRQ,
|
||||||
|
},
|
||||||
|
[3] = {
|
||||||
|
.start = IRQ_S5P_UART_ERR4,
|
||||||
|
.end = IRQ_S5P_UART_ERR4,
|
||||||
|
.flags = IORESOURCE_IRQ,
|
||||||
|
},
|
||||||
|
#endif
|
||||||
|
};
|
||||||
|
|
||||||
|
static struct resource s5p_uart5_resource[] = {
|
||||||
|
#if CONFIG_SERIAL_SAMSUNG_UARTS > 5
|
||||||
|
[0] = {
|
||||||
|
.start = S5P_PA_UART5,
|
||||||
|
.end = S5P_PA_UART5 + S5P_SZ_UART,
|
||||||
|
.flags = IORESOURCE_MEM,
|
||||||
|
},
|
||||||
|
[1] = {
|
||||||
|
.start = IRQ_S5P_UART_RX5,
|
||||||
|
.end = IRQ_S5P_UART_RX5,
|
||||||
|
.flags = IORESOURCE_IRQ,
|
||||||
|
},
|
||||||
|
[2] = {
|
||||||
|
.start = IRQ_S5P_UART_TX5,
|
||||||
|
.end = IRQ_S5P_UART_TX5,
|
||||||
|
.flags = IORESOURCE_IRQ,
|
||||||
|
},
|
||||||
|
[3] = {
|
||||||
|
.start = IRQ_S5P_UART_ERR5,
|
||||||
|
.end = IRQ_S5P_UART_ERR5,
|
||||||
|
.flags = IORESOURCE_IRQ,
|
||||||
|
},
|
||||||
|
#endif
|
||||||
|
};
|
||||||
|
|
||||||
struct s3c24xx_uart_resources s5p_uart_resources[] __initdata = {
|
struct s3c24xx_uart_resources s5p_uart_resources[] __initdata = {
|
||||||
[0] = {
|
[0] = {
|
||||||
.resources = s5p_uart0_resource,
|
.resources = s5p_uart0_resource,
|
||||||
@ -136,4 +186,12 @@ struct s3c24xx_uart_resources s5p_uart_resources[] __initdata = {
|
|||||||
.resources = s5p_uart3_resource,
|
.resources = s5p_uart3_resource,
|
||||||
.nr_resources = ARRAY_SIZE(s5p_uart3_resource),
|
.nr_resources = ARRAY_SIZE(s5p_uart3_resource),
|
||||||
},
|
},
|
||||||
|
[4] = {
|
||||||
|
.resources = s5p_uart4_resource,
|
||||||
|
.nr_resources = ARRAY_SIZE(s5p_uart4_resource),
|
||||||
|
},
|
||||||
|
[5] = {
|
||||||
|
.resources = s5p_uart5_resource,
|
||||||
|
.nr_resources = ARRAY_SIZE(s5p_uart5_resource),
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
@ -458,6 +458,7 @@ config SERIAL_SAMSUNG_UARTS
|
|||||||
int
|
int
|
||||||
depends on ARM && PLAT_SAMSUNG
|
depends on ARM && PLAT_SAMSUNG
|
||||||
default 2 if ARCH_S3C2400
|
default 2 if ARCH_S3C2400
|
||||||
|
default 6 if ARCH_S5P6450
|
||||||
default 4 if SERIAL_SAMSUNG_UARTS_4
|
default 4 if SERIAL_SAMSUNG_UARTS_4
|
||||||
default 3
|
default 3
|
||||||
help
|
help
|
||||||
@ -526,12 +527,12 @@ config SERIAL_S3C24A0
|
|||||||
Serial port support for the Samsung S3C24A0 SoC
|
Serial port support for the Samsung S3C24A0 SoC
|
||||||
|
|
||||||
config SERIAL_S3C6400
|
config SERIAL_S3C6400
|
||||||
tristate "Samsung S3C6400/S3C6410/S5P6440/S5PC100 Serial port support"
|
tristate "Samsung S3C6400/S3C6410/S5P6440/S5P6450/S5PC100 Serial port support"
|
||||||
depends on SERIAL_SAMSUNG && (CPU_S3C6400 || CPU_S3C6410 || CPU_S5P6440 || CPU_S5PC100)
|
depends on SERIAL_SAMSUNG && (CPU_S3C6400 || CPU_S3C6410 || CPU_S5P6440 || CPU_S5P6450 || CPU_S5PC100)
|
||||||
select SERIAL_SAMSUNG_UARTS_4
|
select SERIAL_SAMSUNG_UARTS_4
|
||||||
default y
|
default y
|
||||||
help
|
help
|
||||||
Serial port support for the Samsung S3C6400, S3C6410, S5P6440
|
Serial port support for the Samsung S3C6400, S3C6410, S5P6440, S5P6450
|
||||||
and S5PC100 SoCs
|
and S5PC100 SoCs
|
||||||
|
|
||||||
config SERIAL_S5PV210
|
config SERIAL_S5PV210
|
||||||
|
@ -1101,7 +1101,7 @@ static int s3c24xx_serial_init_port(struct s3c24xx_uart_port *ourport,
|
|||||||
dbg("resource %p (%lx..%lx)\n", res, res->start, res->end);
|
dbg("resource %p (%lx..%lx)\n", res, res->start, res->end);
|
||||||
|
|
||||||
port->mapbase = res->start;
|
port->mapbase = res->start;
|
||||||
port->membase = S3C_VA_UART + res->start - (S3C_PA_UART & 0xfff00000);
|
port->membase = S3C_VA_UART + (res->start & 0xfffff);
|
||||||
ret = platform_get_irq(platdev, 0);
|
ret = platform_get_irq(platdev, 0);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
port->irq = 0;
|
port->irq = 0;
|
||||||
|
Loading…
Reference in New Issue
Block a user