PowerCC26X2.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2017-2020, Texas Instruments Incorporated
3  * All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions
7  * are met:
8  *
9  * * Redistributions of source code must retain the above copyright
10  * notice, this list of conditions and the following disclaimer.
11  *
12  * * Redistributions in binary form must reproduce the above copyright
13  * notice, this list of conditions and the following disclaimer in the
14  * documentation and/or other materials provided with the distribution.
15  *
16  * * Neither the name of Texas Instruments Incorporated nor the names of
17  * its contributors may be used to endorse or promote products derived
18  * from this software without specific prior written permission.
19  *
20  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
22  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
23  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
24  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
25  * EXEMPLARY, OR CONSEQueueNTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
26  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
27  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
28  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
29  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
30  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31  */
52 #ifndef ti_drivers_power_PowerCC26X2_
53 #define ti_drivers_power_PowerCC26X2_
54 
55 #include <ti/drivers/dpl/HwiP.h>
56 #include <ti/drivers/dpl/ClockP.h>
57 #include <ti/drivers/Power.h>
59 #include <ti/drivers/Temperature.h>
60 
61 #ifdef __cplusplus
62 extern "C" {
63 #endif
64 
66 #define PowerCC26X2_RESUMETIMESTANDBY 750
67 
69 #define PowerCC26X2_TOTALTIMESTANDBY 1000
70 
72 #define PowerCC26X2_WAKEDELAYSTANDBY 240
73 
75 #define PowerCC26X2_INITIALWAITRCOSC_LF 1000
76 
78 #define PowerCC26X2_RETRYWAITRCOSC_LF 1000
79 
81 #define PowerCC26X2_INITIALWAITXOSC_HF 50
82 
84 #define PowerCC26X2_RETRYWAITXOSC_HF 50
85 
87 #define PowerCC26X2_INITIALWAITXOSC_LF 10000
88 
90 #define PowerCC26X2_RETRYWAITXOSC_LF 5000
91 
92 #define PowerCC26X2_PERIPH_PKA PowerCC26XX_NUMRESOURCES
94 #define PowerCC26X2_PERIPH_UART1 PowerCC26XX_NUMRESOURCES + 1
99 #define PowerCC26X2_HPOSC_RTC_COMPENSATION_DELTA 3
100 
101 /* \cond */
102 #define PowerCC26X2_NUMRESOURCES (PowerCC26XX_NUMRESOURCES + 2) /* Number of resources in database */
103 /* \endcond */
104 
105 /* \cond */
106 #define PowerCC26X2_NUMCONSTRAINTS (PowerCC26XX_NUMCONSTRAINTS + 0) /* Number of constraints supported */
107 /* \endcond */
108 
109 /* \cond */
110 /*
111  * Calibration stages
112  */
113 #define PowerCC26X2_SETUP_CALIBRATE 1
114 #define PowerCC26X2_INITIATE_CALIBRATE 2
115 #define PowerCC26X2_DO_CALIBRATE 3
116 /* \endcond */
117 
118 
120 typedef struct {
161  bool (*calibrateFxn)(unsigned int);
199  void (*enableTCXOFxn)(bool);
201 
208 typedef struct {
210  uint32_t constraintMask;
211  ClockP_Struct clockObj;
212  ClockP_Struct calibrationClock;
213  ClockP_Struct tcxoEnableClock;
214  HwiP_Struct oscHwi;
215  HwiP_Struct tdcHwi;
216  int32_t nDeltaFreqCurr;
217  int32_t nCtrimCurr;
218  int32_t nCtrimFractCurr;
219  int32_t nCtrimNew;
220  int32_t nCtrimFractNew;
221  int32_t nRtrimNew;
222  int32_t nRtrimCurr;
223  int32_t nDeltaFreqNew;
224  bool bRefine;
225  uint32_t state;
226  bool xoscPending;
227  bool calLF;
228  uint8_t auxHwiState;
229  bool busyCal;
230  uint32_t calStep;
231  bool firstLF;
233  bool initialized;
234  uint8_t constraintCounts[PowerCC26X2_NUMCONSTRAINTS];
236  uint8_t resourceCounts[PowerCC26X2_NUMRESOURCES];
238  unsigned int (*resourceHandlers[3])(unsigned int);
242 
255 
256 #ifdef __cplusplus
257 }
258 #endif
259 
260 #endif /* POWER_CC26X2_ */
uint8_t auxHwiState
Definition: PowerCC26X2.h:228
Temperature driver.
HwiP_Struct oscHwi
Definition: PowerCC26X2.h:214
List_List notifyList
Definition: PowerCC26X2.h:209
Definition: List.h:131
int32_t nCtrimNew
Definition: PowerCC26X2.h:219
int32_t nCtrimFractCurr
Definition: PowerCC26X2.h:218
void(* Power_PolicyInitFxn)(void)
Power policy initialization function pointer.
Definition: Power.h:402
Power Manager.
bool xoscPending
Definition: PowerCC26X2.h:226
bool busyCal
Definition: PowerCC26X2.h:229
Power manager interface for CC26XX/CC13XX.
bool initialized
Definition: PowerCC26X2.h:233
int32_t nDeltaFreqNew
Definition: PowerCC26X2.h:223
bool calibrateRCOSC_HF
Boolean specifying whether the high frequency RC oscillator (RCOSC_HF) should be calibrated.
Definition: PowerCC26X2.h:192
bool enablePolicy
Definition: PowerCC26X2.h:232
void(* Power_PolicyFxn)(void)
Power policy function pointer.
Definition: Power.h:407
int32_t nRtrimNew
Definition: PowerCC26X2.h:221
ClockP_Struct tcxoEnableClock
Definition: PowerCC26X2.h:213
int32_t nDeltaFreqCurr
Definition: PowerCC26X2.h:216
uint32_t calStep
Definition: PowerCC26X2.h:230
Global configuration structure.
Definition: PowerCC26X2.h:120
Power_PolicyInitFxn policyInitFxn
The Power Policy&#39;s initialization function.
Definition: PowerCC26X2.h:127
bool calibrateRCOSC_LF
Boolean specifying whether the low frequency RC oscillator (RCOSC_LF) should be calibrated.
Definition: PowerCC26X2.h:183
ClockP_Struct calibrationClock
Definition: PowerCC26X2.h:212
PowerCC26X2_ModuleState.
Definition: PowerCC26X2.h:208
uint32_t state
Definition: PowerCC26X2.h:225
int32_t nRtrimCurr
Definition: PowerCC26X2.h:222
Power_PolicyFxn policyFxn
Definition: PowerCC26X2.h:240
int32_t nCtrimCurr
Definition: PowerCC26X2.h:217
void PowerCC26X2_enableHposcRtcCompensation(void)
Enable RTC compensation when SCLK_LF is derived from HPOSC.
uint32_t constraintMask
Definition: PowerCC26X2.h:210
bool enablePolicy
Boolean specifying if the Power Policy function is enabled.
Definition: PowerCC26X2.h:174
Power_PolicyFxn policyFxn
The Power Policy function.
Definition: PowerCC26X2.h:149
ClockP_Struct clockObj
Definition: PowerCC26X2.h:211
int32_t nCtrimFractNew
Definition: PowerCC26X2.h:220
HwiP_Struct tdcHwi
Definition: PowerCC26X2.h:215
bool bRefine
Definition: PowerCC26X2.h:224
bool firstLF
Definition: PowerCC26X2.h:231
bool calLF
Definition: PowerCC26X2.h:227
© Copyright 1995-2021, Texas Instruments Incorporated. All rights reserved.
Trademarks | Privacy policy | Terms of use | Terms of sale