drv_uart.h 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. /*
  2. * Copyright (c) 2006-2021, RT-Thread Development Team
  3. *
  4. * SPDX-License-Identifier: Apache-2.0
  5. *
  6. * Change Logs:
  7. * Date Author Notes
  8. * 2021-05-20 bigmagic first version
  9. */
  10. #ifndef __DRV_UART_H__
  11. #define __DRV_UART_H__
  12. #define UART0_IRQ (10)
  13. #define UART_DEFAULT_BAUDRATE 115200
  14. #define UART_BASE (0x10000000L)
  15. #define RHR 0 // Receive Holding Register (read mode)
  16. #define THR 0 // Transmit Holding Register (write mode)
  17. #define DLL 0 // LSB of Divisor Latch (write mode)
  18. #define IER 1 // Interrupt Enable Register (write mode)
  19. #define DLM 1 // MSB of Divisor Latch (write mode)
  20. #define FCR 2 // FIFO Control Register (write mode)
  21. #define ISR 2 // Interrupt Status Register (read mode)
  22. #define LCR 3 // Line Control Register
  23. #define MCR 4 // Modem Control Register
  24. #define LSR 5 // Line Status Register
  25. #define MSR 6 // Modem Status Register
  26. #define SPR 7 // ScratchPad Register
  27. #define UART_REG(reg) ((volatile uint8_t *)(UART_BASE + reg))
  28. #define LSR_RX_READY (1 << 0)
  29. #define LSR_TX_IDLE (1 << 5)
  30. #define uart_read_reg(reg) (*(UART_REG(reg)))
  31. #define uart_write_reg(reg, v) (*(UART_REG(reg)) = (v))
  32. int rt_hw_uart_init(void);
  33. #endif /* __DRV_UART_H__ */