1 
2 /*
3  * Arm SCP/MCP Software
4  * Copyright (c) 2017-2021, Arm Limited and Contributors. All rights reserved.
5  *
6  * SPDX-License-Identifier: BSD-3-Clause
7  */
8 
9 #ifndef MOD_PL011_H
10 #define MOD_PL011_H
11 
12 #include <fwk_id.h>
13 
14 #include <stdint.h>
15 
16 /*!
17  * \addtogroup GroupModules Modules
18  * \{
19  */
20 
21 /*!
22  * \defgroup GroupModulePl011 PL011 Driver
23  *
24  * \brief Device driver module for the Primecell® PL011 UART.
25  *
26  * \{
27  */
28 
29 /*!
30  * \brief PL011 element configuration data.
31  */
32 struct mod_pl011_element_cfg {
33     /*!
34      * \brief Base address of the device registers.
35      */
36     uintptr_t reg_base;
37 
38     /*!
39      * \brief Baud rate in bits per second.
40      */
41     unsigned int baud_rate_bps;
42 
43     /*!
44      * \brief Reference clock in Hertz.
45      */
46     uint64_t clock_rate_hz;
47 
48 #ifdef BUILD_HAS_MOD_CLOCK
49     /*!
50      * \brief Identifier of the clock that this device depends on.
51      *
52      * \note If set to a value other than ::FWK_ID_NONE, this device will not be
53      *      enabled until the element has received confirmation that the clock
54      *      domain is available.
55      */
56     fwk_id_t clock_id;
57 #endif
58 
59 #ifdef BUILD_HAS_MOD_POWER_DOMAIN
60     /*!
61      * \brief Identifier of the power domain that this device depends on.
62      *
63      * \note If set to a value other than ::FWK_ID_NONE, this device will not be
64      *      enabled until the element has received confirmation that the power
65      *      domain is available.
66      */
67     fwk_id_t pd_id;
68 #endif
69 };
70 
71 /*!
72  * \}
73  */
74 
75 /*!
76  * \}
77  */
78 
79 #endif /* MOD_PL011_H */
80