]> git.sur5r.net Git - freertos/blob - Demo/Common/drivers/LuminaryMicro/hibernate.h
Start to re-arrange files to include FreeRTOS+ in main download.
[freertos] / Demo / Common / drivers / LuminaryMicro / hibernate.h
1 //*****************************************************************************\r
2 //\r
3 // hibernate.h - API definition for the Hibernation module.\r
4 //\r
5 // Copyright (c) 2007-2008 Luminary Micro, Inc.  All rights reserved.\r
6 // \r
7 // Software License Agreement\r
8 // \r
9 // Luminary Micro, Inc. (LMI) is supplying this software for use solely and\r
10 // exclusively on LMI's microcontroller products.\r
11 // \r
12 // The software is owned by LMI and/or its suppliers, and is protected under\r
13 // applicable copyright laws.  All rights are reserved.  You may not combine\r
14 // this software with "viral" open-source software in order to form a larger\r
15 // program.  Any use in violation of the foregoing restrictions may subject\r
16 // the user to criminal sanctions under applicable laws, as well as to civil\r
17 // liability for the breach of the terms and conditions of this license.\r
18 // \r
19 // THIS SOFTWARE IS PROVIDED "AS IS".  NO WARRANTIES, WHETHER EXPRESS, IMPLIED\r
20 // OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF\r
21 // MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.\r
22 // LMI SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR\r
23 // CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.\r
24 // \r
25 // This is part of revision 2523 of the Stellaris Peripheral Driver Library.\r
26 //\r
27 //*****************************************************************************\r
28 \r
29 #ifndef __HIBERNATE_H__\r
30 #define __HIBERNATE_H__\r
31 \r
32 //*****************************************************************************\r
33 //\r
34 // If building with a C++ compiler, make all of the definitions in this header\r
35 // have a C binding.\r
36 //\r
37 //*****************************************************************************\r
38 #ifdef __cplusplus\r
39 extern "C"\r
40 {\r
41 #endif\r
42 \r
43 //*****************************************************************************\r
44 //\r
45 // Macros needed for selecting the clock source for HibernateClockSelect()\r
46 //\r
47 //*****************************************************************************\r
48 #define HIBERNATE_CLOCK_SEL_RAW         0x04\r
49 #define HIBERNATE_CLOCK_SEL_DIV128      0x00\r
50 \r
51 //*****************************************************************************\r
52 //\r
53 // Macros need to configure wake events for HibernateWakeSet()\r
54 //\r
55 //*****************************************************************************\r
56 #define HIBERNATE_WAKE_PIN              0x10\r
57 #define HIBERNATE_WAKE_RTC              0x08\r
58 \r
59 //*****************************************************************************\r
60 //\r
61 // Macros needed to configure low battery detect for HibernateLowBatSet()\r
62 //\r
63 //*****************************************************************************\r
64 #define HIBERNATE_LOW_BAT_DETECT        0x20\r
65 #define HIBERNATE_LOW_BAT_ABORT         0xA0\r
66 \r
67 //*****************************************************************************\r
68 //\r
69 // Macros defining interrupt source bits for the interrupt functions.\r
70 //\r
71 //*****************************************************************************\r
72 #define HIBERNATE_INT_PIN_WAKE          0x08\r
73 #define HIBERNATE_INT_LOW_BAT           0x04\r
74 #define HIBERNATE_INT_RTC_MATCH_0       0x01\r
75 #define HIBERNATE_INT_RTC_MATCH_1       0x02\r
76 \r
77 //*****************************************************************************\r
78 //\r
79 // API Function prototypes\r
80 //\r
81 //*****************************************************************************\r
82 extern void HibernateEnableExpClk(unsigned long ulHibClk);\r
83 extern void HibernateDisable(void);\r
84 extern void HibernateClockSelect(unsigned long ulClockInput);\r
85 extern void HibernateRTCEnable(void);\r
86 extern void HibernateRTCDisable(void);\r
87 extern void HibernateWakeSet(unsigned long ulWakeFlags);\r
88 extern unsigned long HibernateWakeGet(void);\r
89 extern void HibernateLowBatSet(unsigned long ulLowBatFlags);\r
90 extern unsigned long HibernateLowBatGet(void);\r
91 extern void HibernateRTCSet(unsigned long ulRTCValue);\r
92 extern unsigned long HibernateRTCGet(void);\r
93 extern void HibernateRTCMatch0Set(unsigned long ulMatch);\r
94 extern unsigned long HibernateRTCMatch0Get(void);\r
95 extern void HibernateRTCMatch1Set(unsigned long ulMatch);\r
96 extern unsigned long HibernateRTCMatch1Get(void);\r
97 extern void HibernateRTCTrimSet(unsigned long ulTrim);\r
98 extern unsigned long HibernateRTCTrimGet(void);\r
99 extern void HibernateDataSet(unsigned long *pulData, unsigned long ulCount);\r
100 extern void HibernateDataGet(unsigned long *pulData, unsigned long ulCount);\r
101 extern void HibernateRequest(void);\r
102 extern void HibernateIntEnable(unsigned long ulIntFlags);\r
103 extern void HibernateIntDisable(unsigned long ulIntFlags);\r
104 extern void HibernateIntRegister(void (*pfnHandler)(void));\r
105 extern void HibernateIntUnregister(void);\r
106 extern unsigned long HibernateIntStatus(tBoolean bMasked);\r
107 extern void HibernateIntClear(unsigned long ulIntFlags);\r
108 extern unsigned int HibernateIsActive(void);\r
109 \r
110 //*****************************************************************************\r
111 //\r
112 // Several Hibernate module APIs have been renamed, with the original function\r
113 // name being deprecated.  These defines provide backward compatibility.\r
114 //\r
115 //*****************************************************************************\r
116 #ifndef DEPRECATED\r
117 #include "sysctl.h"\r
118 #define HibernateEnable(a)                         \\r
119         HibernateEnableExpClk(a, SysCtlClockGet())\r
120 #endif\r
121 \r
122 //*****************************************************************************\r
123 //\r
124 // Mark the end of the C bindings section for C++ compilers.\r
125 //\r
126 //*****************************************************************************\r
127 #ifdef __cplusplus\r
128 }\r
129 #endif\r
130 \r
131 #endif  // __HIBERNATE_H__\r