|
@@ -3036,16 +3036,23 @@ void uart_get_rs485_mode(struct device *dev, struct serial_rs485 *rs485conf)
|
|
|
}
|
|
|
|
|
|
/*
|
|
|
- * clear full-duplex and enabled flags to get to a defined state with
|
|
|
- * the two following properties.
|
|
|
+ * Clear full-duplex and enabled flags, set RTS polarity to active high
|
|
|
+ * to get to a defined state with the following properties:
|
|
|
*/
|
|
|
- rs485conf->flags &= ~(SER_RS485_RX_DURING_TX | SER_RS485_ENABLED);
|
|
|
+ rs485conf->flags &= ~(SER_RS485_RX_DURING_TX | SER_RS485_ENABLED |
|
|
|
+ SER_RS485_RTS_AFTER_SEND);
|
|
|
+ rs485conf->flags |= SER_RS485_RTS_ON_SEND;
|
|
|
|
|
|
if (device_property_read_bool(dev, "rs485-rx-during-tx"))
|
|
|
rs485conf->flags |= SER_RS485_RX_DURING_TX;
|
|
|
|
|
|
if (device_property_read_bool(dev, "linux,rs485-enabled-at-boot-time"))
|
|
|
rs485conf->flags |= SER_RS485_ENABLED;
|
|
|
+
|
|
|
+ if (device_property_read_bool(dev, "rs485-rts-active-low")) {
|
|
|
+ rs485conf->flags &= ~SER_RS485_RTS_ON_SEND;
|
|
|
+ rs485conf->flags |= SER_RS485_RTS_AFTER_SEND;
|
|
|
+ }
|
|
|
}
|
|
|
EXPORT_SYMBOL_GPL(uart_get_rs485_mode);
|
|
|
|