tty: serial: bcm63xx: Enable DT earlycon support
This enables early console output if there is a chosen/stdout-path property referencing a UART node with the "brcm,bcm6345-uart" compatible string. The bootloader sets up the pinmux and baud/parity/etc. Tested on bcm3384 (MIPS, DT). Signed-off-by: Kevin Cernekee <cernekee@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
e1a184eea9
commit
1ab8e4b1ac
@ -1297,6 +1297,7 @@ config SERIAL_BCM63XX_CONSOLE
|
||||
bool "Console on BCM63xx serial port"
|
||||
depends on SERIAL_BCM63XX=y
|
||||
select SERIAL_CORE_CONSOLE
|
||||
select SERIAL_EARLYCON
|
||||
help
|
||||
If you have enabled the serial port on the BCM63xx CPU
|
||||
you can make it the console by answering Y to this option.
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user