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