diff options
author | Tony Lindgren <tony@atomide.com> | 2009-10-16 09:53:00 -0700 |
---|---|---|
committer | Tony Lindgren <tony@atomide.com> | 2009-10-16 09:53:00 -0700 |
commit | 84f90c9cc81d8db172d4f768fc4010f508897366 (patch) | |
tree | 22dc6c2d0ea698e4e16651f14840e409fa7da5d5 /arch/arm/mach-omap1/serial.c | |
parent | a2bb28a0dbcc1370104a543d25eb28aab81d4a91 (diff) | |
download | linux-3.10-84f90c9cc81d8db172d4f768fc4010f508897366.tar.gz linux-3.10-84f90c9cc81d8db172d4f768fc4010f508897366.tar.bz2 linux-3.10-84f90c9cc81d8db172d4f768fc4010f508897366.zip |
omap: Change low-level serial init to use ioremap
Change low-level serial init to use ioremap
Signed-off-by: Tony Lindgren <tony@atomide.com>
Diffstat (limited to 'arch/arm/mach-omap1/serial.c')
-rw-r--r-- | arch/arm/mach-omap1/serial.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/arch/arm/mach-omap1/serial.c b/arch/arm/mach-omap1/serial.c index ed07af109f0..cab41713fce 100644 --- a/arch/arm/mach-omap1/serial.c +++ b/arch/arm/mach-omap1/serial.c @@ -64,7 +64,6 @@ static void __init omap_serial_reset(struct plat_serial8250_port *p) static struct plat_serial8250_port serial_platform_data[] = { { - .membase = OMAP1_IO_ADDRESS(OMAP_UART1_BASE), .mapbase = OMAP_UART1_BASE, .irq = INT_UART1, .flags = UPF_BOOT_AUTOCONF, @@ -73,7 +72,6 @@ static struct plat_serial8250_port serial_platform_data[] = { .uartclk = OMAP16XX_BASE_BAUD * 16, }, { - .membase = OMAP1_IO_ADDRESS(OMAP_UART2_BASE), .mapbase = OMAP_UART2_BASE, .irq = INT_UART2, .flags = UPF_BOOT_AUTOCONF, @@ -82,7 +80,6 @@ static struct plat_serial8250_port serial_platform_data[] = { .uartclk = OMAP16XX_BASE_BAUD * 16, }, { - .membase = OMAP1_IO_ADDRESS(OMAP_UART3_BASE), .mapbase = OMAP_UART3_BASE, .irq = INT_UART3, .flags = UPF_BOOT_AUTOCONF, @@ -126,6 +123,14 @@ void __init omap_serial_init(void) for (i = 0; i < OMAP_MAX_NR_PORTS; i++) { unsigned char reg; + /* Static mapping, never released */ + serial_platform_data[i].membase = + ioremap(serial_platform_data[i].mapbase, SZ_2K); + if (!serial_platform_data[i].membase) { + printk(KERN_ERR "Could not ioremap uart%i\n", i); + continue; + } + switch (i) { case 0: uart1_ck = clk_get(NULL, "uart1_ck"); |