3 * @author Lunaixsky (lunaxisky@qq.com)
4 * @brief 16550 UART with port mapped IO
8 * @copyright Copyright (c) 2023
11 #include <lunaix/device.h>
12 #include <lunaix/generic/isrm.h>
14 #include <sys/port_io.h>
21 com_regread(struct uart16550* uart, ptr_t regoff)
23 u8_t val = port_rdbyte(uart->base_addr + regoff);
30 com_regwrite(struct uart16550* uart, ptr_t regoff, u32_t val)
32 port_wrbyte(uart->base_addr + regoff, (u8_t)val);
38 uart16x50_pmio_create(ptr_t base)
40 struct uart16550* uart;
42 uart = uart_alloc(base);
43 uart->read_reg = com_regread;
44 uart->write_reg = com_regwrite;
46 if (!uart_testport(uart, 0xe3)) {
51 uart_enable_fifo(uart, UART_FIFO8);