summaryrefslogtreecommitdiff
path: root/drivers/tty/serial/fsl_lpuart.c
diff options
context:
space:
mode:
authorFugang Duan <fugang.duan@nxp.com>2019-09-11 16:23:25 +0800
committerDong Aisheng <aisheng.dong@nxp.com>2019-11-25 15:45:24 +0800
commit12ad8eef8490f897b674c16a96384da9789fd1f9 (patch)
tree5aa7c8b58b8211b488a11145273d18087d1d5d31 /drivers/tty/serial/fsl_lpuart.c
parente085dff6cb6e6d141c421ea2428ed9c72e2203d1 (diff)
tty: serial: fsl_lpuart: enable loopback mode
Enable lpuart32 loopback mode. Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
Diffstat (limited to 'drivers/tty/serial/fsl_lpuart.c')
-rw-r--r--drivers/tty/serial/fsl_lpuart.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/tty/serial/fsl_lpuart.c b/drivers/tty/serial/fsl_lpuart.c
index 826827f725e7..b966e989ac2d 100644
--- a/drivers/tty/serial/fsl_lpuart.c
+++ b/drivers/tty/serial/fsl_lpuart.c
@@ -1463,6 +1463,14 @@ static void lpuart32_set_mctrl(struct uart_port *port, unsigned int mctrl)
temp |= UARTMODIR_TXCTSE;
lpuart32_write(port, temp, UARTMODIR);
+
+ temp = lpuart32_read(port, UARTCTRL);
+ if (mctrl & TIOCM_LOOP)
+ temp |= UARTCTRL_LOOPS;
+ else
+ temp &= ~UARTCTRL_LOOPS;
+
+ lpuart32_write(port, temp, UARTCTRL);
}
static void lpuart_break_ctl(struct uart_port *port, int break_state)