|
@@ -782,6 +782,26 @@ static int __init bcm63xx_console_init(void)
|
|
|
|
|
|
console_initcall(bcm63xx_console_init);
|
|
|
|
|
|
+static void bcm_early_write(struct console *con, const char *s, unsigned n)
|
|
|
+{
|
|
|
+ struct earlycon_device *dev = con->data;
|
|
|
+
|
|
|
+ uart_console_write(&dev->port, s, n, bcm_console_putchar);
|
|
|
+ wait_for_xmitr(&dev->port);
|
|
|
+}
|
|
|
+
|
|
|
+static int __init bcm_early_console_setup(struct earlycon_device *device,
|
|
|
+ const char *opt)
|
|
|
+{
|
|
|
+ if (!device->port.membase)
|
|
|
+ return -ENODEV;
|
|
|
+
|
|
|
+ device->con->write = bcm_early_write;
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+OF_EARLYCON_DECLARE(bcm63xx_uart, "brcm,bcm6345-uart", bcm_early_console_setup);
|
|
|
+
|
|
|
#define BCM63XX_CONSOLE (&bcm63xx_console)
|
|
|
#else
|
|
|
#define BCM63XX_CONSOLE NULL
|