Linux kernel 4.14 AXI UART 16550 driver source code
时间: 2024-03-09 21:45:01 浏览: 184
AXI UART 16550 驱动程序的源代码位于 Linux kernel 4.14 中的 drivers/tty/serial/8250/8250_axilinx.c 文件中。以下是该文件的部分源代码,供参考:
```c
/*
* AXI 16550 UART driver
*/
#include <linux/clk.h>
#include <linux/console.h>
#include <linux/delay.h>
#include <linux/interrupt.h>
#include <linux/io.h>
#include <linux/module.h>
#include <linux/serial_core.h>
#include <linux/tty.h>
#include <linux/tty_flip.h>
#include <linux/tty_port.h>
#define UART_LSR_THRE 0x20 /* Transmit-hold-register empty */
#define XUARTPS_CR_STOPBRK 0x00000001 /* Stop transmitter break */
#define XUARTPS_CR_STARTBRK 0x00000002 /* Start transmitter break */
#define XUARTPS_CR_TORST 0x00000008 /* Transmit out-of-band reset */
#define XUARTPS_CR_TX_DIS 0x00000010 /* Transmit disable */
#define XUARTPS_CR_TX_EN 0x00000020 /* Transmit enable */
#define XUARTPS_CR_RX_DIS 0x00000040 /* Receive disable */
#define XUARTPS_CR_RX_EN 0x00000080 /* Receive enable */
/* RS485 support */
#define AXI_RS485_ENABLED (1 << 0)
#define AXI_RS485_RTS_ACTIVE_HIGH (1 << 1)
#define AXI_RS485_RX_DURING_TX (1 << 2)
/* AXI UART 16550 registers */
struct axi_uart16550 {
u32 rxfifo;
u32 txdata;
u32 ctrl;
u32 intr_enable;
u32 intr_status;
u32 baud_rate_gen;
u32 rcv_timeout;
u32 flow_ctrl;
u32 mode;
};
```
以上是 AXI UART 16550 驱动程序的一部分源代码。完整的源代码可以在 Linux kernel 4.14 的源码中找到。如果您需要参考该驱动程序的实现细节,可以查看该文件的完整源代码。
阅读全文