1 //*****************************************************************************
\r
3 // hibernate.h - API definition for the Hibernation module.
\r
5 // Copyright (c) 2007 Luminary Micro, Inc. All rights reserved.
\r
7 // Software License Agreement
\r
9 // Luminary Micro, Inc. (LMI) is supplying this software for use solely and
\r
10 // exclusively on LMI's microcontroller products.
\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. Any use in violation
\r
14 // of the foregoing restrictions may subject the user to criminal sanctions
\r
15 // under applicable laws, as well as to civil liability for the breach of the
\r
16 // terms and conditions of this license.
\r
18 // THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED
\r
19 // OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF
\r
20 // MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.
\r
21 // LMI SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR
\r
22 // CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.
\r
24 // This is part of revision 1408 of the Stellaris Peripheral Driver Library.
\r
26 //*****************************************************************************
\r
28 #ifndef __HIBERNATE_H__
\r
29 #define __HIBERNATE_H__
\r
36 //*****************************************************************************
\r
38 // Macros needed for selecting the clock source for HibernateClockSelect()
\r
40 //*****************************************************************************
\r
41 #define HIBERNATE_CLOCK_SEL_RAW 0x04
\r
42 #define HIBERNATE_CLOCK_SEL_DIV128 0x00
\r
44 //*****************************************************************************
\r
46 // Macros need to configure wake events for HibernateWakeSet()
\r
48 //*****************************************************************************
\r
49 #define HIBERNATE_WAKE_PIN 0x10
\r
50 #define HIBERNATE_WAKE_RTC 0x08
\r
52 //*****************************************************************************
\r
54 // Macros needed to configure low battery detect for HibernateLowBatSet()
\r
56 //*****************************************************************************
\r
57 #define HIBERNATE_LOW_BAT_DETECT 0x20
\r
58 #define HIBERNATE_LOW_BAT_ABORT 0xA0
\r
60 //*****************************************************************************
\r
62 // Macros defining interrupt source bits for the interrupt functions.
\r
64 //*****************************************************************************
\r
65 #define HIBERNATE_INT_PIN_WAKE 0x08
\r
66 #define HIBERNATE_INT_LOW_BAT 0x04
\r
67 #define HIBERNATE_INT_RTC_MATCH_0 0x01
\r
68 #define HIBERNATE_INT_RTC_MATCH_1 0x02
\r
70 //*****************************************************************************
\r
72 // API Function prototypes
\r
74 //*****************************************************************************
\r
75 extern void HibernateEnable(void);
\r
76 extern void HibernateDisable(void);
\r
77 extern void HibernateClockSelect(unsigned long ulClockInput);
\r
78 extern void HibernateRTCEnable(void);
\r
79 extern void HibernateRTCDisable(void);
\r
80 extern void HibernateWakeSet(unsigned long ulWakeFlags);
\r
81 extern unsigned long HibernateWakeGet(void);
\r
82 extern void HibernateLowBatSet(unsigned long ulLowBatFlags);
\r
83 extern unsigned long HibernateLowBatGet(void);
\r
84 extern void HibernateRTCSet(unsigned long ulRTCValue);
\r
85 extern unsigned long HibernateRTCGet(void);
\r
86 extern void HibernateRTCMatch0Set(unsigned long ulMatch);
\r
87 extern unsigned long HibernateRTCMatch0Get(void);
\r
88 extern void HibernateRTCMatch1Set(unsigned long ulMatch);
\r
89 extern unsigned long HibernateRTCMatch1Get(void);
\r
90 extern void HibernateRTCTrimSet(unsigned long ulTrim);
\r
91 extern unsigned long HibernateRTCTrimGet(void);
\r
92 extern void HibernateDataSet(unsigned long *pulData, unsigned long ulCount);
\r
93 extern void HibernateDataGet(unsigned long *pulData, unsigned long ulCount);
\r
94 extern void HibernateRequest(void);
\r
95 extern void HibernateIntEnable(unsigned long ulIntFlags);
\r
96 extern void HibernateIntDisable(unsigned long ulIntFlags);
\r
97 extern void HibernateIntRegister(void (*pfnHandler)(void));
\r
98 extern void HibernateIntUnregister(void);
\r
99 extern unsigned long HibernateIntStatus(tBoolean bMasked);
\r
100 extern void HibernateIntClear(unsigned long ulIntFlags);
\r
101 extern unsigned int HibernateIsActive(void);
\r
107 #endif // __HIBERNATE_H__
\r