Index: linux-2.6.25.1/drivers/serial/8250.c =================================================================== --- linux-2.6.25.1.orig/drivers/serial/8250.c 2008-05-01 23:45:25.000000000 +0200 +++ linux-2.6.25.1/drivers/serial/8250.c 2008-05-03 16:25:06.000000000 +0200 @@ -267,6 +267,13 @@ .fcr = UART_FCR_ENABLE_FIFO | UART_FCR_R_TRIG_10, .flags = UART_CAP_FIFO, }, + [PORT_AR7] = { + .name = "TI-AR7", + .fifo_size = 16, + .tx_loadsz = 16, + .fcr = UART_FCR_ENABLE_FIFO | UART_FCR_R_TRIG_00, + .flags = UART_CAP_FIFO | UART_CAP_AFE, + }, }; #if defined (CONFIG_SERIAL_8250_AU1X00) @@ -2455,7 +2462,11 @@ { struct uart_8250_port *up = (struct uart_8250_port *)port; +#ifdef CONFIG_AR7 + wait_for_xmitr(up, BOTH_EMPTY); +#else wait_for_xmitr(up, UART_LSR_THRE); +#endif serial_out(up, UART_TX, ch); } Index: linux-2.6.25.1/include/linux/serial_core.h =================================================================== --- linux-2.6.25.1.orig/include/linux/serial_core.h 2008-05-01 23:45:25.000000000 +0200 +++ linux-2.6.25.1/include/linux/serial_core.h 2008-05-03 16:25:06.000000000 +0200 @@ -40,7 +40,8 @@ #define PORT_NS16550A 14 #define PORT_XSCALE 15 #define PORT_RM9000 16 /* PMC-Sierra RM9xxx internal UART */ -#define PORT_MAX_8250 16 /* max port ID */ +#define PORT_AR7 17 +#define PORT_MAX_8250 17 /* max port ID */ /* * ARM specific type numbers. These are not currently guaranteed