16c95x Serial Port Driver May 2026

If your request is specifically regarding the software implementation of the driver in a Linux environment, you should refer to the kernel documentation rather than a white paper.

Title: Serial Drivers Source: Linux Kernel Documentation (Documentation/driver-api/serial/driver.rst) 16c95x serial port driver

The XR16C95x is typically supported under the standard 8250 driver framework in Linux. If your request is specifically regarding the software

Application (getty, custom app)
         |
    TTY Layer
         |
   Line Discipline
         |
  serial_core (uart_ops)
         |
 16C95x Driver  <-- Our focus
         |
    UART Hardware

The 16C95x driver implements the struct uart_ops callbacks: .startup(), .shutdown(), .start_tx(), .stop_rx(), .set_termios(), and .tx_empty(). These features shift the driver’s bottleneck from I/O

Before examining the driver, one must understand the hardware enhancements over the 16550:

These features shift the driver’s bottleneck from I/O latency to memory bandwidth and interrupt management.

The 16C95x typically interfaces with the host system via a parallel bus (ISA/PCI local bus) and appears to the system as a set of I/O ports or memory-mapped registers.