serial: ralink: adds support for the serial core found on ralink wisoc

The MIPS based Ralink WiSoC platform has 1 or more 8250 compatible serial cores.
To make them work we require the same quirks that are used by AU1x00.

Signed-off-by: John Crispin <blogic@openwrt.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
John Crispin 2013-01-25 19:39:51 +01:00 committed by Greg Kroah-Hartman
parent 9fe8074b82
commit c420811f11
3 changed files with 12 additions and 4 deletions

View file

@ -317,9 +317,9 @@ static void default_serial_dl_write(struct uart_8250_port *up, int value)
serial_out(up, UART_DLM, value >> 8 & 0xff); serial_out(up, UART_DLM, value >> 8 & 0xff);
} }
#ifdef CONFIG_MIPS_ALCHEMY #if defined(CONFIG_MIPS_ALCHEMY) || defined(CONFIG_SERIAL_8250_RT288X)
/* Au1x00 UART hardware has a weird register layout */ /* Au1x00/RT288x UART hardware has a weird register layout */
static const u8 au_io_in_map[] = { static const u8 au_io_in_map[] = {
[UART_RX] = 0, [UART_RX] = 0,
[UART_IER] = 2, [UART_IER] = 2,
@ -440,7 +440,7 @@ static void set_io_from_upio(struct uart_port *p)
p->serial_out = mem32_serial_out; p->serial_out = mem32_serial_out;
break; break;
#ifdef CONFIG_MIPS_ALCHEMY #if defined(CONFIG_MIPS_ALCHEMY) || defined(CONFIG_SERIAL_8250_RT288X)
case UPIO_AU: case UPIO_AU:
p->serial_in = au_serial_in; p->serial_in = au_serial_in;
p->serial_out = au_serial_out; p->serial_out = au_serial_out;

View file

@ -276,3 +276,11 @@ config SERIAL_8250_EM
Selecting this option will add support for the integrated serial Selecting this option will add support for the integrated serial
port hardware found on the Emma Mobile line of processors. port hardware found on the Emma Mobile line of processors.
If unsure, say N. If unsure, say N.
config SERIAL_8250_RT288X
bool "Ralink RT288x/RT305x/RT3662/RT3883 serial port support"
depends on SERIAL_8250 && (SOC_RT288X || SOC_RT305X || SOC_RT3883)
help
If you have a Ralink RT288x/RT305x SoC based board and want to use the
serial port, say Y to this option. The driver can handle up to 2 serial
ports. If unsure, say N.

View file

@ -134,7 +134,7 @@ struct uart_port {
#define UPIO_HUB6 (1) #define UPIO_HUB6 (1)
#define UPIO_MEM (2) #define UPIO_MEM (2)
#define UPIO_MEM32 (3) #define UPIO_MEM32 (3)
#define UPIO_AU (4) /* Au1x00 type IO */ #define UPIO_AU (4) /* Au1x00 and RT288x type IO */
#define UPIO_TSI (5) /* Tsi108/109 type IO */ #define UPIO_TSI (5) /* Tsi108/109 type IO */
unsigned int read_status_mask; /* driver specific */ unsigned int read_status_mask; /* driver specific */