| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- // See LICENSE for license details.
- #ifndef _EVALSOC_UART_H
- #define _EVALSOC_UART_H
- #ifdef __cplusplus
- extern "C" {
- #endif
- /* Register offsets */
- #define UART_REG_TXFIFO 0x00
- #define UART_REG_RXFIFO 0x04
- #define UART_REG_TXCTRL 0x08
- #define UART_REG_RXCTRL 0x0c
- #define UART_REG_IE 0x10
- #define UART_REG_IP 0x14
- #define UART_REG_DIV 0x18
- /* TXCTRL register */
- #define UART_TXEN 0x1
- #define UART_TXWM(x) (((x) & 0xffff) << 16)
- /* RXCTRL register */
- #define UART_RXEN 0x1
- #define UART_RXWM(x) (((x) & 0xffff) << 16)
- /* IP register */
- #define UART_IP_TXWM 0x1
- #define UART_IP_RXWM 0x2
- #define UART_TXFIFO_FULL (1<<31)
- #define UART_RXFIFO_EMPTY (1<<31)
- #define UART_TXCTRL_TXCNT_OFS (16)
- #define UART_TXCTRL_TXCNT_MASK (0x1F << UART_TXCTRL_TXCNT_OFS)
- #define UART_TXCTRL_TXEN_OFS (0)
- #define UART_TXCTRL_TXEN_MASK (0x1 << UART_TXCTRL_TXEN_OFS)
- #define UART_TXCTRL_NSTOP_OFS (1)
- #define UART_TXCTRL_NSTOP_MASK (0x3 << UART_TXCTRL_NSTOP_OFS)
- #define UART_RXCTRL_RXCNT_OFS (16)
- #define UART_RXCTRL_RXCNT_MASK (0x1F << UART_RXCTRL_RXCNT_OFS)
- #define UART_RXCTRL_RXEN_OFS (0)
- #define UART_RXCTRL_RXEN_MASK (0x1 << UART_RXCTRL_RXEN_OFS)
- #define UART_IE_TXIE_OFS (0)
- #define UART_IE_TXIE_MASK (0x1 << UART_IE_TXIE_OFS)
- #define UART_IE_RXIE_OFS (1)
- #define UART_IE_RXIE_MASK (0x1 << UART_IE_RXIE_OFS)
- #define UART_IP_TXIP_OFS (0)
- #define UART_IP_TXIP_MASK (0x1 << UART_IP_TXIP_OFS)
- #define UART_IP_RXIP_OFS (1)
- #define UART_IP_RXIP_MASK (0x1 << UART_IP_RXIP_OFS)
- typedef enum uart_stop_bit {
- UART_STOP_BIT_1 = 0,
- UART_STOP_BIT_2 = 1
- } UART_STOP_BIT;
- int32_t uart_init(UART_TypeDef* uart, uint32_t baudrate);
- int32_t uart_config_stopbit(UART_TypeDef* uart, UART_STOP_BIT stopbit);
- int32_t uart_write(UART_TypeDef* uart, uint8_t val);
- uint8_t uart_read(UART_TypeDef* uart);
- int32_t uart_set_tx_watermark(UART_TypeDef* uart, uint32_t watermark);
- int32_t uart_enable_txint(UART_TypeDef* uart);
- int32_t uart_disable_txint(UART_TypeDef* uart);
- int32_t uart_set_rx_watermark(UART_TypeDef* uart, uint32_t watermark);
- int32_t uart_enable_rxint(UART_TypeDef* uart);
- int32_t uart_disable_rxint(UART_TypeDef* uart);
- int32_t uart_get_status(UART_TypeDef* uart);
- int32_t uart_clear_status(UART_TypeDef* uart, uint32_t mask);
- #ifdef __cplusplus
- }
- #endif
- #endif /* _EVALSOC_UART_H */
|