diff options
author | Jonathan McDowell <noodles@earth.li> | 2006-08-15 02:05:32 -0400 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2006-10-01 12:07:06 -0400 |
commit | 255341c6fded73204b1ee6feb5fe16e125b27f62 (patch) | |
tree | 28727c6c6d0aa9c98ca3f902d62b8d4195a7e8a8 /drivers/serial/8250.c | |
parent | 80e3c2b659515ef236f33f691ff5b22ae90ae8e4 (diff) |
[SERIAL] OMAP1510 serial fix for 115200 baud
The patch below is necessary for 115200 baud on an OMAP1510 internal UART.
It's been in the linux-omap tree for some time and with it applied to a
vanilla Linus git tree the serial console on the Amstrad Delta (which is
OMAP1510 based and whose initial bootloader runs at 115200) works fine (it
doesn't without it).
Signed-off-by: Jonathan McDowell <noodles@earth.li>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'drivers/serial/8250.c')
-rw-r--r-- | drivers/serial/8250.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/serial/8250.c b/drivers/serial/8250.c index cef03e68771b..a07442ffefbd 100644 --- a/drivers/serial/8250.c +++ b/drivers/serial/8250.c | |||
@@ -1896,6 +1896,17 @@ serial8250_set_termios(struct uart_port *port, struct termios *termios, | |||
1896 | serial_outp(up, UART_EFR, efr); | 1896 | serial_outp(up, UART_EFR, efr); |
1897 | } | 1897 | } |
1898 | 1898 | ||
1899 | #ifdef CONFIG_ARCH_OMAP15XX | ||
1900 | /* Workaround to enable 115200 baud on OMAP1510 internal ports */ | ||
1901 | if (cpu_is_omap1510() && is_omap_port((unsigned int)up->port.membase)) { | ||
1902 | if (baud == 115200) { | ||
1903 | quot = 1; | ||
1904 | serial_out(up, UART_OMAP_OSC_12M_SEL, 1); | ||
1905 | } else | ||
1906 | serial_out(up, UART_OMAP_OSC_12M_SEL, 0); | ||
1907 | } | ||
1908 | #endif | ||
1909 | |||
1899 | if (up->capabilities & UART_NATSEMI) { | 1910 | if (up->capabilities & UART_NATSEMI) { |
1900 | /* Switch to bank 2 not bank 1, to avoid resetting EXCR2 */ | 1911 | /* Switch to bank 2 not bank 1, to avoid resetting EXCR2 */ |
1901 | serial_outp(up, UART_LCR, 0xe0); | 1912 | serial_outp(up, UART_LCR, 0xe0); |