pcm.h
Go to the documentation of this file.
1 #ifndef __PCM_H__
2 #define __PCM_H__
3 
4 //*****************************************************************************
5 //
8 //
9 //*****************************************************************************
10 
11 //*****************************************************************************
12 //
13 // If building with a C++ compiler, make all of the definitions in this header
14 // have a C binding.
15 //
16 //*****************************************************************************
17 #ifdef __cplusplus
18 extern "C"
19 {
20 #endif
21 
22 #include <stdint.h>
23 #include "register_remap.h"
24 #include <stdbool.h>
25 #include <msp432.h>
26 
27 //*****************************************************************************
28 //
29 // Control specific variables
30 //
31 //*****************************************************************************
32 #define PCM_KEY 0x695A0000
33 
34 /* Power Modes */
35 #define PCM_AM_LDO_VCORE0 0x00
36 #define PCM_AM_LDO_VCORE1 0x01
37 #define PCM_AM_DCDC_VCORE0 0x04
38 #define PCM_AM_DCDC_VCORE1 0x05
39 #define PCM_AM_LPR_VCORE0 0x08
40 #define PCM_AM_LPR_VCORE1 0x09
41 #define PCM_LPM0_LDO_VCORE0 0x10
42 #define PCM_LPM0_LDO_VCORE1 0x11
43 #define PCM_LPM0_DCDC_VCORE0 0x14
44 #define PCM_LPM0_DCDC_VCORE1 0x15
45 #define PCM_LPM0_LPR_VCORE0 0x18
46 #define PCM_LPM0_LPR_VCORE1 0x19
47 #define PCM_LPM3 0x20
48 #define PCM_LPM35_VCORE0 0x21
49 #define PCM_LPM45 0x22
50 
51 #define PCM_VCORE0 0x00
52 #define PCM_VCORE1 0x01
53 #define PCM_VCORELPM3 0x02
54 
55 #define PCM_LDO_MODE 0x00
56 #define PCM_DCDC_MODE 0x01
57 #define PCM_LPR_MODE 0x02
58 
59 #define PCM_SHUTDOWN_PARTIAL PCM_LPM35_VCORE0
60 #define PCM_SHUTDOWN_COMPLETE PCM_LPM45
61 
62 #define PCM_DCDCERROR PCM_INTEN_EN_DCDC_ERROR
63 #define PCM_AM_INVALIDTRANSITION PCM_INTEN_EN_AM_INVALID_TR
64 #define PCM_SM_INVALIDCLOCK PCM_INTEN_EN_SM_INVALID_CLK
65 #define PCM_SM_INVALIDTRANSITION PCM_INTEN_EN_SM_INVALID_TR
66 
67 //*****************************************************************************
68 //
69 // Prototypes for the APIs.
70 //
71 //*****************************************************************************
72 
73 //******************************************************************************
74 //
90 //
91 //******************************************************************************
92 extern bool PCM_setCoreVoltageLevel(uint_fast8_t voltageLevel);
93 
94 //******************************************************************************
95 //
106 //
107 //******************************************************************************
108 extern uint8_t PCM_getCoreVoltageLevel(void);
109 
110 //******************************************************************************
111 //
135 //
136 //******************************************************************************
137 extern bool PCM_setCoreVoltageLevelWithTimeout(uint_fast8_t voltageLevel,
138  uint32_t timeOut);
139 
140 //******************************************************************************
141 //
154 //
155 //******************************************************************************
156 extern bool PCM_setPowerMode(uint_fast8_t powerMode);
157 
158 //******************************************************************************
159 //
180 //
181 //******************************************************************************
182 extern bool PCM_setPowerModeWithTimeout(uint_fast8_t powerMode,
183  uint32_t timeOut);
184 
185 //******************************************************************************
186 //
192 //
193 //******************************************************************************
194 extern uint8_t PCM_getPowerMode(void);
195 
196 //******************************************************************************
197 //
222 //
223 //******************************************************************************
224 extern bool PCM_setPowerState(uint_fast8_t powerState);
225 
226 //******************************************************************************
227 //
263 //
264 //******************************************************************************
265 extern bool PCM_setPowerStateWithTimeout(uint_fast8_t powerState,
266  uint32_t timeout);
267 
268 //******************************************************************************
269 //
276 //
277 //******************************************************************************
278 extern uint8_t PCM_getPowerState(void);
279 
280 //******************************************************************************
281 //
302 //
303 //******************************************************************************
304 extern bool PCM_shutdownDevice(uint32_t shutdownMode);
305 
306 //******************************************************************************
307 //
313 //
314 //******************************************************************************
315 extern bool PCM_gotoLPM0(void);
316 
317 //******************************************************************************
318 //
327 //
328 //******************************************************************************
329 extern bool PCM_gotoLPM3(void);
330 
331 //******************************************************************************
332 //
343 //
344 //******************************************************************************
345 extern bool PCM_gotoLPM0InterruptSafe(void);
346 
347 //******************************************************************************
348 //
362 //
363 //******************************************************************************
364 extern bool PCM_gotoLPM3InterruptSafe(void);
365 
366 //******************************************************************************
367 //
374 //
375 //******************************************************************************
376 extern void PCM_enableRudeMode(void);
377 
378 //******************************************************************************
379 //
385 //
386 //******************************************************************************
387 extern void PCM_disableRudeMode(void);
388 
389 //*****************************************************************************
390 //
409 //
410 //*****************************************************************************
411 extern void PCM_enableInterrupt(uint32_t flags);
412 
413 //*****************************************************************************
414 //
433 //
434 //*****************************************************************************
435 extern void PCM_disableInterrupt(uint32_t flags);
436 
437 //*****************************************************************************
438 //
450 //
451 //*****************************************************************************
452 extern uint32_t PCM_getInterruptStatus(void);
453 
454 //*****************************************************************************
455 //
470 //
471 //*****************************************************************************
472 extern uint32_t PCM_getEnabledInterruptStatus(void);
473 
474 //*****************************************************************************
475 //
503 //
504 //*****************************************************************************
505 extern void PCM_clearInterruptFlag(uint32_t flags);
506 
507 //*****************************************************************************
508 //
524 //
525 //*****************************************************************************
526 extern void PCM_registerInterrupt(void (*intHandler)(void));
527 
528 //*****************************************************************************
529 //
540 //
541 //*****************************************************************************
542 extern void PCM_unregisterInterrupt(void);
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 //*****************************************************************************
554 //
555 // Close the Doxygen group.
557 //
558 //*****************************************************************************
559 
560 #endif // __PCM_H__
bool PCM_gotoLPM0(void)
Definition: pcm.c:340
void PCM_registerInterrupt(void(*intHandler)(void))
Definition: pcm.c:466
bool PCM_setCoreVoltageLevelWithTimeout(uint_fast8_t voltageLevel, uint32_t timeOut)
Definition: pcm.c:16
bool PCM_shutdownDevice(uint32_t shutdownMode)
Definition: pcm.c:318
void PCM_disableInterrupt(uint32_t flags)
Definition: pcm.c:446
bool PCM_gotoLPM3(void)
Definition: pcm.c:374
bool PCM_setPowerState(uint_fast8_t powerState)
Definition: pcm.c:231
uint8_t PCM_getPowerMode(void)
Definition: pcm.c:85
bool PCM_gotoLPM0InterruptSafe(void)
Definition: pcm.c:354
bool PCM_setPowerStateWithTimeout(uint_fast8_t powerState, uint32_t timeout)
Definition: pcm.c:236
uint32_t PCM_getEnabledInterruptStatus(void)
Definition: pcm.c:456
void PCM_unregisterInterrupt(void)
Definition: pcm.c:479
bool PCM_gotoLPM3InterruptSafe(void)
Definition: pcm.c:407
uint32_t PCM_getInterruptStatus(void)
Definition: pcm.c:451
void PCM_disableRudeMode(void)
Definition: pcm.c:436
uint8_t PCM_getCoreVoltageLevel(void)
Definition: pcm.c:115
bool PCM_setPowerModeWithTimeout(uint_fast8_t powerMode, uint32_t timeOut)
Definition: pcm.c:144
void PCM_enableRudeMode(void)
Definition: pcm.c:431
bool PCM_setPowerMode(uint_fast8_t powerMode)
Definition: pcm.c:80
uint8_t PCM_getPowerState(void)
Definition: pcm.c:426
bool PCM_setCoreVoltageLevel(uint_fast8_t voltageLevel)
Definition: pcm.c:11
void PCM_clearInterruptFlag(uint32_t flags)
Definition: pcm.c:461
void PCM_enableInterrupt(uint32_t flags)
Definition: pcm.c:441

Copyright 2014, Texas Instruments Incorporated