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_MAX, 182 }E_MS_DRV_RTC; 183 184 typedef enum 185 { 186 E_MS_DRV_RTC_TIME_UNIT_SEC, 187 E_MS_DRV_RTC_TIME_UNIT_MS, 188 E_MS_DRV_RTC_TIME_UNIT_US, 189 }E_MS_DRV_RTC_TIME_UNIT; 190 191 typedef enum 192 { 193 E_MS_DRV_RTC_STATUS_OK, 194 E_MS_DRV_RTC_STATUS_NOT_INIT, 195 E_MS_DRV_RTC_STATUS_IN_USE, 196 E_MS_DRV_RTC_STATUS_INVALID_ARGUMENT, 197 }E_MS_DRV_RTC_STATUS; 198 199 E_MS_DRV_RTC_STATUS MDrv_RTC_ResetRTC(E_MS_DRV_RTC eRtc); 200 E_MS_DRV_RTC_STATUS MDrv_RTC_SetCount(E_MS_DRV_RTC eRtc, MS_U32 u32Value); 201 E_MS_DRV_RTC_STATUS MDrv_RTC_SetMatchCount(E_MS_DRV_RTC eRtc, MS_U32 u32Value); 202 MS_U32 MDrv_RTC_GetMatchCount(E_MS_DRV_RTC eRtc); 203 E_MS_DRV_RTC_STATUS MDrv_RTC_IntClear(E_MS_DRV_RTC eRtc); 204 E_MS_DRV_RTC_STATUS MDrv_RTC_SetPeriod(E_MS_DRV_RTC eRtc, MS_U32 u32Amount, E_MS_DRV_RTC_TIME_UNIT eUnit); 205 E_MS_DRV_RTC_STATUS MDrv_RTC_StartCounter(E_MS_DRV_RTC eRtc); 206 207 //------------------------------------------------------------------------------------------------- 208 /// MOBF Encrypt 209 /// @ingroup G_RTC_INIT 210 /// @param u32Key \b IN: Key 211 /// @param bEnable \b IN: TRUE/FLASE 212 /// @return DRVAESDMA_OK : Success 213 /// @return Others : Fail 214 //------------------------------------------------------------------------------------------------- 215 MS_BOOL MDrv_RTC_Init(E_MS_DRV_RTC eRtc, MS_U32 u32Freq, MS_U32 u32Xtal, MS_U32 u32Sec,InterruptCb pIntCb); 216 //------------------------------------------------------------------------------------------------- 217 /// MOBF Encrypt 218 /// @ingroup G_RTC_CONTROL 219 /// @param u32Key \b IN: Key 220 /// @param bEnable \b IN: TRUE/FLASE 221 /// @return DRVAESDMA_OK : Success 222 /// @return Others : Fail 223 //------------------------------------------------------------------------------------------------- 224 MS_U32 MDrv_RTC_GetCount(E_MS_DRV_RTC eRtc); 225 //------------------------------------------------------------------------------------------------- 226 /// MOBF Encrypt 227 /// @ingroup G_RTC_INIT 228 /// @param u32Key \b IN: Key 229 /// @param bEnable \b IN: TRUE/FLASE 230 /// @return DRVAESDMA_OK : Success 231 /// @return Others : Fail 232 //------------------------------------------------------------------------------------------------- 233 void MDrv_RTC_DeInit(E_MS_DRV_RTC eRtc); 234 235 //-------------------------------------------------------------------------------------------------- 236 // Utopia2.0 will call this function to register SAR module 237 //-------------------------------------------------------------------------------------------------- 238 //------------------------------------------------------------------------------------------------- 239 /// MOBF Encrypt 240 /// @ingroup G_RTC_ToBeRemove 241 /// @param u32Key \b IN: Key 242 /// @param bEnable \b IN: TRUE/FLASE 243 /// @return DRVAESDMA_OK : Success 244 /// @return Others : Fail 245 //------------------------------------------------------------------------------------------------- 246 void RTCRegisterToUtopia(FUtopiaOpen ModuleType); 247 //------------------------------------------------------------------------------------------------- 248 /// MOBF Encrypt 249 /// @ingroup G_RTC_ToBeRemove 250 /// @param u32Key \b IN: Key 251 /// @param bEnable \b IN: TRUE/FLASE 252 /// @return DRVAESDMA_OK : Success 253 /// @return Others : Fail 254 //------------------------------------------------------------------------------------------------- 255 MS_U32 RTCOpen(void** pInstance, MS_U32 u32ModuleVersion, void* pAttribute); 256 //------------------------------------------------------------------------------------------------- 257 /// MOBF Encrypt 258 /// @ingroup G_RTC_ToBeRemove 259 /// @param u32Key \b IN: Key 260 /// @param bEnable \b IN: TRUE/FLASE 261 /// @return DRVAESDMA_OK : Success 262 /// @return Others : Fail 263 //------------------------------------------------------------------------------------------------- 264 MS_U32 RTCClose(void* pInstance); 265 //------------------------------------------------------------------------------------------------- 266 /// MOBF Encrypt 267 /// @ingroup G_RTC_ToBeRemove 268 /// @param u32Key \b IN: Key 269 /// @param bEnable \b IN: TRUE/FLASE 270 /// @return DRVAESDMA_OK : Success 271 /// @return Others : Fail 272 //------------------------------------------------------------------------------------------------- 273 MS_U32 RTCIoctl(void* pInstance, MS_U32 u32Cmd, void *pArgs); 274 275 //RTC_Private 276 typedef struct _RTC_RESOURCE_PRIVATE 277 { 278 MS_U32 Dummy; 279 }RTC_RESOURCE_PRIVATE; 280 281 typedef struct _RTC_INSTANT_PRIVATE 282 { 283 284 }RTC_INSTANT_PRIVATE; 285 286 typedef struct _RTC_INIT_PARAM 287 { 288 E_MS_DRV_RTC eRtc; 289 MS_U32 u32Freq; 290 MS_U32 u32Xtal; 291 MS_U32 u32Sec; 292 InterruptCb pIntCb; 293 294 } RTC_INIT_PARAM; 295 296 MS_U16 MDrv_RTC_SetPowerState(EN_POWER_MODE u16PowerState); 297 298 #ifdef __cplusplus 299 } 300 #endif 301 302 #endif // _DRV_WDT_H_ 303 304