A non-trivial amount of RT288x/Au1xxx code is encapsulated into ifdeffery in 8250_port / 8250_early and some if/switch UPIO_AU blocks. Create a separate file from them and do a few additional cleanups. I kept the Kconfig entry as bool because the code has somewhat tricky dependency chain (mips arch code and 8250_of driver). It would be nice to make it tristate but I don't know how blocking some invalid =m + =y combinations would be best addressed. It should probably be best done on top of this series independent of the split itself anyway. UPIO_AU could now be removed because it's same as UPIO_MEM for the remaining code path but I'm unsure if that's allowed (is the port iotype part of stable ABI or not)? Ilpo Järvinen (3): serial: 8250: RT288x/Au1xxx code away from core serial: 8250_rt288x: Name non-standard divisor latch reg serial: 8250_rt288x: Remove unnecessary UART_REG_UNMAPPED arch/mips/alchemy/common/platform.c | 10 +- drivers/tty/serial/8250/8250_core.c | 4 + drivers/tty/serial/8250/8250_early.c | 21 ---- drivers/tty/serial/8250/8250_of.c | 4 +- drivers/tty/serial/8250/8250_port.c | 78 --------------- drivers/tty/serial/8250/8250_rt288x.c | 135 ++++++++++++++++++++++++++ drivers/tty/serial/8250/Makefile | 1 + include/linux/serial_8250.h | 14 ++- 8 files changed, 163 insertions(+), 104 deletions(-) create mode 100644 drivers/tty/serial/8250/8250_rt288x.c -- 2.30.2