Skip to content
  •  's avatar
    dt-bindings: serial: Add common rs485 binding for RTS polarity · 6abe9ea8
      authored
    rs485 allows for robust half-duplex serial communication.  It is often
    implemented by attaching an rs485 transceiver to a UART.  The UART's
    RTS line is wired to the transceiver's Transmit Enable pin and
    determines whether the transceiver is sending or receiving.
    
    Examples for such transceivers are Maxim MAX13451E and TI SN65HVD1781A:
    https://datasheets.maximintegrated.com/en/ds/MAX13450E-MAX13451E.pdf
    http://www.ti.com/lit/ds/symlink/sn65hvd1781a-q1.pdf
    
    
    
    In the devicetree, the transceiver itself is not represented, only the
    UART is.  A few rs485-specific dt-bindings already exist and these go
    into the UART's device node.
    
    This commit adds a binding to set the RTS polarity.  Most (if not all)
    transceivers require the Transmit Enable pin be driven high for sending,
    but in some cases boards may negate the pin and RTS must then be driven
    low.  Consequently the polarity defaults to active high but can be
    inverted with the newly added "rs485-rts-active-low" binding.
    
    Document this binding in rs485.txt and in the two drivers fsl-imx-uart
    and fsl-lpuart that are about to be amended with support for it.
    
    Curiously, the omap_serial driver defaults to active low and already
    supports an "rs485-rts-active-high" binding to invert the polarity.
    This is left unchanged to retain compatibility, but the binding is
    herewith documented.
    
    Cc: Mark Jackson <mpfj@newflow.co.uk>
    Cc: Michał Oleszczyk <oleszczyk.m@gmail.com>
    Cc: Rafael Gago Castano <rgc@hms.se>
    Cc: Sascha Hauer <s.hauer@pengutronix.de>
    Acked-by: default avatarRob Herring <robh@kernel.org>
    Signed-off-by: default avatarLukas Wunner <lukas@wunner.de>
    Acked-by: default avatarUwe Kleine-König <u.kleine-koenig@pengutronix.de>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    6abe9ea8