1 /*
2  * Arm SCP/MCP Software
3  * Copyright (c) 2018-2021, Arm Limited and Contributors. All rights reserved.
4  *
5  * SPDX-License-Identifier: BSD-3-Clause
6  */
7 
8 #ifndef MOD_F_UART3_H
9 #define MOD_F_UART3_H
10 
11 #include <stdbool.h>
12 #include <stdint.h>
13 
14 /*!
15  * \addtogroup GroupSYNQUACERModule SYNQUACER Product Modules
16  * \{
17  */
18 
19 /*!
20  * \defgroup GroupF_UART3 F_UART3 Driver
21  *
22  * \brief SynQuacer F_UART3 device driver.
23  *
24  * \details This module implements a device driver for the F_UART3
25  *
26  * \{
27  */
28 
29 /*!
30  * \brief Support baud rates.
31  */
32 enum mod_f_uart3_baud_rate {
33     MOD_F_UART3_BAUD_RATE_9600, /*!< 9600 bits per second */
34     MOD_F_UART3_BAUD_RATE_19200, /*!< 19200 bits per second */
35     MOD_F_UART3_BAUD_RATE_38400, /*!< 38400 bits per second */
36     MOD_F_UART3_BAUD_RATE_57600, /*!< 57600 bits per second */
37     MOD_F_UART3_BAUD_RATE_115200, /*!< 115200 bits per second */
38     MOD_F_UART3_BAUD_RATE_230400, /*!< 230400 bits per second */
39 };
40 
41 /*!
42  * \brief F_UART3 device configuration data.
43  */
44 struct mod_f_uart3_element_cfg {
45     /*! Base address of the device registers */
46     uintptr_t reg_base;
47 
48     /*! Base address of the DivLatch access device registers */
49     uintptr_t dla_reg_base;
50 
51     /*! Parity enable */
52     bool parity_enable_flag;
53 
54     /*! Even parity select */
55     bool even_parity_flag;
56 
57     /*! Divider latch table index */
58     enum mod_f_uart3_baud_rate baud_rate;
59 };
60 
61 /*!
62  * \}
63  */
64 
65 /*!
66  * \}
67  */
68 
69 #endif /* MOD_F_UART3_H */
70