|
@@ -201,6 +201,7 @@ struct imx_port {
|
|
|
unsigned int old_status;
|
|
|
int txirq, rxirq, rtsirq;
|
|
|
unsigned int have_rtscts:1;
|
|
|
+ unsigned int dte_mode:1;
|
|
|
unsigned int use_irda:1;
|
|
|
unsigned int irda_inv_rx:1;
|
|
|
unsigned int irda_inv_tx:1;
|
|
@@ -1020,6 +1021,8 @@ imx_set_termios(struct uart_port *port, struct ktermios *termios,
|
|
|
|
|
|
ufcr = readl(sport->port.membase + UFCR);
|
|
|
ufcr = (ufcr & (~UFCR_RFDIV)) | UFCR_RFDIV_REG(div);
|
|
|
+ if (sport->dte_mode)
|
|
|
+ ufcr |= UFCR_DCEDTE;
|
|
|
writel(ufcr, sport->port.membase + UFCR);
|
|
|
|
|
|
writel(num, sport->port.membase + UBIR);
|
|
@@ -1444,6 +1447,9 @@ static int serial_imx_probe_dt(struct imx_port *sport,
|
|
|
if (of_get_property(np, "fsl,irda-mode", NULL))
|
|
|
sport->use_irda = 1;
|
|
|
|
|
|
+ if (of_get_property(np, "fsl,dte-mode", NULL))
|
|
|
+ sport->dte_mode = 1;
|
|
|
+
|
|
|
sport->devdata = of_id->data;
|
|
|
|
|
|
return 0;
|