xref: /utopia/UTPA2-700.0.x/projects/tmplib/include/drvRTC.h (revision 53ee8cc121a030b8d368113ac3e966b4705770ef)
1 //<MStar Software>
2 //******************************************************************************
3 // MStar Software
4 // Copyright (c) 2010 - 2012 MStar Semiconductor, Inc. All rights reserved.
5 // All software, firmware and related documentation herein ("MStar Software") are
6 // intellectual property of MStar Semiconductor, Inc. ("MStar") and protected by
7 // law, including, but not limited to, copyright law and international treaties.
8 // Any use, modification, reproduction, retransmission, or republication of all
9 // or part of MStar Software is expressly prohibited, unless prior written
10 // permission has been granted by MStar.
11 //
12 // By accessing, browsing and/or using MStar Software, you acknowledge that you
13 // have read, understood, and agree, to be bound by below terms ("Terms") and to
14 // comply with all applicable laws and regulations:
15 //
16 // 1. MStar shall retain any and all right, ownership and interest to MStar
17 //    Software and any modification/derivatives thereof.
18 //    No right, ownership, or interest to MStar Software and any
19 //    modification/derivatives thereof is transferred to you under Terms.
20 //
21 // 2. You understand that MStar Software might include, incorporate or be
22 //    supplied together with third party`s software and the use of MStar
23 //    Software may require additional licenses from third parties.
24 //    Therefore, you hereby agree it is your sole responsibility to separately
25 //    obtain any and all third party right and license necessary for your use of
26 //    such third party`s software.
27 //
28 // 3. MStar Software and any modification/derivatives thereof shall be deemed as
29 //    MStar`s confidential information and you agree to keep MStar`s
30 //    confidential information in strictest confidence and not disclose to any
31 //    third party.
32 //
33 // 4. MStar Software is provided on an "AS IS" basis without warranties of any
34 //    kind. Any warranties are hereby expressly disclaimed by MStar, including
35 //    without limitation, any warranties of merchantability, non-infringement of
36 //    intellectual property rights, fitness for a particular purpose, error free
37 //    and in conformity with any international standard.  You agree to waive any
38 //    claim against MStar for any loss, damage, cost or expense that you may
39 //    incur related to your use of MStar Software.
40 //    In no event shall MStar be liable for any direct, indirect, incidental or
41 //    consequential damages, including without limitation, lost of profit or
42 //    revenues, lost or damage of data, and unauthorized system use.
43 //    You agree that this Section 4 shall still apply without being affected
44 //    even if MStar Software has been modified by MStar in accordance with your
45 //    request or instruction for your use, except otherwise agreed by both
46 //    parties in writing.
47 //
48 // 5. If requested, MStar may from time to time provide technical supports or
49 //    services in relation with MStar Software to you for your use of
50 //    MStar Software in conjunction with your or your customer`s product
51 //    ("Services").
52 //    You understand and agree that, except otherwise agreed by both parties in
53 //    writing, Services are provided on an "AS IS" basis and the warranty
54 //    disclaimer set forth in Section 4 above shall apply.
55 //
56 // 6. Nothing contained herein shall be construed as by implication, estoppels
57 //    or otherwise:
58 //    (a) conferring any license or right to use MStar name, trademark, service
59 //        mark, symbol or any other identification;
60 //    (b) obligating MStar or any of its affiliates to furnish any person,
61 //        including without limitation, you and your customers, any assistance
62 //        of any kind whatsoever, or any information; or
63 //    (c) conferring any license or right under any intellectual property right.
64 //
65 // 7. These terms shall be governed by and construed in accordance with the laws
66 //    of Taiwan, R.O.C., excluding its conflict of law rules.
67 //    Any and all dispute arising out hereof or related hereto shall be finally
68 //    settled by arbitration referred to the Chinese Arbitration Association,
69 //    Taipei in accordance with the ROC Arbitration Law and the Arbitration
70 //    Rules of the Association by three (3) arbitrators appointed in accordance
71 //    with the said Rules.
72 //    The place of arbitration shall be in Taipei, Taiwan and the language shall
73 //    be English.
74 //    The arbitration award shall be final and binding to both parties.
75 //
76 //******************************************************************************
77 //<MStar Software>
78 ////////////////////////////////////////////////////////////////////////////////
79 //
80 // Copyright (c) 2008-2009 MStar Semiconductor, Inc.
81 // All rights reserved.
82 //
83 // Unless otherwise stipulated in writing, any and all information contained
84 // herein regardless in any format shall remain the sole proprietary of
85 // MStar Semiconductor Inc. and be kept in strict confidence
86 // ("MStar Confidential Information") by the recipient.
87 // Any unauthorized act including without limitation unauthorized disclosure,
88 // copying, use, reproduction, sale, distribution, modification, disassembling,
89 // reverse engineering and compiling of the contents of MStar Confidential
90 // Information is unlawful and strictly prohibited. MStar hereby reserves the
91 // rights to any and all damages, losses, costs and expenses resulting therefrom.
92 //
93 ////////////////////////////////////////////////////////////////////////////////
94 
95 ///////////////////////////////////////////////////////////////////////////////////////////////////
96 ///
97 /// @file   drvRTC.h
98 /// @brief  Piu Watch Dog Timer Driver Interface
99 /// @author MStar Semiconductor Inc.
100 ///////////////////////////////////////////////////////////////////////////////////////////////////
101 
102 /*!
103     \defgroup G_RTC RTC interface
104     \ingroup  G_PERIPHERAL
105 
106     \brief
107     A real-time clock (RTC) is a computer clock (most often in the form of an integrated circuit)
108     that keeps track of the current time. Although the term often refers to the devices in personal computers,
109     servers and embedded systems, RTCs are present in almost any electronic device which needs to keep accurate time.
110 
111     <b> Operation Flow </b>
112     -# Initialize RTC
113     -# Set RTC counter
114     -# Get RTC counter
115     -# Set RTC match counter
116     -# Get RTC match counter
117     -# Enable PM IRQ for the event to wake up
118     -# Disable PM IRQ for the event to wake up
119 
120     <b> Architecture </b>
121     \image html RTC.png
122 
123 
124     \defgroup G_RTC_INIT Initialization Task relative
125     \ingroup  G_RTC
126     \defgroup G_RTC_COMMON Common Task relative
127     \ingroup  G_RTC
128     \defgroup G_RTC_CONTROL Control relative
129     \ingroup  G_RTC
130     \defgroup G_RTC_OTHER  other relative
131     \ingroup  G_RTC
132     \defgroup G_RTC_ToBeModified RTC api to be modified
133     \ingroup  G_RTC
134     \defgroup G_RTC_ToBeRemove RTC api to be removed
135     \ingroup  G_RTC
136 */
137 
138 #ifndef _DRV_RTC_H_
139 #define _DRV_RTC_H_
140 
141 
142 
143 #ifdef __cplusplus
144 extern "C"
145 {
146 #endif
147 
148 #include "MsTypes.h"
149 
150 ////////////////////////////////////////////////////////////////////////////////
151 //  Type and Structure
152 ////////////////////////////////////////////////////////////////////////////////
153 #define RTC_DRV_VERSION                 /* Character String for DRV/API version  */  \
154     MSIF_TAG,                           /* 'MSIF'                                           */  \
155     MSIF_CLASS,                         /* '00'                                              */  \
156     MSIF_CUS,                           /* 0x0000                                         */  \
157     MSIF_MOD,                           /* 0x0000                                         */  \
158     MSIF_CHIP,                                                                                  \
159     MSIF_CPU,                                                                                   \
160     {'R','T','C',},                     /* IP__                                             */  \
161     {'0','0'},                          /* 0.0 ~ Z.Z                                      */  \
162     {'0','0'},                          /* 00 ~ 99                                         */  \
163     {'0','0','0','0','0','0','0','0'},  /* CL#                                              */  \
164     MSIF_OS
165 
166 #define RTC_VERSION            0x00000001
167 
168 typedef enum _RTC_DbgLv
169 {
170     E_RTC_DBGLV_NONE,          /* no debug message */
171     E_RTC_DBGLV_ERR_ONLY,      /* show error only */
172     E_RTC_DBGLV_INFO,          /* show error & informaiton */
173     E_RTC_DBGLV_ALL            /* show error, information & funciton name */
174 }RTC_DbgLv;
175 
176 
177 typedef enum
178 {
179     E_MS_DRV_RTC_0,
180     E_MS_DRV_RTC_2,
181 }E_MS_DRV_RTC;
182 
183 //-------------------------------------------------------------------------------------------------
184 /// MOBF Encrypt
185 /// @ingroup G_RTC_INIT
186 /// @param u32Key \b IN: Key
187 /// @param bEnable \b IN: TRUE/FLASE
188 /// @return DRVAESDMA_OK : Success
189 /// @return Others : Fail
190 //-------------------------------------------------------------------------------------------------
191 MS_BOOL MDrv_RTC_Init(E_MS_DRV_RTC eRtc, MS_U32 u32Freq, MS_U32 u32Xtal, MS_U32 u32Sec,InterruptCb pIntCb);
192 //-------------------------------------------------------------------------------------------------
193 /// MOBF Encrypt
194 /// @ingroup G_RTC_CONTROL
195 /// @param u32Key \b IN: Key
196 /// @param bEnable \b IN: TRUE/FLASE
197 /// @return DRVAESDMA_OK : Success
198 /// @return Others : Fail
199 //-------------------------------------------------------------------------------------------------
200 MS_U32 MDrv_RTC_GetCount(E_MS_DRV_RTC eRtc);
201 //-------------------------------------------------------------------------------------------------
202 /// MOBF Encrypt
203 /// @ingroup G_RTC_INIT
204 /// @param u32Key \b IN: Key
205 /// @param bEnable \b IN: TRUE/FLASE
206 /// @return DRVAESDMA_OK : Success
207 /// @return Others : Fail
208 //-------------------------------------------------------------------------------------------------
209 // void MDrv_RTC_DeInit(E_MS_DRV_RTC eRtc);
210 
211 //--------------------------------------------------------------------------------------------------
212 // Utopia2.0 will call this function to register SAR module
213 //--------------------------------------------------------------------------------------------------
214 //-------------------------------------------------------------------------------------------------
215 /// MOBF Encrypt
216 /// @ingroup G_RTC_ToBeRemove
217 /// @param u32Key \b IN: Key
218 /// @param bEnable \b IN: TRUE/FLASE
219 /// @return DRVAESDMA_OK : Success
220 /// @return Others : Fail
221 //-------------------------------------------------------------------------------------------------
222 // void RTCRegisterToUtopia(FUtopiaOpen ModuleType);
223 //-------------------------------------------------------------------------------------------------
224 /// MOBF Encrypt
225 /// @ingroup G_RTC_ToBeRemove
226 /// @param u32Key \b IN: Key
227 /// @param bEnable \b IN: TRUE/FLASE
228 /// @return DRVAESDMA_OK : Success
229 /// @return Others : Fail
230 //-------------------------------------------------------------------------------------------------
231 MS_U32 RTCOpen(void** pInstance, MS_U32 u32ModuleVersion, void* pAttribute);
232 //-------------------------------------------------------------------------------------------------
233 /// MOBF Encrypt
234 /// @ingroup G_RTC_ToBeRemove
235 /// @param u32Key \b IN: Key
236 /// @param bEnable \b IN: TRUE/FLASE
237 /// @return DRVAESDMA_OK : Success
238 /// @return Others : Fail
239 //-------------------------------------------------------------------------------------------------
240 // MS_U32 RTCClose(void* pInstance);
241 //-------------------------------------------------------------------------------------------------
242 /// MOBF Encrypt
243 /// @ingroup G_RTC_ToBeRemove
244 /// @param u32Key \b IN: Key
245 /// @param bEnable \b IN: TRUE/FLASE
246 /// @return DRVAESDMA_OK : Success
247 /// @return Others : Fail
248 //-------------------------------------------------------------------------------------------------
249 // MS_U32 RTCIoctl(void* pInstance, MS_U32 u32Cmd, void *pArgs);
250 
251 //RTC_Private
252 typedef struct _RTC_RESOURCE_PRIVATE
253 {
254     MS_U32 Dummy;
255 }RTC_RESOURCE_PRIVATE;
256 
257 typedef struct _RTC_INSTANT_PRIVATE
258 {
259 
260 }RTC_INSTANT_PRIVATE;
261 
262 typedef struct _RTC_INIT_PARAM
263 {
264     E_MS_DRV_RTC eRtc;
265     MS_U32 u32Freq;
266     MS_U32 u32Xtal;
267     MS_U32 u32Sec;
268     InterruptCb pIntCb;
269 
270 } RTC_INIT_PARAM;
271 
272 // MS_U16 MDrv_RTC_SetPowerState(EN_POWER_MODE u16PowerState);
273 
274 #ifdef __cplusplus
275 }
276 #endif
277 
278 #endif // _DRV_WDT_H_
279 
280