versal uart Driver

Introduction

The UART controller is a full-duplex asynchronous receiver and transmitter that supports a wide range of programmable baud rates. The server-based system applications (SBSA) functionality is defined by the Arm® architecture.

HW IP Features


Features supported in driver

Missing Features, Known Issues and Limitations


Kernel Configuration

To enable the uartlite driver in the linux kernel you either have to integrate it or build it as kernel module (.ko). You can enable it with:

make menuconfig
---> Device Drivers ---> Character devices ---> Serial drivers ---> ARM AMBA PL010 serial port support

Or you can do this in the .config file with either of the following lines:

# integrate into the kernel
SERIAL_AMBA_PL010=y
# build as loadable module
SERIAL_AMBA_PL010=m

Devicetree


Here's how the devicetree entry could look like.

https://www.kernel.org/doc/Documentation/devicetree/bindings/serial/pl011.yaml


  serial@80120000 {
      compatible = "arm,pl011", "arm,primecell";
      reg = <0x80120000 0x1000>;
      interrupts = <0 11 4>;
      dmas = <&dma 13 0 0x2>, <&dma 13 0 0x0>;
      dma-names = "rx", "tx";
      clocks = <&foo_clk>, <&bar_clk>;
      clock-names = "uartclk", "apb_pclk";
  };


Mainline Status

This driver is currently in sync with mainline kernel driver.

Change Log

2023.2

2023.1

 Summary:

Commits:

9bb13b2 - serial: amba-pl011: move header content to .c

ebe2cf7 - serial: pl011: Fill in rs485_supported

b9759cb - serial: pl011: Remove serial_rs485 sanitization

ae50bb2 - serial: take termios_rwsem for ->rs485_config() & pass termios as param

211565b - serial: pl011: UPSTAT_AUTORTS requires .throttle/unthrottle

0139da5 - serial: Embed rs485_supported to uart_port

400282e - serial: pl011: Add reg-io-width parameters

bec5b81 - serial: Make ->set_termios() old ktermios const

2022.2

2022.1

 Summary:

Commits:

8d47923 - serial: amba-pl011: add RS485 support

2020.2

2021.1

2021.2

Related Links