|
@@ -205,6 +205,7 @@ struct imx_port {
|
|
|
struct timer_list timer;
|
|
struct timer_list timer;
|
|
|
unsigned int old_status;
|
|
unsigned int old_status;
|
|
|
unsigned int have_rtscts:1;
|
|
unsigned int have_rtscts:1;
|
|
|
|
|
+ unsigned int have_rtsgpio:1;
|
|
|
unsigned int dte_mode:1;
|
|
unsigned int dte_mode:1;
|
|
|
unsigned int irda_inv_rx:1;
|
|
unsigned int irda_inv_rx:1;
|
|
|
unsigned int irda_inv_tx:1;
|
|
unsigned int irda_inv_tx:1;
|
|
@@ -1725,7 +1726,7 @@ static int imx_rs485_config(struct uart_port *port,
|
|
|
rs485conf->delay_rts_after_send = 0;
|
|
rs485conf->delay_rts_after_send = 0;
|
|
|
|
|
|
|
|
/* RTS is required to control the transmitter */
|
|
/* RTS is required to control the transmitter */
|
|
|
- if (!sport->have_rtscts)
|
|
|
|
|
|
|
+ if (!sport->have_rtscts && !sport->have_rtsgpio)
|
|
|
rs485conf->flags &= ~SER_RS485_ENABLED;
|
|
rs485conf->flags &= ~SER_RS485_ENABLED;
|
|
|
|
|
|
|
|
if (rs485conf->flags & SER_RS485_ENABLED) {
|
|
if (rs485conf->flags & SER_RS485_ENABLED) {
|
|
@@ -2048,6 +2049,9 @@ static int serial_imx_probe_dt(struct imx_port *sport,
|
|
|
if (of_get_property(np, "fsl,dte-mode", NULL))
|
|
if (of_get_property(np, "fsl,dte-mode", NULL))
|
|
|
sport->dte_mode = 1;
|
|
sport->dte_mode = 1;
|
|
|
|
|
|
|
|
|
|
+ if (of_get_property(np, "rts-gpios", NULL))
|
|
|
|
|
+ sport->have_rtsgpio = 1;
|
|
|
|
|
+
|
|
|
return 0;
|
|
return 0;
|
|
|
}
|
|
}
|
|
|
#else
|
|
#else
|