1 /****************************************************************************** 2 * Filename: setup.h 3 * Revised: 2018-10-24 11:23:04 +0200 (Wed, 24 Oct 2018) 4 * Revision: 52993 5 * 6 * Description: Prototypes and defines for the setup API. 7 * 8 * Copyright (c) 2015 - 2020, Texas Instruments Incorporated 9 * All rights reserved. 10 * 11 * Redistribution and use in source and binary forms, with or without 12 * modification, are permitted provided that the following conditions are met: 13 * 14 * 1) Redistributions of source code must retain the above copyright notice, 15 * this list of conditions and the following disclaimer. 16 * 17 * 2) Redistributions in binary form must reproduce the above copyright notice, 18 * this list of conditions and the following disclaimer in the documentation 19 * and/or other materials provided with the distribution. 20 * 21 * 3) Neither the name of the ORGANIZATION nor the names of its contributors may 22 * be used to endorse or promote products derived from this software without 23 * specific prior written permission. 24 * 25 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 26 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 27 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 28 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE 29 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 30 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 31 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 32 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 33 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 34 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 35 * POSSIBILITY OF SUCH DAMAGE. 36 * 37 ******************************************************************************/ 38 39 //***************************************************************************** 40 // 41 //! \addtogroup system_control_group 42 //! @{ 43 //! \addtogroup setup_api 44 //! @{ 45 // 46 //***************************************************************************** 47 48 #ifndef __SETUP_H__ 49 #define __SETUP_H__ 50 51 //***************************************************************************** 52 // 53 // If building with a C++ compiler, make all of the definitions in this header 54 // have a C binding. 55 // 56 //***************************************************************************** 57 #ifdef __cplusplus 58 extern "C" 59 { 60 #endif 61 62 // Hardware headers 63 #include "../inc/hw_types.h" 64 // Driverlib headers 65 // - None needed 66 67 //***************************************************************************** 68 // 69 // Support for DriverLib in ROM: 70 // This section renames all functions that are not "static inline", so that 71 // calling these functions will default to implementation in flash. At the end 72 // of this file a second renaming will change the defaults to implementation in 73 // ROM for available functions. 74 // 75 // To force use of the implementation in flash, e.g. for debugging: 76 // - Globally: Define DRIVERLIB_NOROM at project level 77 // - Per function: Use prefix "NOROM_" when calling the function 78 // 79 //***************************************************************************** 80 #if !defined(DOXYGEN) 81 #define SetupTrimDevice NOROM_SetupTrimDevice 82 #endif 83 84 //***************************************************************************** 85 // 86 //! \brief Performs the necessary trim of the device which is not done in ROM boot code. 87 //! 88 //! This function should only execute coming from ROM boot. 89 //! 90 //! The following is handled by this function: 91 //! - Checks if the driverlib variant used by the application is supported by the 92 //! device. Execution is halted in case of unsupported driverlib variant. 93 //! - Configures VIMS cache mode based on setting in CCFG. 94 //! - Configures functionalities like DCDC and XOSC dependent on startup modes like 95 //! cold reset, wakeup from shutdown and wakeup from from powerdown. 96 //! - Configures VIMS power domain control. 97 //! - Configures optimal wait time for flash FSM in cases where flash pump wakes up from sleep. 98 //! 99 //! \note The current implementation does not take soft reset into account. However, 100 //! it does no damage to execute it again. It only consumes time. 101 //! 102 //! \note This function is called by the compiler specific device startup codes 103 //! that are integrated in the SimpleLink SDKs for CC13xx/CC26XX devices. 104 //! 105 //! \return None 106 // 107 //***************************************************************************** 108 extern void SetupTrimDevice( void ); 109 110 //***************************************************************************** 111 // 112 // Support for DriverLib in ROM: 113 // Redirect to implementation in ROM when available. 114 // 115 //***************************************************************************** 116 #if !defined(DRIVERLIB_NOROM) && !defined(DOXYGEN) 117 #include "../driverlib/rom.h" 118 #ifdef ROM_SetupTrimDevice 119 #undef SetupTrimDevice 120 #define SetupTrimDevice ROM_SetupTrimDevice 121 #endif 122 #endif 123 124 //***************************************************************************** 125 // 126 // Mark the end of the C bindings section for C++ compilers. 127 // 128 //***************************************************************************** 129 #ifdef __cplusplus 130 } 131 #endif 132 133 #endif // __SETUP_H__ 134 135 //***************************************************************************** 136 // 137 //! Close the Doxygen group. 138 //! @} 139 //! @} 140 // 141 //***************************************************************************** 142