diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/tty/serial/imx.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/tty/serial/imx.c b/drivers/tty/serial/imx.c index 72bc1dbcd055..381a2d79593c 100644 --- a/drivers/tty/serial/imx.c +++ b/drivers/tty/serial/imx.c | |||
@@ -201,6 +201,7 @@ struct imx_port { | |||
201 | unsigned int old_status; | 201 | unsigned int old_status; |
202 | int txirq, rxirq, rtsirq; | 202 | int txirq, rxirq, rtsirq; |
203 | unsigned int have_rtscts:1; | 203 | unsigned int have_rtscts:1; |
204 | unsigned int dte_mode:1; | ||
204 | unsigned int use_irda:1; | 205 | unsigned int use_irda:1; |
205 | unsigned int irda_inv_rx:1; | 206 | unsigned int irda_inv_rx:1; |
206 | unsigned int irda_inv_tx:1; | 207 | unsigned int irda_inv_tx:1; |
@@ -1020,6 +1021,8 @@ imx_set_termios(struct uart_port *port, struct ktermios *termios, | |||
1020 | 1021 | ||
1021 | ufcr = readl(sport->port.membase + UFCR); | 1022 | ufcr = readl(sport->port.membase + UFCR); |
1022 | ufcr = (ufcr & (~UFCR_RFDIV)) | UFCR_RFDIV_REG(div); | 1023 | ufcr = (ufcr & (~UFCR_RFDIV)) | UFCR_RFDIV_REG(div); |
1024 | if (sport->dte_mode) | ||
1025 | ufcr |= UFCR_DCEDTE; | ||
1023 | writel(ufcr, sport->port.membase + UFCR); | 1026 | writel(ufcr, sport->port.membase + UFCR); |
1024 | 1027 | ||
1025 | writel(num, sport->port.membase + UBIR); | 1028 | writel(num, sport->port.membase + UBIR); |
@@ -1444,6 +1447,9 @@ static int serial_imx_probe_dt(struct imx_port *sport, | |||
1444 | if (of_get_property(np, "fsl,irda-mode", NULL)) | 1447 | if (of_get_property(np, "fsl,irda-mode", NULL)) |
1445 | sport->use_irda = 1; | 1448 | sport->use_irda = 1; |
1446 | 1449 | ||
1450 | if (of_get_property(np, "fsl,dte-mode", NULL)) | ||
1451 | sport->dte_mode = 1; | ||
1452 | |||
1447 | sport->devdata = of_id->data; | 1453 | sport->devdata = of_id->data; |
1448 | 1454 | ||
1449 | return 0; | 1455 | return 0; |