[PATCH 0/2] WK2xxx SPI to UART bridge driver
From: zjzhao
Date: Fri Sep 04 2026 - 03:24:07 EST
This series adds a driver for the WK2xxx SPI to UART bridge ICs
(WK2124, WK2132, WK2168, WK2202 and WK2204) from WKmic (Chengdu Weikai
Microelectronics). Each IC exposes two or four full-duplex UART channels
with 256-byte RX/TX FIFOs through a single SPI slave interface and one
interrupt line.
The driver is a rework of the vendor driver (https://github.com/britus/
wk2xxx) modeled after the NXP sc16is7xx driver. It registers ttyWK0..N
lines (IDA-allocated), uses devm_request_threaded_irq with a kthread
worker for register access, falls back to polling when the interrupt
line is not described, and supports hardware flow control and RS485
where the IC provides them.
Patch 1 adds the driver, the PORT_WK2XXX (124) type and the
SERIAL_WK2XXX Kconfig option. Patch 2 documents the DT binding and
registers the wkmic vendor prefix.
Tested on Raspberry Pi 5 boards (EDATEC IPC1200 with WK2132 on SPI0 and
SBC2300 with WK2204 on SPI1); loopback TX/RX tests pass.
zjzhao (2):
serial: wk2xxx: Add WK2xxx SPI UART driver
dt-bindings: serial: Document WK2xxx SPI UART bindings
.../bindings/serial/wkmic,wk2xxx.yaml | 69 +
.../devicetree/bindings/vendor-prefixes.yaml | 2 +
drivers/tty/serial/Kconfig | 17 +
drivers/tty/serial/Makefile | 1 +
drivers/tty/serial/wk2xxx.c | 1245 +++++++++++++++++
include/uapi/linux/serial_core.h | 3 +
6 files changed, 1337 insertions(+)
create mode 100644 Documentation/devicetree/bindings/serial/wkmic,wk2xxx.yaml
create mode 100644 drivers/tty/serial/wk2xxx.c
base-commit: bc35965f6940a9bf834d54187b6088b8eb09206d
--
2.43.0