aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJonathan McDowell <noodles@earth.li>2006-08-15 02:05:32 -0400
committerRussell King <rmk+kernel@arm.linux.org.uk>2006-10-01 12:07:06 -0400
commit255341c6fded73204b1ee6feb5fe16e125b27f62 (patch)
tree28727c6c6d0aa9c98ca3f902d62b8d4195a7e8a8
parent80e3c2b659515ef236f33f691ff5b22ae90ae8e4 (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>
-rw-r--r--drivers/serial/8250.c11
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);