can enable its onboard serial port by enabling this option.
 
 config SERIAL_IMX_CONSOLE
-       bool "Console on IMX serial port"
-       depends on SERIAL_IMX=y
+       tristate "Console on IMX serial port"
+       depends on SERIAL_IMX
        select SERIAL_CORE_CONSOLE
-       select SERIAL_EARLYCON if OF
        help
          If you have enabled the serial port on the Freescale IMX
-         CPU you can make it the console by answering Y to this option.
+         CPU you can make it the console by answering Y/M to this option.
 
-         Even if you say Y here, the currently visible virtual console
+         Even if you say Y/M here, the currently visible virtual console
          (/dev/tty0) will still be used as the system console by default, but
          you can alter that using a kernel command line option such as
          "console=ttymxc0". (Try "man bootparam" or see the documentation of
 
 /*
  * Save and restore functions for UCR1, UCR2 and UCR3 registers
  */
-#if defined(CONFIG_SERIAL_IMX_CONSOLE)
+#if IS_ENABLED(CONFIG_SERIAL_IMX_CONSOLE)
 static void imx_uart_ucrs_save(struct imx_port *sport,
                               struct imx_port_ucrs *ucr)
 {
 
 static struct imx_port *imx_uart_ports[UART_NR];
 
-#ifdef CONFIG_SERIAL_IMX_CONSOLE
+#if IS_ENABLED(CONFIG_SERIAL_IMX_CONSOLE)
 static void imx_uart_console_putchar(struct uart_port *port, int ch)
 {
        struct imx_port *sport = (struct imx_port *)port;
 
 #define IMX_CONSOLE    &imx_uart_console
 
-#ifdef CONFIG_OF
-static void imx_uart_console_early_putchar(struct uart_port *port, int ch)
-{
-       struct imx_port *sport = (struct imx_port *)port;
-
-       while (imx_uart_readl(sport, IMX21_UTS) & UTS_TXFULL)
-               cpu_relax();
-
-       imx_uart_writel(sport, ch, URTX0);
-}
-
-static void imx_uart_console_early_write(struct console *con, const char *s,
-                                        unsigned count)
-{
-       struct earlycon_device *dev = con->data;
-
-       uart_console_write(&dev->port, s, count, imx_uart_console_early_putchar);
-}
-
-static int __init
-imx_console_early_setup(struct earlycon_device *dev, const char *opt)
-{
-       if (!dev->port.membase)
-               return -ENODEV;
-
-       dev->con->write = imx_uart_console_early_write;
-
-       return 0;
-}
-OF_EARLYCON_DECLARE(ec_imx6q, "fsl,imx6q-uart", imx_console_early_setup);
-OF_EARLYCON_DECLARE(ec_imx21, "fsl,imx21-uart", imx_console_early_setup);
-#endif
-
 #else
 #define IMX_CONSOLE    NULL
 #endif