[PATCH 0/3] serial: 8250_dw: Allwinner A733 UART support
From: Vinicius Pedrosa
Date: Mon Oct 05 2026 - 13:41:17 EST
I'm bringing up mainline on the Radxa Cubie A7Z (Allwinner A733). The
console worked until the first termios change from userspace, then
stopped taking interrupts.
Patch 1 fixes that in the generic driver: with a DLF register present,
dw8250_setup_port() replaces the BUSY-safe divisor hook, and the LCR
retry path then restores IER into DLH. It's tagged for stable.
Patches 2-3 add an A733 compatible with two quirks: no clk_set_rate()
around termios (the baud clock is a fixed bus gate), and no DLF probe
(offset 0xc0 is an RS485 control register).
Tested on a Cubie A7Z, with local DT and clock changes that aren't part
of this series. The console worked in both directions and a termios
stress loop ran without stalls or corrupted bytes. The no-DLF check in
patch 3 was reworked after that run (an if block in place of a goto),
and this exact revision hasn't been booted yet.
The A733 DTSI isn't in linux-next yet. Enzo Adriano's posted version
uses plain "snps,dw-apb-uart" for uart0, so it would need the new
compatible once this lands.
Based on tty-next.
Vinicius Pedrosa (3):
serial: 8250_dw: Keep the BUSY-safe divisor hook when DLF is present
dt-bindings: serial: snps-dw-apb-uart: Add Allwinner A733
serial: 8250_dw: Add Allwinner A733 UART
.../bindings/serial/snps-dw-apb-uart.yaml | 1 +
drivers/tty/serial/8250/8250_dw.c | 25 ++++++++++++++++++-
drivers/tty/serial/8250/8250_dwlib.c | 22 ++++++++--------
drivers/tty/serial/8250/8250_dwlib.h | 1 +
4 files changed, 38 insertions(+), 11 deletions(-)
base-commit: 36844ea19656fb41278799ef3d5cd52120d89149
--
2.43.0