23 #define TXDATA_FULL BIT(31)
24 #define RXDATA_EMPTY BIT(31)
25 #define TXCTRL_TXEN BIT(0)
26 #define TXCTRL_NSTOP_SHIFT 1
27 #define TXCTRL_NSTOP(x) (((x)-1) << TXCTRL_NSTOP_SHIFT)
28 #define TXCTRL_TXCNT_SHIFT 16
29 #define TXCTRL_TXCNT(x) ((x) << TXCTRL_TXCNT_SHIFT)
30 #define RXCTRL_RXEN BIT(0)
31 #define RXCTRL_RXCNT_SHIFT 16
32 #define RXCTRL_RXCNT(x) ((x) << RXCTRL_RXCNT_SHIFT)
33 #define IP_TXWM BIT(0)
34 #define IP_RXWM BIT(1)
static void write32(void *addr, uint32_t val)
static uint32_t read32(const void *addr)
unsigned int get_uart_baudrate(void)
unsigned int uart_baudrate_divisor(unsigned int baudrate, unsigned int refclk, unsigned int oversample)
static void * uart_platform_baseptr(unsigned int idx)
unsigned int uart_platform_refclk(void)
void uart_init(unsigned int idx)
static bool uart_can_tx(struct sifive_uart_registers *regs)
void uart_tx_flush(unsigned int idx)
unsigned int uart_input_clock_divider(void)
unsigned char uart_rx_byte(unsigned int idx)
static void sifive_uart_init(struct sifive_uart_registers *regs, int div)
struct sifive_uart_registers __packed
void uart_fill_lb(void *data)
void uart_tx_byte(unsigned int idx, unsigned char data)