]> git.proxmox.com Git - mirror_ubuntu-eoan-kernel.git/blobdiff - drivers/tty/serial/xilinx_uartps.c
serial: cadence: Add generic earlycon support
[mirror_ubuntu-eoan-kernel.git] / drivers / tty / serial / xilinx_uartps.c
index 7f8027f27ab9c727c11b03901083681a0a92fb78..200c1af2141bb11b1f13442b1e311622df641188 100644 (file)
@@ -1051,6 +1051,25 @@ static void cdns_uart_console_putchar(struct uart_port *port, int ch)
        cdns_uart_writel(ch, CDNS_UART_FIFO_OFFSET);
 }
 
+static void cdns_early_write(struct console *con, const char *s, unsigned n)
+{
+       struct earlycon_device *dev = con->data;
+
+       uart_console_write(&dev->port, s, n, cdns_uart_console_putchar);
+}
+
+static int __init cdns_early_console_setup(struct earlycon_device *device,
+                                          const char *opt)
+{
+       if (!device->port.membase)
+               return -ENODEV;
+
+       device->con->write = cdns_early_write;
+
+       return 0;
+}
+EARLYCON_DECLARE(cdns, cdns_early_console_setup);
+
 /**
  * cdns_uart_console_write - perform write operation
  * @co: Console handle