[PATCH v2 tty-next 0/2] serial: Add driver for National Instruments UARTs

Brenda Streiff
2023-04-10T21:13:12Z

This patch series adds a driver for the 16550-like UARTs on National
Instruments (NI) embedded controller hardware.

These UARTs have an interface that is compatble with the TL16C550C (for
which we build on top of 8250_core) but also has extra registers for
the embedded RS-232/RS-485 tranceiver control circuitry.

Changes from v1 -> v2:
- Schema fixes:
- Fix schema to now pass "make DT_CHECKER_FLAGS=-m dt_binding_check"
- Rename unprefixed "transceiver" to "ni,serial-port-mode" with a
description. Describing this as a "mode" rather than a "transceiver"
seems more semantically correct in comparison to other DTs; other
schemas with a "transceiver" property (isp1301, lpc32xx-udc) have
phandle values, which is not the case here.
- Driver fixes:
- replace C99 integer types with kernel types
- reverse christmas tree
- stuff PMR mode/cap masks into locals to avoid repetition
- wrap ACPI match table in #ifdef CONFIG_ACPI to avoid build error on
non-ACPI platforms
- NI 16550s are only on x86 and Zynq-7000 NI devices, so constrain the
Kconfig "depends" to only present it as an option to users on those
architectures, to prevent it from being needlessly built on platforms
that would not possibly have them.
- document module name
- add check for "ni,serial-port-mode" property; "transceiver" remains
for sake of compatibility with _DSD ACPI objects for NI controller
BIOSes currently in-field (but also DSD-properties-rules.rst says
that _DSD properties don't have to be identical to DT bindings.)

Brenda Streiff (2):
dt-bindings: serial: ni,ni16650: add bindings
serial: 8250: add driver for NI UARTs

.../bindings/serial/ni,ni16550.yaml | 51 ++
MAINTAINERS | 7 +
drivers/tty/serial/8250/8250_ni.c | 454 ++++++++++++++++++
drivers/tty/serial/8250/Kconfig | 13 +
drivers/tty/serial/8250/Makefile | 1 +
5 files changed, 526 insertions(+)
create mode 100644 Documentation/devicetree/bindings/serial/ni,ni16550.yaml
create mode 100644 drivers/tty/serial/8250/8250_ni.c

--
2.30.2