hello choom.dongmued,
it seems RTS signal did not pulling down.
could you please try below to force the pin as low state.
for example,
--- a/drivers/tty/serial/serial-tegra.c
+++ b/drivers/tty/serial/serial-tegra.c
@@ -56,6 +56,7 @@
#define TEGRA_UART_IER_EORD 0x20
#define TEGRA_UART_MCR_RTS_EN 0x40
#define TEGRA_UART_MCR_CTS_EN 0x20
+#define TEGRA_UART_MCR_FORCE_RTS_LOW 0x02
#define TEGRA_UART_LSR_ANY (UART_LSR_OE | UART_LSR_BI | \
UART_LSR_PE | UART_LSR_FE)
#define TEGRA_UART_IRDA_CSR 0x08
@@ -1545,6 +1545,8 @@ static void tegra_uart_set_termios(struct uart_port *u,
tty_termios_encode_baud_rate(termios, baud, baud);
spin_lock_irqsave(&u->lock, flags);
+ tup->mcr_shadow &= ~TEGRA_UART_MCR_FORCE_RTS_LOW;
/* Flow control */
if (termios->c_cflag & CRTSCTS) {
tup->mcr_shadow |= TEGRA_UART_MCR_CTS_EN;
@@ -1896,6 +1898,11 @@ static int tegra_uart_probe(struct platform_device *pdev)
return ret;
}
+ clk_prepare_enable(tup->uart_clk);
+ tup->mcr_shadow = TEGRA_UART_MCR_FORCE_RTS_LOW;
+ tegra_uart_write(tup, tup->mcr_shadow, UART_MCR);
+ clk_disable_unprepare(tup->uart_clk);
+
if (tup->enable_rx_buffer_throttle) {
setup_timer(&tup->timer, tegra_uart_rx_buffer_throttle_timer,