diff options
author | Ben Dooks <ben-linux@fluff.org> | 2005-07-18 05:24:32 -0400 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2005-07-18 05:24:32 -0400 |
commit | 65cc3370ef3fb56b9b423f282a8204f8cce66e32 (patch) | |
tree | f7bbf935d43e5bb3897151fc40e964f8796708f9 /arch/arm/mach-s3c2410/mach-bast.c | |
parent | f60f700876cd51de9de69f3a3c865d95e287a24d (diff) |
[PATCH] ARM: 2818/1: BAST - Use platform device for SuperIO 16550s
Patch from Ben Dooks
Use platform device for the 16500 UARTs in the onboard
SuperIO controller.
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/mach-s3c2410/mach-bast.c')
-rw-r--r-- | arch/arm/mach-s3c2410/mach-bast.c | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/arch/arm/mach-s3c2410/mach-bast.c b/arch/arm/mach-s3c2410/mach-bast.c index ccb6bcefa46c..206778ebfce7 100644 --- a/arch/arm/mach-s3c2410/mach-bast.c +++ b/arch/arm/mach-s3c2410/mach-bast.c | |||
@@ -28,6 +28,7 @@ | |||
28 | * 14-Mar-2006 BJD Updated for __iomem changes | 28 | * 14-Mar-2006 BJD Updated for __iomem changes |
29 | * 22-Jun-2006 BJD Added DM9000 platform information | 29 | * 22-Jun-2006 BJD Added DM9000 platform information |
30 | * 28-Jun-2006 BJD Moved pm functionality out to common code | 30 | * 28-Jun-2006 BJD Moved pm functionality out to common code |
31 | * 17-Jul-2006 BJD Changed to platform device for SuperIO 16550s | ||
31 | */ | 32 | */ |
32 | 33 | ||
33 | #include <linux/kernel.h> | 34 | #include <linux/kernel.h> |
@@ -64,6 +65,8 @@ | |||
64 | #include <linux/mtd/nand_ecc.h> | 65 | #include <linux/mtd/nand_ecc.h> |
65 | #include <linux/mtd/partitions.h> | 66 | #include <linux/mtd/partitions.h> |
66 | 67 | ||
68 | #include <linux/serial_8250.h> | ||
69 | |||
67 | #include "clock.h" | 70 | #include "clock.h" |
68 | #include "devs.h" | 71 | #include "devs.h" |
69 | #include "cpu.h" | 72 | #include "cpu.h" |
@@ -351,6 +354,39 @@ static struct platform_device bast_device_dm9k = { | |||
351 | } | 354 | } |
352 | }; | 355 | }; |
353 | 356 | ||
357 | /* serial devices */ | ||
358 | |||
359 | #define SERIAL_BASE (S3C2410_CS2 + BAST_PA_SUPERIO) | ||
360 | #define SERIAL_FLAGS (UPF_BOOT_AUTOCONF | UPF_IOREMAP | UPF_SHARE_IRQ) | ||
361 | #define SERIAL_CLK (1843200) | ||
362 | |||
363 | static struct plat_serial8250_port bast_sio_data[] = { | ||
364 | [0] = { | ||
365 | .mapbase = SERIAL_BASE + 0x2f8, | ||
366 | .irq = IRQ_PCSERIAL1, | ||
367 | .flags = SERIAL_FLAGS, | ||
368 | .iotype = UPIO_MEM, | ||
369 | .regshift = 0, | ||
370 | .uartclk = SERIAL_CLK, | ||
371 | }, | ||
372 | [1] = { | ||
373 | .mapbase = SERIAL_BASE + 0x3f8, | ||
374 | .irq = IRQ_PCSERIAL2, | ||
375 | .flags = SERIAL_FLAGS, | ||
376 | .iotype = UPIO_MEM, | ||
377 | .regshift = 0, | ||
378 | .uartclk = SERIAL_CLK, | ||
379 | }, | ||
380 | { } | ||
381 | }; | ||
382 | |||
383 | static struct platform_device bast_sio = { | ||
384 | .name = "serial8250", | ||
385 | .id = 0, | ||
386 | .dev = { | ||
387 | .platform_data = &bast_sio_data, | ||
388 | }, | ||
389 | }; | ||
354 | 390 | ||
355 | /* Standard BAST devices */ | 391 | /* Standard BAST devices */ |
356 | 392 | ||
@@ -364,6 +400,7 @@ static struct platform_device *bast_devices[] __initdata = { | |||
364 | &s3c_device_nand, | 400 | &s3c_device_nand, |
365 | &bast_device_nor, | 401 | &bast_device_nor, |
366 | &bast_device_dm9k, | 402 | &bast_device_dm9k, |
403 | &bast_sio, | ||
367 | }; | 404 | }; |
368 | 405 | ||
369 | static struct clk *bast_clocks[] = { | 406 | static struct clk *bast_clocks[] = { |