From: Christoph Niedermaier <cniedermaier@dh-electronics.com>
To: Lukas Wunner <lukas@wunner.de>
Cc: "Crescent CY Hsieh" <crescentcy.hsieh@moxa.com>,
"Andy Shevchenko" <andriy.shevchenko@linux.intel.com>,
"Lino Sanfilippo" <LinoSanfilippo@gmx.de>,
"Rasmus Villemoes" <linux@rasmusvillemoes.dk>,
"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
"Jiri Slaby" <jirislaby@kernel.org>,
"Rob Herring" <robh+dt@kernel.org>,
"Krzysztof Kozlowski" <krzysztof.kozlowski+dt@linaro.org>,
"Conor Dooley" <conor+dt@kernel.org>,
"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"linux-serial@vger.kernel.org" <linux-serial@vger.kernel.org>,
"Ilpo Järvinen" <ilpo.jarvinen@linux.intel.com>,
"brenda.streiff@ni.com" <brenda.streiff@ni.com>,
"Tomas Paukrt" <tomaspaukrt@email.cz>
Subject: RE: [PATCH 1/2] dt-bindings: serial: rs485: add rs485-mux-gpios binding
Date: Sat, 23 Dec 2023 12:49:01 +0000 [thread overview]
Message-ID: <f41f5ddcb52140b6a579043a5abce751@dh-electronics.com> (raw)
In-Reply-To: <20231221155305.GA13673@wunner.de>
From: Lukas Wunner [mailto:lukas@wunner.de]
Sent: Thursday, December 21, 2023 4:53 PM
>
> On Thu, Dec 14, 2023 at 01:41:47PM +0000, Christoph Niedermaier wrote:
>> I will summarize the current situation from my point of view, maybe it helps:
>>
>> RS-232:
>> - Full Duplex Point-to-Point connection
>> - No transceiver control with RTS
>> - No termination
>> - No extra struct in use
>>
>> RS-422:
>> - Full Duplex Point-to-Point connection
>> - No transceiver control with RTS needed
>> - Termination possible
>> - Extra struct serial_rs485 needed if termination is used
>> => RS-422 can be used in RS-232 operation, but if a termination should be
>> switchable the RS485 flag has to be enabled. But then also transceiver
>> control will be enabled. Not a very satisfying situation.
>
> Well why don't we just allow enabling or disabling RS-485 termination
> independently from the SER_RS485_ENABLED bit in struct serial_rs485?
>
> Just let the user issue a TIOCSRS485 ioctl to toggle termination even
> if in RS-232 mode and use that mode for RS-422.
>
> Looks like the simplest solution to me.
Sounds not bad. The termination should only depend on whether the GPIO is
given or not.
Irrespective of this, I think the Linos idea of an RS-422 mode is not bad.
This allows you to take care of special features that were previously
overlooked. For example, hardware flow control can be switched off so that
this does not cause any problems.
>> RS-485 (2-wire) very common:
>> - Half Duplex RS-485 bus
>> - Transceiver control with RTS is needed
>> - Termination possible
>> - Extra struct serial_rs485 is needed
>> => RS-485 has to be enabled and configured:
>> - Set SER_RS485_ENABLED
>> - Set SER_RS485_RTS_ON_SEND or SER_RS485_RTS_AFTER_SEND
>> - Set/clear SER_RS485_RX_DURING_TX depending on whether
>> the receiver path should be on or off during sending.
>> If it's set it allows to monitor the sending on the bus
>> and detect whether another bus device is transmitting
>> at the same time.
>> - Set/clear SER_RS485_TERMINATE_BUS for bus termination.
>>
>> RS-485 (4-wire) little used:
>> - Full Duplex RS-485 bus
>> - Transceiver control with RTS is needed
>> - Termination possible
>> - Extra struct serial_rs485 is needed
>> => RS-485 has to be enabled and configured:
>> - Set SER_RS485_ENABLED
>> - Set SER_RS485_RTS_ON_SEND or SER_RS485_RTS_AFTER_SEND
>> - Set SER_RS485_RX_DURING_TX, as the receiver should always
>> be enabled independently of TX, because TX and RX are
>> separated from each other by their own wires.
>> - Set/clear SER_RS485_TERMINATE_BUS for bus termination.
>
> Thanks for that overview, I found it very helpful.
>
> One small addendum: Hardware flow control. Only possible with
> RS-232. Doesn't work in any of the other modes, right?
You are right I forgot to mention it.
Regards and Merry Christmas
Christoph
next prev parent reply other threads:[~2023-12-23 13:00 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-11-20 15:10 [PATCH 0/2] serial: add rs485-mux-gpio dt binding and support Rasmus Villemoes
2023-11-20 15:10 ` [PATCH 1/2] dt-bindings: serial: rs485: add rs485-mux-gpios binding Rasmus Villemoes
2023-11-21 7:52 ` Krzysztof Kozlowski
2023-11-21 8:27 ` Rasmus Villemoes
2023-11-21 8:34 ` Krzysztof Kozlowski
2023-11-21 9:28 ` Rasmus Villemoes
2023-11-22 18:00 ` Krzysztof Kozlowski
2023-11-22 14:53 ` Lukas Wunner
2023-11-23 10:07 ` Rasmus Villemoes
2023-11-23 10:38 ` Lukas Wunner
2023-11-23 13:48 ` Rasmus Villemoes
2023-11-25 23:40 ` Lino Sanfilippo
2023-11-27 12:14 ` Christoph Niedermaier
2023-12-06 15:42 ` Lino Sanfilippo
2023-12-07 12:35 ` Andy Shevchenko
2023-12-09 11:24 ` Lino Sanfilippo
2023-12-09 11:47 ` Lino Sanfilippo
2023-12-11 13:07 ` Andy Shevchenko
2023-12-14 8:52 ` Lino Sanfilippo
2023-12-14 10:24 ` Crescent CY Hsieh
2023-12-14 13:41 ` Christoph Niedermaier
2023-12-14 14:04 ` Lino Sanfilippo
2023-12-14 14:50 ` Christoph Niedermaier
2023-12-15 22:13 ` Lino Sanfilippo
2023-12-18 9:08 ` Christoph Niedermaier
2023-12-21 15:53 ` Lukas Wunner
2023-12-23 12:49 ` Christoph Niedermaier [this message]
2023-12-23 13:40 ` Lino Sanfilippo
2023-12-24 10:11 ` Christoph Niedermaier
2023-12-28 23:25 ` Lukas Wunner
2023-11-20 15:10 ` [PATCH 2/2] serial: core: implement support for rs485-mux-gpios Rasmus Villemoes
2023-11-20 23:28 ` Lino Sanfilippo
2023-11-21 10:49 ` Dan Carpenter
2023-11-22 15:10 ` Lukas Wunner
2023-12-04 5:00 ` Dan Carpenter
2023-11-22 14:57 ` [PATCH 0/2] serial: add rs485-mux-gpio dt binding and support Andy Shevchenko
-- strict thread matches above, loose matches on Subject: below --
2023-12-27 17:40 [PATCH 1/2] dt-bindings: serial: rs485: add rs485-mux-gpios binding Andy Shevchenko
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=f41f5ddcb52140b6a579043a5abce751@dh-electronics.com \
--to=cniedermaier@dh-electronics.com \
--cc=LinoSanfilippo@gmx.de \
--cc=andriy.shevchenko@linux.intel.com \
--cc=brenda.streiff@ni.com \
--cc=conor+dt@kernel.org \
--cc=crescentcy.hsieh@moxa.com \
--cc=devicetree@vger.kernel.org \
--cc=gregkh@linuxfoundation.org \
--cc=ilpo.jarvinen@linux.intel.com \
--cc=jirislaby@kernel.org \
--cc=krzysztof.kozlowski+dt@linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-serial@vger.kernel.org \
--cc=linux@rasmusvillemoes.dk \
--cc=lukas@wunner.de \
--cc=robh+dt@kernel.org \
--cc=tomaspaukrt@email.cz \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox