On 2/16/2026 10:22 PM, Frank Li wrote:
On Mon, Feb 16, 2026 at 04:01:54PM +0100, Larisa Grigore wrote:
When coming back from reset, we need to re-initialize LINCR1 register.
SLEEP bit should be cleared, otherwise we can't enter INITM mode.

serial: linflexuart: Clean SLEEP bit in LINCR1 at linflex_set_termios()

Re-initialize LINCR1 register (Clear the SLEEP bit) at
linflex_set_termios(), otherwise the controller cannot enter INITM mode
after suspend/resume.

Frank


Thanks!

Fixes: 09864c1cdf5c ("tty: serial: Add linflexuart driver for S32V234")
Signed-off-by: Larisa Grigore <[email protected]>
---
  drivers/tty/serial/fsl_linflexuart.c | 3 +--
  1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/tty/serial/fsl_linflexuart.c 
b/drivers/tty/serial/fsl_linflexuart.c
index 5a410e2d56ac..016011fd8760 100644
--- a/drivers/tty/serial/fsl_linflexuart.c
+++ b/drivers/tty/serial/fsl_linflexuart.c
@@ -413,8 +413,7 @@ linflex_set_termios(struct uart_port *port, struct ktermios 
*termios,
        old_cr = cr;

        /* Enter initialization mode by setting INIT bit */
-       cr1 = readl(port->membase + LINCR1);
-       cr1 |= LINFLEXD_LINCR1_INIT;
+       cr1 = LINFLEXD_LINCR1_INIT | LINFLEXD_LINCR1_MME;
        writel(cr1, port->membase + LINCR1);

        /* wait for init mode entry */
--
2.47.0


Reply via email to