drv_usart.h 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. /*
  2. * Copyright (c) 2006-2021, RT-Thread Development Team
  3. *
  4. * SPDX-License-Identifier: Apache-2.0
  5. *
  6. * Email: opensource_embedded@phytium.com.cn
  7. *
  8. * Change Logs:
  9. * Date Author Notes
  10. * 2022-10-26 huanghe first commit
  11. * 2023-04-27 huanghe support RT-Smart
  12. */
  13. #ifndef __DRV_USART_H__
  14. #define __DRV_USART_H__
  15. #include <rtthread.h>
  16. #include "rtdevice.h"
  17. #ifdef BSP_USING_UART
  18. #include "fpl011.h"
  19. #include "fpl011_hw.h"
  20. #define RTOS_UART_ISR_OEIM_MASK FPL011IMSC_OEIM /* Overrun error interrupt mask. */
  21. #define RTOS_UART_ISR_BEIM_MASK FPL011IMSC_BEIM /* Break error interrupt mask */
  22. #define RTOS_UART_ISR_PEIM_MASK FPL011IMSC_PEIM /* Parity error interrupt mask. */
  23. #define RTOS_UART_ISR_FEIM_MASK FPL011IMSC_FEIM /* Framing error interrupt mask. */
  24. #define RTOS_UART_ISR_RTIM_MASK FPL011IMSC_RTIM /* Receive timeout interrupt mask. */
  25. #define RTOS_UART_ISR_TXIM_MASK FPL011IMSC_TXIM /* Transmit interrupt mask. */
  26. #define RTOS_UART_ISR_RXIM_MASK FPL011IMSC_RXIM /* Receive interrupt mask. */
  27. typedef struct
  28. {
  29. u32 uart_instance; /* select uart global object */
  30. u32 isr_priority; /* irq Priority */
  31. u32 isr_event_mask; /* followed by RTOS_UART_ISR_XX */
  32. u32 uart_baudrate;
  33. } FtFreertosUartConfig;
  34. struct drv_usart
  35. {
  36. FPl011 *handle;
  37. FtFreertosUartConfig config;
  38. struct rt_serial_device serial;
  39. };
  40. #endif // !
  41. #endif