Messages in this thread Patch in this message | | | From | Vabhav Sharma <> | Subject | [PATCH] tty: serial: fsl_lpuart: minimum baud rate support | Date | Thu, 25 Jun 2020 15:19:05 +0530 |
| |
From: Vabhav Sharma <vabhav.sharma@nxp.com>
The formula for the baud rate is baud rate = "baud clock / ((OSR+1) × SBR)
Algorithm used in function lpuart32_serial_setbrg() only changes the SBR. Even with maxmum value put in, OSR stays at 0x7 and the lowest baud rate would be ~ 2600 bps
Update the algorithm to allow driver operation at 1200,2400 or 600 bps
Signed-off-by: Vabhav Sharma <vabhav.sharma@nxp.com> --- drivers/tty/serial/fsl_lpuart.c | 4 ++++ 1 file changed, 4 insertions(+)
diff --git a/drivers/tty/serial/fsl_lpuart.c b/drivers/tty/serial/fsl_lpuart.c index 90298c4..0fd0fa5f 100644 --- a/drivers/tty/serial/fsl_lpuart.c +++ b/drivers/tty/serial/fsl_lpuart.c @@ -1925,6 +1925,10 @@ static void __lpuart32_serial_setbrg(struct uart_port *port, tmp_sbr++; } + if (tmp_sbr > UARTBAUD_SBR_MASK) { + continue; + } + if (tmp_diff <= baud_diff) { baud_diff = tmp_diff; osr = tmp_osr; -- 2.7.4
| |