Serial ports with non connected RTS/CTS
Peter Hurley
peter at hurleysoftware.com
Sat Apr 2 21:36:38 PDT 2016
On 01/27/2016 02:30 AM, Martin Fuzzey wrote:
> Hi all,
>
> currently, at least for 8250 based serial ports using of_serial, there is no way of indicating that the RTS / CTS lines, although supported by the UART, are not actually connected on the board.
>
> This means that userspace needs to know about this and not use the CRTSCTS termios flag (otherwise no data is sent).
>
> This is currently the case for Debian stattach for example (nettools 1.60) which unconditionally uses CRTSCTS (but the busybox version of slattach has a "-F" option that can be used to disable CRTSCTS).
>
> Would it not be better to allow this situation to be described in the device tree?
>
> Such an option already exists for the imx UART (""fsl,uart-has-rtscts")
>
> of_serial already has the "auto-flow-control" DT property but, as stated in the documentation:
> "The driver is allowed to detect support for the capability even without this property."
>
> In the past there was a (since reverted) property "has-hw-flow-control"
> See
> 06aa82e "serial: uart: add hw flow control support configuration"
> a6eec92 " Revert "serial: uart: add hw flow control support configuration"
>
> However that just provided another (redundant) way of *activating* hardware flow control and did not allow it to be disactivated.
>
> Would a new DT property "no-rtscts" to do this be acceptable?
>
> I think it would have to be a negative property to avoid breaking old device trees.
>
> Since there seems to have been some to and fro on this issue I thought it would be a good idea to discuss before writing the patch...
If I understand you correctly here
1) you want a way to describe the lack of CTS and RTS pins, and
2) you want the 8250 driver to mask off CRTSCTS when #1 is true.
Sounds ok to me, but I'm not sure how userspace will respond to
CRTSCTS not sticking. That will need some testing.
Regards,
Peter Hurley
More information about the linux-arm-kernel
mailing list