serial: 8250_ingenic: Parse earlycon options
In the devicetree, it is possible to specify the baudrate, parity, bits, flow of the early console, by passing a configuration string like this: aliases { serial0 = &uart0; }; chosen { stdout-path = "serial0:57600n8"; }; This, for instance, will configure the early console for a baudrate of 57600 bps, no parity, and 8 bits per baud. This patches implements parsing of this configuration string in the 8250_ingenic driver, which previously just ignored it. Signed-off-by: Paul Cercueil <paul@crapouillou.net> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
aed3d7012c
commit
ea507ce3e0
|
@ -91,14 +91,22 @@ static int __init ingenic_early_console_setup(struct earlycon_device *dev,
|
|||
const char *opt)
|
||||
{
|
||||
struct uart_port *port = &dev->port;
|
||||
unsigned int baud, divisor;
|
||||
unsigned int divisor;
|
||||
int baud = 115200;
|
||||
|
||||
if (!dev->port.membase)
|
||||
return -ENODEV;
|
||||
|
||||
if (opt) {
|
||||
unsigned int parity, bits, flow; /* unused for now */
|
||||
|
||||
uart_parse_options(opt, &baud, &parity, &bits, &flow);
|
||||
}
|
||||
|
||||
ingenic_early_console_setup_clock(dev);
|
||||
|
||||
baud = dev->baud ?: 115200;
|
||||
if (dev->baud)
|
||||
baud = dev->baud;
|
||||
divisor = DIV_ROUND_CLOSEST(port->uartclk, 16 * baud);
|
||||
|
||||
early_out(port, UART_IER, 0);
|
||||
|
|
Loading…
Reference in New Issue