CC23x0R5DriverLibrary
ckmd.h
Go to the documentation of this file.
1 /******************************************************************************
2  * Filename: ckmd.h
3  *
4  * Description: Defines and prototypes for the CKMD module.
5  *
6  * Copyright (c) 2023 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 __CKMD_H__
37 #define __CKMD_H__
38 
39 //*****************************************************************************
40 //
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 #include <stdbool.h>
59 #include <stdint.h>
60 
61 #include "../inc/hw_types.h"
62 #include "../inc/hw_memmap.h"
63 #include "../inc/hw_ckmd.h"
64 
65 //*****************************************************************************
66 //
67 // API Functions and prototypes
68 //
69 //*****************************************************************************
70 
71 //*****************************************************************************
72 //
89 //
90 //*****************************************************************************
91 __STATIC_INLINE void CKMDSetInitialCapTrim(uint32_t q1CapTrim, uint32_t q2CapTrim)
92 {
94  tmp |= (q1CapTrim << CKMD_HFXTINIT_Q1CAP_S) & CKMD_HFXTINIT_Q1CAP_M;
95  tmp |= (q2CapTrim << CKMD_HFXTINIT_Q2CAP_S) & CKMD_HFXTINIT_Q2CAP_M;
97 }
98 
99 //*****************************************************************************
100 //
116 //
117 //*****************************************************************************
119 {
121  tmp |= (q1Cap << CKMD_HFXTINIT_Q1CAP_S) & CKMD_HFXTINIT_Q1CAP_M;
123 }
124 
125 //*****************************************************************************
126 //
142 //
143 //*****************************************************************************
145 {
147  tmp |= (q2Cap << CKMD_HFXTINIT_Q2CAP_S) & CKMD_HFXTINIT_Q2CAP_M;
149 }
150 
151 //*****************************************************************************
152 //
168 //
169 //*****************************************************************************
171 {
173  tmp |= (iref << CKMD_HFXTINIT_IREF_S) & CKMD_HFXTINIT_IREF_M;
175 }
176 
177 //*****************************************************************************
178 //
194 //
195 //*****************************************************************************
197 {
199  tmp |= (idac << CKMD_HFXTINIT_IDAC_S) & CKMD_HFXTINIT_IDAC_M;
201 }
202 
203 //*****************************************************************************
204 //
220 //
221 //*****************************************************************************
222 __STATIC_INLINE void CKMDSetInitialAmplitudeThresholdTrim(uint32_t amplitudeThreshold)
223 {
225  tmp |= (amplitudeThreshold << CKMD_HFXTINIT_AMPTHR_S) & CKMD_HFXTINIT_AMPTHR_M;
227 }
228 
229 //*****************************************************************************
230 //
238 //
239 //*****************************************************************************
241 {
243 }
244 
245 //*****************************************************************************
246 //
254 //
255 //*****************************************************************************
257 {
259 }
260 
261 //*****************************************************************************
262 //
270 //
271 //*****************************************************************************
273 {
275 }
276 
277 //*****************************************************************************
278 //
286 //
287 //*****************************************************************************
289 {
291 }
292 
293 //*****************************************************************************
294 //
302 //
303 //*****************************************************************************
305 {
307 }
308 
309 //*****************************************************************************
310 //
327 //
328 //*****************************************************************************
329 __STATIC_INLINE void CKMDSetTargetCapTrim(uint32_t q1CapTrim, uint32_t q2CapTrim)
330 {
332  tmp |= (q1CapTrim << CKMD_HFXTTARG_Q1CAP_S) & CKMD_HFXTTARG_Q1CAP_M;
333  tmp |= (q2CapTrim << CKMD_HFXTTARG_Q2CAP_S) & CKMD_HFXTTARG_Q2CAP_M;
335 }
336 //*****************************************************************************
337 //
351 //
352 //*****************************************************************************
354 {
356  tmp |= (q1Cap << CKMD_HFXTTARG_Q1CAP_S) & CKMD_HFXTTARG_Q1CAP_M;
358 }
359 
360 //*****************************************************************************
361 //
375 //
376 //*****************************************************************************
378 {
380  tmp |= (q2Cap << CKMD_HFXTTARG_Q2CAP_S) & CKMD_HFXTTARG_Q2CAP_M;
382 }
383 
384 //*****************************************************************************
385 //
399 //
400 //*****************************************************************************
402 {
404  tmp |= (iref << CKMD_HFXTTARG_IREF_S) & CKMD_HFXTTARG_IREF_M;
406 }
407 
408 //*****************************************************************************
409 //
423 //
424 //*****************************************************************************
426 {
428  tmp |= (idac << CKMD_HFXTTARG_IDAC_S) & CKMD_HFXTTARG_IDAC_M;
430 }
431 
432 //*****************************************************************************
433 //
447 //
448 //*****************************************************************************
449 __STATIC_INLINE void CKMDSetTargetAmplitudeThresholdTrim(uint32_t amplitudeThreshold)
450 {
452  tmp |= (amplitudeThreshold << CKMD_HFXTTARG_AMPTHR_S) & CKMD_HFXTTARG_AMPTHR_M;
454 }
455 
456 //*****************************************************************************
457 //
465 //
466 //*****************************************************************************
468 {
470 }
471 
472 //*****************************************************************************
473 //
481 //
482 //*****************************************************************************
484 {
486 }
487 
488 //*****************************************************************************
489 //
497 //
498 //*****************************************************************************
500 {
502 }
503 
504 //*****************************************************************************
505 //
513 //
514 //*****************************************************************************
516 {
518 }
519 
520 //*****************************************************************************
521 //
529 //
530 //*****************************************************************************
532 {
534 }
535 
536 //*****************************************************************************
537 //
538 // Mark the end of the C bindings section for C++ compilers.
539 //
540 //*****************************************************************************
541 #ifdef __cplusplus
542 }
543 #endif
544 
545 //*****************************************************************************
546 //
550 //
551 //*****************************************************************************
552 
553 #endif // __CKMD_H__
__STATIC_INLINE void CKMDSetTargetQ1CapTrim(uint32_t q1Cap)
Sets target HFXT Q1 capacitor ramp trim.
Definition: ckmd.h:353
#define CKMD_HFXTTARG_Q1CAP_M
Definition: hw_ckmd.h:2824
#define CKMD_HFXTTARG_Q2CAP_M
Definition: hw_ckmd.h:2817
#define CKMD_HFXTINIT_AMPTHR_S
Definition: hw_ckmd.h:2746
#define CKMD_HFXTTARG_Q1CAP_S
Definition: hw_ckmd.h:2825
#define CKMD_HFXTTARG_AMPTHR_M
Definition: hw_ckmd.h:2796
__STATIC_INLINE void CKMDSetTargetIrefTrim(uint32_t iref)
Sets target HFXT IREF ramp trim.
Definition: ckmd.h:401
#define HWREG(x)
Definition: hw_types.h:79
#define __STATIC_INLINE
Definition: hw_types.h:58
__STATIC_INLINE uint32_t CKMDGetTargetAmplitudeThresholdTrim(void)
Gets target HFXT amplitude threshold ramp trim.
Definition: ckmd.h:531
#define CKMD_HFXTTARG_Q2CAP_S
Definition: hw_ckmd.h:2818
__STATIC_INLINE void CKMDSetTargetIdacTrim(uint32_t idac)
Sets target HFXT IDAC ramp trim.
Definition: ckmd.h:425
__STATIC_INLINE uint32_t CKMDGetTargetIdacTrim(void)
Gets target HFXT IDAC ramp trim.
Definition: ckmd.h:515
__STATIC_INLINE void CKMDSetInitialCapTrim(uint32_t q1CapTrim, uint32_t q2CapTrim)
Sets initial HFXT capacitor ramp trims.
Definition: ckmd.h:91
#define CKMD_O_HFXTINIT
Definition: hw_ckmd.h:142
#define CKMD_HFXTINIT_Q1CAP_M
Definition: hw_ckmd.h:2773
__STATIC_INLINE void CKMDSetInitialQ1CapTrim(uint32_t q1Cap)
Sets initial HFXT Q1 capacitor ramp trim.
Definition: ckmd.h:118
__STATIC_INLINE void CKMDSetInitialAmplitudeThresholdTrim(uint32_t amplitudeThreshold)
Sets initial HFXT amplitude threshold ramp trim.
Definition: ckmd.h:222
#define CKMD_HFXTINIT_IDAC_M
Definition: hw_ckmd.h:2752
#define CKMD_BASE
Definition: hw_memmap.h:49
#define CKMD_HFXTINIT_IREF_M
Definition: hw_ckmd.h:2759
#define CKMD_O_HFXTTARG
Definition: hw_ckmd.h:145
__STATIC_INLINE void CKMDSetInitialQ2CapTrim(uint32_t q2Cap)
Sets initial HFXT Q2 capacitor ramp trim.
Definition: ckmd.h:144
__STATIC_INLINE uint32_t CKMDGetTargetQ2CapTrim(void)
Gets target HFXT Q2 capacitor ramp trim.
Definition: ckmd.h:483
__STATIC_INLINE uint32_t CKMDGetInitialQ1CapTrim(void)
Gets initial HFXT Q1 capacitor ramp trim.
Definition: ckmd.h:240
__STATIC_INLINE uint32_t CKMDGetInitialIdacTrim(void)
Gets initial HFXT IDAC ramp trim.
Definition: ckmd.h:288
#define CKMD_HFXTTARG_IREF_S
Definition: hw_ckmd.h:2811
#define CKMD_HFXTTARG_AMPTHR_S
Definition: hw_ckmd.h:2797
__STATIC_INLINE void CKMDSetTargetAmplitudeThresholdTrim(uint32_t amplitudeThreshold)
Sets target HFXT amplitude threshold ramp trim.
Definition: ckmd.h:449
__STATIC_INLINE uint32_t CKMDGetTargetQ1CapTrim(void)
Gets target HFXT Q1 capacitor ramp trim.
Definition: ckmd.h:467
#define CKMD_HFXTTARG_IDAC_M
Definition: hw_ckmd.h:2803
#define CKMD_HFXTINIT_IDAC_S
Definition: hw_ckmd.h:2753
__STATIC_INLINE void CKMDSetTargetCapTrim(uint32_t q1CapTrim, uint32_t q2CapTrim)
Sets target HFXT capacitor ramp trims.
Definition: ckmd.h:329
__STATIC_INLINE uint32_t CKMDGetInitialIrefTrim(void)
Gets initial HFXT IREF ramp trim.
Definition: ckmd.h:272
__STATIC_INLINE void CKMDSetInitialIrefTrim(uint32_t iref)
Sets initial HFXT IREF ramp trim.
Definition: ckmd.h:170
__STATIC_INLINE uint32_t CKMDGetInitialAmplitudeThresholdTrim(void)
Gets initial HFXT amplitude threshold ramp trim.
Definition: ckmd.h:304
#define CKMD_HFXTTARG_IDAC_S
Definition: hw_ckmd.h:2804
__STATIC_INLINE void CKMDSetTargetQ2CapTrim(uint32_t q2Cap)
Sets target HFXT Q2 capacitor ramp trim.
Definition: ckmd.h:377
#define CKMD_HFXTINIT_Q1CAP_S
Definition: hw_ckmd.h:2774
__STATIC_INLINE void CKMDSetInitialIdacTrim(uint32_t idac)
Sets initial HFXT IDAC ramp trim.
Definition: ckmd.h:196
#define CKMD_HFXTINIT_Q2CAP_M
Definition: hw_ckmd.h:2766
#define CKMD_HFXTINIT_IREF_S
Definition: hw_ckmd.h:2760
#define CKMD_HFXTTARG_IREF_M
Definition: hw_ckmd.h:2810
#define CKMD_HFXTINIT_AMPTHR_M
Definition: hw_ckmd.h:2745
#define CKMD_HFXTINIT_Q2CAP_S
Definition: hw_ckmd.h:2767
__STATIC_INLINE uint32_t CKMDGetTargetIrefTrim(void)
Gets target HFXT IREF ramp trim.
Definition: ckmd.h:499
__STATIC_INLINE uint32_t CKMDGetInitialQ2CapTrim(void)
Gets initial HFXT Q2 capacitor ramp trim.
Definition: ckmd.h:256