2020-2021 Sunseeker Telemetry and Lighting System
pmm.h
Go to the documentation of this file.
1 //*****************************************************************************
2 //
3 // pmm.h - Driver for the PMM Module.
4 //
5 //*****************************************************************************
6 
7 #ifndef __MSP430WARE_PMM_H__
8 #define __MSP430WARE_PMM_H__
9 
10 #include "inc/hw_memmap.h"
11 
12 #ifdef __MSP430_HAS_PMM__
13 
14 //*****************************************************************************
15 //
16 // If building with a C++ compiler, make all of the definitions in this header
17 // have a C binding.
18 //
19 //*****************************************************************************
20 #ifdef __cplusplus
21 extern "C"
22 {
23 #endif
24 
25 //*****************************************************************************
26 //
27 // The following are values that can be passed to the level parameter for
28 // functions: PMM_setVCoreUp(), PMM_setVCoreDown(), and PMM_setVCore().
29 //
30 //*****************************************************************************
31 #define PMM_CORE_LEVEL_0 PMMCOREV_0
32 #define PMM_CORE_LEVEL_1 PMMCOREV_1
33 #define PMM_CORE_LEVEL_2 PMMCOREV_2
34 #define PMM_CORE_LEVEL_3 PMMCOREV_3
35 
36 //*****************************************************************************
37 //
38 // The following are values that can be passed to the mask parameter for
39 // functions: PMM_getInterruptStatus() as well as returned by the
40 // PMM_getInterruptStatus() function.
41 //
42 //*****************************************************************************
43 #define PMM_SVSMLDLYIFG SVSMLDLYIFG
44 #define PMM_SVMLIFG SVMLIFG
45 #define PMM_SVMLVLRIFG SVMLVLRIFG
46 #define PMM_SVSMHDLYIFG SVSMHDLYIFG
47 #define PMM_SVMHIFG SVMHIFG
48 #define PMM_SVMHVLRIFG SVMHVLRIFG
49 #define PMM_PMMBORIFG PMMBORIFG
50 #define PMM_PMMRSTIFG PMMRSTIFG
51 #define PMM_PMMPORIFG PMMPORIFG
52 #define PMM_SVSHIFG SVSHIFG
53 #define PMM_SVSLIFG SVSLIFG
54 #define PMM_PMMLPM5IFG PMMLPM5IFG
55 
56 //*****************************************************************************
57 //
58 // Prototypes for the APIs.
59 //
60 //*****************************************************************************
61 
62 //*****************************************************************************
63 //
70 //
71 //*****************************************************************************
72 extern void PMM_enableSvsL(void);
73 
74 //*****************************************************************************
75 //
82 //
83 //*****************************************************************************
84 extern void PMM_disableSvsL(void);
85 
86 //*****************************************************************************
87 //
94 //
95 //*****************************************************************************
96 extern void PMM_enableSvmL(void);
97 
98 //*****************************************************************************
99 //
106 //
107 //*****************************************************************************
108 extern void PMM_disableSvmL(void);
109 
110 //*****************************************************************************
111 //
118 //
119 //*****************************************************************************
120 extern void PMM_enableSvsH(void);
121 
122 //*****************************************************************************
123 //
130 //
131 //*****************************************************************************
132 extern void PMM_disableSvsH(void);
133 
134 //*****************************************************************************
135 //
142 //
143 //*****************************************************************************
144 extern void PMM_enableSvmH(void);
145 
146 //*****************************************************************************
147 //
154 //
155 //*****************************************************************************
156 extern void PMM_disableSvmH(void);
157 
158 //*****************************************************************************
159 //
166 //
167 //*****************************************************************************
168 extern void PMM_enableSvsLSvmL(void);
169 
170 //*****************************************************************************
171 //
178 //
179 //*****************************************************************************
180 extern void PMM_disableSvsLSvmL(void);
181 
182 //*****************************************************************************
183 //
190 //
191 //*****************************************************************************
192 extern void PMM_enableSvsHSvmH(void);
193 
194 //*****************************************************************************
195 //
202 //
203 //*****************************************************************************
204 extern void PMM_disableSvsHSvmH(void);
205 
206 //*****************************************************************************
207 //
215 //
216 //*****************************************************************************
217 extern void PMM_enableSvsLReset(void);
218 
219 //*****************************************************************************
220 //
228 //
229 //*****************************************************************************
230 extern void PMM_disableSvsLReset(void);
231 
232 //*****************************************************************************
233 //
241 //
242 //*****************************************************************************
243 extern void PMM_enableSvmLInterrupt(void);
244 
245 //*****************************************************************************
246 //
254 //
255 //*****************************************************************************
256 extern void PMM_disableSvmLInterrupt(void);
257 
258 //*****************************************************************************
259 //
267 //
268 //*****************************************************************************
269 extern void PMM_enableSvsHReset(void);
270 
271 //*****************************************************************************
272 //
280 //
281 //*****************************************************************************
282 extern void PMM_disableSvsHReset(void);
283 
284 //*****************************************************************************
285 //
293 //
294 //*****************************************************************************
295 extern void PMM_enableSvmHInterrupt(void);
296 
297 //*****************************************************************************
298 //
306 //
307 //*****************************************************************************
308 extern void PMM_disableSvmHInterrupt(void);
309 
310 //*****************************************************************************
311 //
318 //
319 //*****************************************************************************
320 extern void PMM_clearPMMIFGS(void);
321 
322 //*****************************************************************************
323 //
331 //
332 //*****************************************************************************
333 extern void PMM_enableSvsLInLPMFastWake(void);
334 
335 //*****************************************************************************
336 //
344 //
345 //*****************************************************************************
346 extern void PMM_enableSvsLInLPMSlowWake(void);
347 
348 //*****************************************************************************
349 //
357 //
358 //*****************************************************************************
359 extern void PMM_disableSvsLInLPMFastWake(void);
360 
361 //*****************************************************************************
362 //
370 //
371 //*****************************************************************************
372 extern void PMM_disableSvsLInLPMSlowWake(void);
373 
374 //*****************************************************************************
375 //
382 //
383 //*****************************************************************************
384 extern void PMM_enableSvsHInLPMNormPerf(void);
385 
386 //*****************************************************************************
387 //
394 //
395 //*****************************************************************************
396 extern void PMM_enableSvsHInLPMFullPerf(void);
397 
398 //*****************************************************************************
399 //
406 //
407 //*****************************************************************************
408 extern void PMM_disableSvsHInLPMNormPerf(void);
409 
410 //*****************************************************************************
411 //
418 //
419 //*****************************************************************************
420 extern void PMM_disableSvsHInLPMFullPerf(void);
421 
422 //*****************************************************************************
423 //
431 //
432 //*****************************************************************************
433 extern void PMM_optimizeSvsLInLPMFastWake(void);
434 
435 //*****************************************************************************
436 //
443 //
444 //*****************************************************************************
445 extern void PMM_optimizeSvsHInLPMFullPerf(void);
446 
447 //*****************************************************************************
448 //
463 //
464 //*****************************************************************************
465 extern uint16_t PMM_setVCoreUp(uint8_t level);
466 
467 //*****************************************************************************
468 //
483 //
484 //*****************************************************************************
485 extern uint16_t PMM_setVCoreDown(uint8_t level);
486 
487 //*****************************************************************************
488 //
503 //
504 //*****************************************************************************
505 extern bool PMM_setVCore(uint8_t level);
506 
507 //*****************************************************************************
508 //
540 //
541 //*****************************************************************************
542 extern uint16_t PMM_getInterruptStatus(uint16_t mask);
543 
544 //*****************************************************************************
545 //
546 // Mark the end of the C bindings section for C++ compilers.
547 //
548 //*****************************************************************************
549 #ifdef __cplusplus
550 }
551 #endif
552 
553 #endif
554 #endif // __MSP430WARE_PMM_H__