Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

dt-bindings: serial: imx: clarify rs485 support usage

The i.MX UART peripheral uses the RST_B signal as input, and CTS_B as
output. This is just like the DCE role in RS-232. This is true
regardless of the "DTE mode" setting of this peripheral.

As a result, rs485 support hardware must use the CTS_B signal to control
the RS-485 transceiver. This is in contrast to generic rs485 kernel
code, documentation, and DT property names that consistently refer to
the RTS as transceiver control signal.

Add a note in the DT binding document about that, to reduce the
confusion somewhat.

Signed-off-by: Baruch Siach <baruch@tkos.co.il>
Acked-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

authored by

Baruch Siach and committed by
Greg Kroah-Hartman
e51e597d 728e74a4

+5 -1
+5 -1
Documentation/devicetree/bindings/serial/fsl-imx-uart.txt
··· 9 9 - fsl,dte-mode : Indicate the uart works in DTE mode. The uart works 10 10 in DCE mode by default. 11 11 - rs485-rts-delay, rs485-rts-active-low, rs485-rx-during-tx, 12 - linux,rs485-enabled-at-boot-time: see rs485.txt 12 + linux,rs485-enabled-at-boot-time: see rs485.txt. Note that for RS485 13 + you must enable either the "uart-has-rtscts" or the "rts-gpios" 14 + properties. In case you use "uart-has-rtscts" the signal that controls 15 + the transceiver is actually CTS_B, not RTS_B. CTS_B is always output, 16 + and RTS_B is input, regardless of dte-mode. 13 17 14 18 Please check Documentation/devicetree/bindings/serial/serial.txt 15 19 for the complete list of generic properties.