Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2555e663 authored by Kukjin Kim's avatar Kukjin Kim
Browse files

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: default avatarKukjin Kim <kgene.kim@samsung.com>
Cc: Ben Dooks <ben-linux@fluff.org>
parent 6f315cb5
Loading
Loading
Loading
Loading
+58 −0
Original line number Diff line number Diff line
@@ -119,6 +119,56 @@ static struct resource s5p_uart3_resource[] = {
#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 = {
	[0] = {
		.resources	= s5p_uart0_resource,
@@ -136,4 +186,12 @@ struct s3c24xx_uart_resources s5p_uart_resources[] __initdata = {
		.resources	= 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),
	},
};
+4 −3
Original line number Diff line number Diff line
@@ -458,6 +458,7 @@ config SERIAL_SAMSUNG_UARTS
	int
	depends on ARM && PLAT_SAMSUNG
	default 2 if ARCH_S3C2400
	default 6 if ARCH_S5P6450
	default 4 if SERIAL_SAMSUNG_UARTS_4
	default 3
	help
@@ -526,12 +527,12 @@ config SERIAL_S3C24A0
	  Serial port support for the Samsung S3C24A0 SoC

config SERIAL_S3C6400
	tristate "Samsung S3C6400/S3C6410/S5P6440/S5PC100 Serial port support"
	depends on SERIAL_SAMSUNG && (CPU_S3C6400 || CPU_S3C6410 || CPU_S5P6440 || CPU_S5PC100)
	tristate "Samsung S3C6400/S3C6410/S5P6440/S5P6450/S5PC100 Serial port support"
	depends on SERIAL_SAMSUNG && (CPU_S3C6400 || CPU_S3C6410 || CPU_S5P6440 || CPU_S5P6450 || CPU_S5PC100)
	select SERIAL_SAMSUNG_UARTS_4
	default y
	help
	  Serial port support for the Samsung S3C6400, S3C6410, S5P6440
	  Serial port support for the Samsung S3C6400, S3C6410, S5P6440, S5P6450
	  and S5PC100 SoCs

config SERIAL_S5PV210
+1 −1
Original line number Diff line number Diff line
@@ -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);

	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);
	if (ret < 0)
		port->irq = 0;