tty: serial: fsl_lpuart: use UARTMODIR register bits for lpuart32 platform
[ Upstream commit d57d56e4dddfb5c92cd81abf8922055bf0fb85a4 ] 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> Stable-dep-of: f5cb528d6441 ("tty: serial: fsl_lpuart: disable transmitter before changing RS485 related registers") Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
0628ee3bfb
commit
a824c44e4b
@ -1394,12 +1394,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.
|
||||
@ -1408,9 +1408,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);
|
||||
|
Loading…
Reference in New Issue
Block a user