tty: serial: fsl_lpuart: use UARTMODIR register bits for lpuart32 platform
authorSherry Sun <sherry.sun@nxp.com>
Fri, 14 Apr 2023 02:21:11 +0000 (10:21 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 20 Apr 2023 11:42:36 +0000 (13:42 +0200)
For lpuart32 platforms, UARTMODIR register is used instead of UARTMODEM.
So here should configure the corresponding UARTMODIR register bits to
avoid confusion.

Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Signed-off-by: Sherry Sun <sherry.sun@nxp.com>
Link: https://lore.kernel.org/r/20230414022111.20896-1-sherry.sun@nxp.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/fsl_lpuart.c

index aef9be3..c91916e 100644 (file)
@@ -1406,12 +1406,12 @@ static int lpuart32_config_rs485(struct uart_port *port, struct ktermios *termio
                        struct lpuart_port, port);
 
        unsigned long modem = lpuart32_read(&sport->port, UARTMODIR)
-                               & ~(UARTMODEM_TXRTSPOL | UARTMODEM_TXRTSE);
+                               & ~(UARTMODIR_TXRTSPOL | UARTMODIR_TXRTSE);
        lpuart32_write(&sport->port, modem, UARTMODIR);
 
        if (rs485->flags & SER_RS485_ENABLED) {
                /* Enable auto RS-485 RTS mode */
-               modem |= UARTMODEM_TXRTSE;
+               modem |= UARTMODIR_TXRTSE;
 
                /*
                 * The hardware defaults to RTS logic HIGH while transfer.
@@ -1420,9 +1420,9 @@ static int lpuart32_config_rs485(struct uart_port *port, struct ktermios *termio
                 * Note: UART is assumed to be active high.
                 */
                if (rs485->flags & SER_RS485_RTS_ON_SEND)
-                       modem |= UARTMODEM_TXRTSPOL;
+                       modem |= UARTMODIR_TXRTSPOL;
                else if (rs485->flags & SER_RS485_RTS_AFTER_SEND)
-                       modem &= ~UARTMODEM_TXRTSPOL;
+                       modem &= ~UARTMODIR_TXRTSPOL;
        }
 
        lpuart32_write(&sport->port, modem, UARTMODIR);