drv_usart.h 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  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. #include "fpl011.h"
  18. #include "fpl011_hw.h"
  19. #define RTOS_UART_ISR_OEIM_MASK FPL011IMSC_OEIM /* Overrun error interrupt mask. */
  20. #define RTOS_UART_ISR_BEIM_MASK FPL011IMSC_BEIM /* Break error interrupt mask */
  21. #define RTOS_UART_ISR_PEIM_MASK FPL011IMSC_PEIM /* Parity error interrupt mask. */
  22. #define RTOS_UART_ISR_FEIM_MASK FPL011IMSC_FEIM /* Framing error interrupt mask. */
  23. #define RTOS_UART_ISR_RTIM_MASK FPL011IMSC_RTIM /* Receive timeout interrupt mask. */
  24. #define RTOS_UART_ISR_TXIM_MASK FPL011IMSC_TXIM /* Transmit interrupt mask. */
  25. #define RTOS_UART_ISR_RXIM_MASK FPL011IMSC_RXIM /* Receive interrupt mask. */
  26. typedef struct
  27. {
  28. u32 uart_instance; /* select uart global object */
  29. u32 isr_priority; /* irq Priority */
  30. u32 isr_event_mask; /* followed by RTOS_UART_ISR_XX */
  31. u32 uart_baudrate;
  32. } FtRtthreadUartConfig;
  33. struct drv_usart
  34. {
  35. const char *name;
  36. FPl011 *handle;
  37. FtRtthreadUartConfig config;
  38. struct rt_serial_device serial;
  39. };
  40. #endif // !