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