Linux Serial subsystem development
 help / color / mirror / Atom feed
* [PATCH 0/2] serial: 8250_of: RS-485 on Microchip Core16550
@ 2026-11-03  0:11 Kohei Otsuka via B4 Relay
  2026-11-03  0:11 ` [PATCH 1/2] dt-bindings: serial: 8250: add " Kohei Otsuka via B4 Relay
  2026-11-03  0:11 ` [PATCH 2/2] serial: 8250_of: drop RS-485 RTS on " Kohei Otsuka via B4 Relay
  0 siblings, 2 replies; 5+ messages in thread
From: Kohei Otsuka via B4 Relay @ 2026-11-03  0:11 UTC (permalink / raw)
  To: Greg Kroah-Hartman, Jiri Slaby, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Lubomir Rintel, devicetree
  Cc: linux-kernel, linux-serial, conor.dooley, Kohei Otsuka

Core16550 is a 16550-compatible UART soft IP for Microchip FPGAs. We use
four of them in the fabric of a PolarFire SoC Icicle Kit as RS-485
ports, described as "ns16550a" with linux,rs485-enabled-at-boot-time.
With RS-485 enabled, RTS (the transceiver's driver enable) goes high at
the start of the first transmission and never drops, and the port stops
receiving. Core16550, like the original 16550A, raises no interrupt on
TEMT, so __stop_tx() waits for one forever unless the port has
UART_CAP_NOTEMT, which 8250_of never sets.

Testing, on a PolarFire SoC Icicle Kit with four Core16550 instances
on FIC3 (PCLK 50 MHz), linux-mchp 6.18.17 with this series applied,
115200 8N1, against USB-RS485 (2-wire, half duplex) and USB-RS422
(4-wire) converters:
- All four ports transmit and receive correctly with both converters.
- On RS-485, each port keeps receiving after transmitting, across
  repeated request/response exchanges in both directions.
- Without the series, RTS stays high after the first transmission and
  nothing more is received.

This series was prepared with the help of an AI coding assistant
(Claude, Anthropic): the analysis of __stop_tx(), both patches and
these messages. I reviewed and tested the result and take
responsibility for it.
Link: https://github.com/linux4microchip/meta-mchp/issues/5

Signed-off-by: Kohei Otsuka <kohei@spacemachines.com>
---
Kohei Otsuka (2):
      dt-bindings: serial: 8250: add Microchip Core16550
      serial: 8250_of: drop RS-485 RTS on Microchip Core16550

 Documentation/devicetree/bindings/serial/8250.yaml | 1 +
 drivers/tty/serial/8250/8250_of.c                  | 9 +++++++++
 2 files changed, 10 insertions(+)
---
base-commit: c339f4010dea8b0d754f84ace70cd1b089878ef8
change-id: 20261103-core16550-rs485-505af0ffaeeb

Best regards,
--  
Kohei Otsuka <kohei@spacemachines.com>



^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2026-11-03  0:19 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-11-03  0:11 [PATCH 0/2] serial: 8250_of: RS-485 on Microchip Core16550 Kohei Otsuka via B4 Relay
2026-11-03  0:11 ` [PATCH 1/2] dt-bindings: serial: 8250: add " Kohei Otsuka via B4 Relay
2026-11-03  0:19   ` sashiko-bot
2026-11-03  0:11 ` [PATCH 2/2] serial: 8250_of: drop RS-485 RTS on " Kohei Otsuka via B4 Relay
2026-11-03  0:16   ` sashiko-bot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox