serial: 8250: simplify ralink/alchemy register remap selection
authorMans Rullgard <mans@mansr.com>
Tue, 15 Sep 2015 16:54:13 +0000 (17:54 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 4 Oct 2015 18:09:21 +0000 (19:09 +0100)
Some SoCs, including Ralink/Mediatek and Alchemy Au1xxx, have a
16550-like UART with a non-standard register layout.  These are
supported by a simple mapping table in 8250_port.c  Rather than
list every SoC type using this access mode in the ifdefs there,
allow selecting the SERIAL_8250_RT288X Kconfig option with any
system and default it to y for the known cases needing it.  The
help text is reworded accordingly.

This change simplifies adding support for other SoCs also using
the same UART.

The name of the option is a little misleading, but not knowing
the true origin of this UART, it is as good a choice as any.

Signed-off-by: Mans Rullgard <mans@mansr.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/8250/8250_port.c
drivers/tty/serial/8250/Kconfig

index c4dac1be3ec1e2d2a5ad3adf99ef1ee2dad84f5c..554a63e4c4a00cecc76775eac9ab6f89cdeefb6e 100644 (file)
@@ -276,7 +276,7 @@ static void default_serial_dl_write(struct uart_8250_port *up, int value)
        serial_out(up, UART_DLM, value >> 8 & 0xff);
 }
 
-#if defined(CONFIG_MIPS_ALCHEMY) || defined(CONFIG_SERIAL_8250_RT288X)
+#ifdef CONFIG_SERIAL_8250_RT288X
 
 /* Au1x00/RT288x UART hardware has a weird register layout */
 static const s8 au_io_in_map[8] = {
@@ -427,7 +427,7 @@ static void set_io_from_upio(struct uart_port *p)
                p->serial_out = mem32be_serial_out;
                break;
 
-#if defined(CONFIG_MIPS_ALCHEMY) || defined(CONFIG_SERIAL_8250_RT288X)
+#ifdef CONFIG_SERIAL_8250_RT288X
        case UPIO_AU:
                p->serial_in = au_serial_in;
                p->serial_out = au_serial_out;
index f5c4b01f6f1db3a50e17574d2beb5392acb0185d..656a1737d509b2a2533dd35536001442d4b8aad5 100644 (file)
@@ -294,11 +294,12 @@ config SERIAL_8250_EM
 
 config SERIAL_8250_RT288X
        bool "Ralink RT288x/RT305x/RT3662/RT3883 serial port support"
-       depends on SERIAL_8250 && (SOC_RT288X || SOC_RT305X || SOC_RT3883 || SOC_MT7620)
+       depends on SERIAL_8250
+       default y if MIPS_ALCHEMY || SOC_RT288X || SOC_RT305X || SOC_RT3883 || SOC_MT7620
        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.
+         Selecting this option will add support for the alternate register
+         layout used by Ralink RT288x/RT305x, Alchemy Au1xxx, and some others.
+         If unsure, say N.
 
 config SERIAL_8250_OMAP
        tristate "Support for OMAP internal UART (8250 based driver)"