1*53ee8cc1Swenshuai.xi //<MStar Software> 2*53ee8cc1Swenshuai.xi //****************************************************************************** 3*53ee8cc1Swenshuai.xi // MStar Software 4*53ee8cc1Swenshuai.xi // Copyright (c) 2010 - 2012 MStar Semiconductor, Inc. All rights reserved. 5*53ee8cc1Swenshuai.xi // All software, firmware and related documentation herein ("MStar Software") are 6*53ee8cc1Swenshuai.xi // intellectual property of MStar Semiconductor, Inc. ("MStar") and protected by 7*53ee8cc1Swenshuai.xi // law, including, but not limited to, copyright law and international treaties. 8*53ee8cc1Swenshuai.xi // Any use, modification, reproduction, retransmission, or republication of all 9*53ee8cc1Swenshuai.xi // or part of MStar Software is expressly prohibited, unless prior written 10*53ee8cc1Swenshuai.xi // permission has been granted by MStar. 11*53ee8cc1Swenshuai.xi // 12*53ee8cc1Swenshuai.xi // By accessing, browsing and/or using MStar Software, you acknowledge that you 13*53ee8cc1Swenshuai.xi // have read, understood, and agree, to be bound by below terms ("Terms") and to 14*53ee8cc1Swenshuai.xi // comply with all applicable laws and regulations: 15*53ee8cc1Swenshuai.xi // 16*53ee8cc1Swenshuai.xi // 1. MStar shall retain any and all right, ownership and interest to MStar 17*53ee8cc1Swenshuai.xi // Software and any modification/derivatives thereof. 18*53ee8cc1Swenshuai.xi // No right, ownership, or interest to MStar Software and any 19*53ee8cc1Swenshuai.xi // modification/derivatives thereof is transferred to you under Terms. 20*53ee8cc1Swenshuai.xi // 21*53ee8cc1Swenshuai.xi // 2. You understand that MStar Software might include, incorporate or be 22*53ee8cc1Swenshuai.xi // supplied together with third party`s software and the use of MStar 23*53ee8cc1Swenshuai.xi // Software may require additional licenses from third parties. 24*53ee8cc1Swenshuai.xi // Therefore, you hereby agree it is your sole responsibility to separately 25*53ee8cc1Swenshuai.xi // obtain any and all third party right and license necessary for your use of 26*53ee8cc1Swenshuai.xi // such third party`s software. 27*53ee8cc1Swenshuai.xi // 28*53ee8cc1Swenshuai.xi // 3. MStar Software and any modification/derivatives thereof shall be deemed as 29*53ee8cc1Swenshuai.xi // MStar`s confidential information and you agree to keep MStar`s 30*53ee8cc1Swenshuai.xi // confidential information in strictest confidence and not disclose to any 31*53ee8cc1Swenshuai.xi // third party. 32*53ee8cc1Swenshuai.xi // 33*53ee8cc1Swenshuai.xi // 4. MStar Software is provided on an "AS IS" basis without warranties of any 34*53ee8cc1Swenshuai.xi // kind. Any warranties are hereby expressly disclaimed by MStar, including 35*53ee8cc1Swenshuai.xi // without limitation, any warranties of merchantability, non-infringement of 36*53ee8cc1Swenshuai.xi // intellectual property rights, fitness for a particular purpose, error free 37*53ee8cc1Swenshuai.xi // and in conformity with any international standard. You agree to waive any 38*53ee8cc1Swenshuai.xi // claim against MStar for any loss, damage, cost or expense that you may 39*53ee8cc1Swenshuai.xi // incur related to your use of MStar Software. 40*53ee8cc1Swenshuai.xi // In no event shall MStar be liable for any direct, indirect, incidental or 41*53ee8cc1Swenshuai.xi // consequential damages, including without limitation, lost of profit or 42*53ee8cc1Swenshuai.xi // revenues, lost or damage of data, and unauthorized system use. 43*53ee8cc1Swenshuai.xi // You agree that this Section 4 shall still apply without being affected 44*53ee8cc1Swenshuai.xi // even if MStar Software has been modified by MStar in accordance with your 45*53ee8cc1Swenshuai.xi // request or instruction for your use, except otherwise agreed by both 46*53ee8cc1Swenshuai.xi // parties in writing. 47*53ee8cc1Swenshuai.xi // 48*53ee8cc1Swenshuai.xi // 5. If requested, MStar may from time to time provide technical supports or 49*53ee8cc1Swenshuai.xi // services in relation with MStar Software to you for your use of 50*53ee8cc1Swenshuai.xi // MStar Software in conjunction with your or your customer`s product 51*53ee8cc1Swenshuai.xi // ("Services"). 52*53ee8cc1Swenshuai.xi // You understand and agree that, except otherwise agreed by both parties in 53*53ee8cc1Swenshuai.xi // writing, Services are provided on an "AS IS" basis and the warranty 54*53ee8cc1Swenshuai.xi // disclaimer set forth in Section 4 above shall apply. 55*53ee8cc1Swenshuai.xi // 56*53ee8cc1Swenshuai.xi // 6. Nothing contained herein shall be construed as by implication, estoppels 57*53ee8cc1Swenshuai.xi // or otherwise: 58*53ee8cc1Swenshuai.xi // (a) conferring any license or right to use MStar name, trademark, service 59*53ee8cc1Swenshuai.xi // mark, symbol or any other identification; 60*53ee8cc1Swenshuai.xi // (b) obligating MStar or any of its affiliates to furnish any person, 61*53ee8cc1Swenshuai.xi // including without limitation, you and your customers, any assistance 62*53ee8cc1Swenshuai.xi // of any kind whatsoever, or any information; or 63*53ee8cc1Swenshuai.xi // (c) conferring any license or right under any intellectual property right. 64*53ee8cc1Swenshuai.xi // 65*53ee8cc1Swenshuai.xi // 7. These terms shall be governed by and construed in accordance with the laws 66*53ee8cc1Swenshuai.xi // of Taiwan, R.O.C., excluding its conflict of law rules. 67*53ee8cc1Swenshuai.xi // Any and all dispute arising out hereof or related hereto shall be finally 68*53ee8cc1Swenshuai.xi // settled by arbitration referred to the Chinese Arbitration Association, 69*53ee8cc1Swenshuai.xi // Taipei in accordance with the ROC Arbitration Law and the Arbitration 70*53ee8cc1Swenshuai.xi // Rules of the Association by three (3) arbitrators appointed in accordance 71*53ee8cc1Swenshuai.xi // with the said Rules. 72*53ee8cc1Swenshuai.xi // The place of arbitration shall be in Taipei, Taiwan and the language shall 73*53ee8cc1Swenshuai.xi // be English. 74*53ee8cc1Swenshuai.xi // The arbitration award shall be final and binding to both parties. 75*53ee8cc1Swenshuai.xi // 76*53ee8cc1Swenshuai.xi //****************************************************************************** 77*53ee8cc1Swenshuai.xi //<MStar Software> 78*53ee8cc1Swenshuai.xi //////////////////////////////////////////////////////////////////////////////// 79*53ee8cc1Swenshuai.xi // 80*53ee8cc1Swenshuai.xi // Copyright (c) 2009-2010 MStar Semiconductor, Inc. 81*53ee8cc1Swenshuai.xi // All rights reserved. 82*53ee8cc1Swenshuai.xi // 83*53ee8cc1Swenshuai.xi // Unless otherwise stipulated in writing, any and all information contained 84*53ee8cc1Swenshuai.xi // herein regardless in any format shall remain the sole proprietary of 85*53ee8cc1Swenshuai.xi // MStar Semiconductor Inc. and be kept in strict confidence 86*53ee8cc1Swenshuai.xi // ("MStar Confidential Information") by the recipient. 87*53ee8cc1Swenshuai.xi // Any unauthorized act including without limitation unauthorized disclosure, 88*53ee8cc1Swenshuai.xi // copying, use, reproduction, sale, distribution, modification, disassembling, 89*53ee8cc1Swenshuai.xi // reverse engineering and compiling of the contents of MStar Confidential 90*53ee8cc1Swenshuai.xi // Information is unlawful and strictly prohibited. MStar hereby reserves the 91*53ee8cc1Swenshuai.xi // rights to any and all damages, losses, costs and expenses resulting therefrom. 92*53ee8cc1Swenshuai.xi // 93*53ee8cc1Swenshuai.xi //////////////////////////////////////////////////////////////////////////////// 94*53ee8cc1Swenshuai.xi 95*53ee8cc1Swenshuai.xi /////////////////////////////////////////////////////////////////////////////////////////////////// 96*53ee8cc1Swenshuai.xi /// 97*53ee8cc1Swenshuai.xi /// @file drvSAR.h 98*53ee8cc1Swenshuai.xi /// @brief SAR Driver Interface 99*53ee8cc1Swenshuai.xi /// @author MStar Semiconductor Inc. 100*53ee8cc1Swenshuai.xi /////////////////////////////////////////////////////////////////////////////////////////////////// 101*53ee8cc1Swenshuai.xi 102*53ee8cc1Swenshuai.xi /*! \defgroup G_SAR SAR interface 103*53ee8cc1Swenshuai.xi * \ingroup G_PERIPHERAL 104*53ee8cc1Swenshuai.xi \brief 105*53ee8cc1Swenshuai.xi Successive Approximation Register controller 106*53ee8cc1Swenshuai.xi <b>Features</b> 107*53ee8cc1Swenshuai.xi - Keypa 108*53ee8cc1Swenshuai.xi - SCART control signal detection 109*53ee8cc1Swenshuai.xi - RF AGC level detection 110*53ee8cc1Swenshuai.xi - GPIO 111*53ee8cc1Swenshuai.xi 112*53ee8cc1Swenshuai.xi <b>Successive approximation ADC Diagram</b> \n 113*53ee8cc1Swenshuai.xi \image html drvSAR_pic.png 114*53ee8cc1Swenshuai.xi 115*53ee8cc1Swenshuai.xi \defgroup G_SAR_INIT Initialization Task relative 116*53ee8cc1Swenshuai.xi \ingroup G_SAR 117*53ee8cc1Swenshuai.xi \defgroup G_SAR_COMMON Common Task relative 118*53ee8cc1Swenshuai.xi \ingroup G_SAR 119*53ee8cc1Swenshuai.xi \defgroup G_SAR_CONTROL Control relative 120*53ee8cc1Swenshuai.xi \ingroup G_SAR 121*53ee8cc1Swenshuai.xi *\defgroup G_SAR_OTHER other relative 122*53ee8cc1Swenshuai.xi *\ingroup G_SAR 123*53ee8cc1Swenshuai.xi *\defgroup G_SAR_ToBeModified SAR api to be modified 124*53ee8cc1Swenshuai.xi *\ingroup G_SAR 125*53ee8cc1Swenshuai.xi \defgroup G_SAR_ToBeRemove SAR api to be removed 126*53ee8cc1Swenshuai.xi \ingroup G_SAR 127*53ee8cc1Swenshuai.xi */ 128*53ee8cc1Swenshuai.xi 129*53ee8cc1Swenshuai.xi #ifndef _DRV_SAR_H_ 130*53ee8cc1Swenshuai.xi #define _DRV_SAR_H_ 131*53ee8cc1Swenshuai.xi 132*53ee8cc1Swenshuai.xi 133*53ee8cc1Swenshuai.xi #ifdef __cplusplus 134*53ee8cc1Swenshuai.xi extern "C" 135*53ee8cc1Swenshuai.xi { 136*53ee8cc1Swenshuai.xi #endif 137*53ee8cc1Swenshuai.xi 138*53ee8cc1Swenshuai.xi #include "MsTypes.h" 139*53ee8cc1Swenshuai.xi #include "MsDevice.h" 140*53ee8cc1Swenshuai.xi #include "UFO.h" 141*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 142*53ee8cc1Swenshuai.xi // Driver Capability 143*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 144*53ee8cc1Swenshuai.xi 145*53ee8cc1Swenshuai.xi 146*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 147*53ee8cc1Swenshuai.xi // Macro and Define 148*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 149*53ee8cc1Swenshuai.xi /// define SAR library version 150*53ee8cc1Swenshuai.xi #define MSIF_SAR_LIB_CODE {'S','A','R','_'} 151*53ee8cc1Swenshuai.xi #define MSIF_SAR_LIBVER {'0','3'} 152*53ee8cc1Swenshuai.xi #define MSIF_SAR_BUILDNUM {'0','9'} 153*53ee8cc1Swenshuai.xi #define MSIF_SAR_CHANGELIST {'0','0','4','3','3','2','5','1'} 154*53ee8cc1Swenshuai.xi 155*53ee8cc1Swenshuai.xi #define SAR_DRV_VERSION /* Character String for DRV/API version */ \ 156*53ee8cc1Swenshuai.xi MSIF_TAG, /* 'MSIF' */ \ 157*53ee8cc1Swenshuai.xi MSIF_CLASS, /* '00' */ \ 158*53ee8cc1Swenshuai.xi MSIF_CUS, /* 0x0000 */ \ 159*53ee8cc1Swenshuai.xi MSIF_MOD, /* 0x0000 */ \ 160*53ee8cc1Swenshuai.xi MSIF_CHIP, \ 161*53ee8cc1Swenshuai.xi MSIF_CPU, \ 162*53ee8cc1Swenshuai.xi MSIF_SAR_LIB_CODE, /* IP__ */ \ 163*53ee8cc1Swenshuai.xi MSIF_SAR_LIBVER, /* 0.0 ~ Z.Z */ \ 164*53ee8cc1Swenshuai.xi MSIF_SAR_BUILDNUM, /* 00 ~ 99 */ \ 165*53ee8cc1Swenshuai.xi MSIF_SAR_CHANGELIST, /* CL# */ \ 166*53ee8cc1Swenshuai.xi MSIF_OS 167*53ee8cc1Swenshuai.xi 168*53ee8cc1Swenshuai.xi /// SAR driver 169*53ee8cc1Swenshuai.xi #define SAR_VERSION_STRING_MAX 33 170*53ee8cc1Swenshuai.xi #define SAR_DUMMY_KEY 0xFF 171*53ee8cc1Swenshuai.xi #define SAR_DUMMY_STATUS 0x00 172*53ee8cc1Swenshuai.xi #define SAR_VERSION 0x00000001 173*53ee8cc1Swenshuai.xi 174*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 175*53ee8cc1Swenshuai.xi // Type and Structure 176*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 177*53ee8cc1Swenshuai.xi //################################## 178*53ee8cc1Swenshuai.xi // 179*53ee8cc1Swenshuai.xi // Access SAR settings by using Mailbox 180*53ee8cc1Swenshuai.xi // sent commands to PM 181*53ee8cc1Swenshuai.xi // 182*53ee8cc1Swenshuai.xi //################################## 183*53ee8cc1Swenshuai.xi /// define SAR driver info 184*53ee8cc1Swenshuai.xi typedef struct 185*53ee8cc1Swenshuai.xi { 186*53ee8cc1Swenshuai.xi MS_U8 u8TrigMode : 1; /// SAR trigger mode. 0: edge trigger, 1: level trigger 187*53ee8cc1Swenshuai.xi MS_U8 u8OprMode : 1; /// SAR operation mode. 0: one-shot, 1: free run 188*53ee8cc1Swenshuai.xi MS_U8 u8CfgdChs : 3; /// SAR configured channels 189*53ee8cc1Swenshuai.xi MS_U8 u8Reserved : 3; /// reserved for future 190*53ee8cc1Swenshuai.xi }SAR_DrvInfo; 191*53ee8cc1Swenshuai.xi 192*53ee8cc1Swenshuai.xi /// define SAR channel bound 193*53ee8cc1Swenshuai.xi typedef struct 194*53ee8cc1Swenshuai.xi { 195*53ee8cc1Swenshuai.xi MS_U8 u8UpBnd; ///upper bound 196*53ee8cc1Swenshuai.xi MS_U8 u8LoBnd; ///low bound 197*53ee8cc1Swenshuai.xi } SAR_BndCfg; 198*53ee8cc1Swenshuai.xi 199*53ee8cc1Swenshuai.xi /// define SAR parameter configuration 200*53ee8cc1Swenshuai.xi typedef struct 201*53ee8cc1Swenshuai.xi { 202*53ee8cc1Swenshuai.xi MS_U8 u8SARChID; /// SAR channel ID: from 0 203*53ee8cc1Swenshuai.xi MS_U8 u8UpBnd; ///upper bound 204*53ee8cc1Swenshuai.xi MS_U8 u8LoBnd; ///low bound 205*53ee8cc1Swenshuai.xi MS_U8 u8KeyLevelNum; /// SAR key level number 206*53ee8cc1Swenshuai.xi MS_U8 u8KeyThreshold[8]; /// SAR key thresholds 207*53ee8cc1Swenshuai.xi MS_U8 u8KeyCode[8]; /// SAR key code 208*53ee8cc1Swenshuai.xi } SAR_RegCfg; 209*53ee8cc1Swenshuai.xi 210*53ee8cc1Swenshuai.xi /// emurate SAR fucntion return result 211*53ee8cc1Swenshuai.xi typedef enum 212*53ee8cc1Swenshuai.xi { 213*53ee8cc1Swenshuai.xi /// SAR result for failure 214*53ee8cc1Swenshuai.xi E_SAR_FAIL =0, 215*53ee8cc1Swenshuai.xi /// SAR result for OK 216*53ee8cc1Swenshuai.xi E_SAR_OK = 1, 217*53ee8cc1Swenshuai.xi 218*53ee8cc1Swenshuai.xi } SAR_Result; 219*53ee8cc1Swenshuai.xi 220*53ee8cc1Swenshuai.xi /// emurate SAR Level for 2.2V or 3.3V 221*53ee8cc1Swenshuai.xi typedef enum 222*53ee8cc1Swenshuai.xi { 223*53ee8cc1Swenshuai.xi /// SAR result for failure 224*53ee8cc1Swenshuai.xi E_SAR_20V =0, 225*53ee8cc1Swenshuai.xi /// SAR result for OK 226*53ee8cc1Swenshuai.xi E_SAR_33V = 1, 227*53ee8cc1Swenshuai.xi 228*53ee8cc1Swenshuai.xi } SAR_LEVEL; 229*53ee8cc1Swenshuai.xi 230*53ee8cc1Swenshuai.xi 231*53ee8cc1Swenshuai.xi /// emurate SAR status 232*53ee8cc1Swenshuai.xi typedef enum 233*53ee8cc1Swenshuai.xi { 234*53ee8cc1Swenshuai.xi /// SAR Driver Status: Initialization OK 235*53ee8cc1Swenshuai.xi E_SAR_INIT_OK = (1<<0), 236*53ee8cc1Swenshuai.xi /// SAR Driver Status: Callback installed 237*53ee8cc1Swenshuai.xi E_SAR_INST_CLBK = (1<<1), 238*53ee8cc1Swenshuai.xi /// SAR Driver Status: Get key code 239*53ee8cc1Swenshuai.xi E_SAR_KEY_CODE = (1<<2), 240*53ee8cc1Swenshuai.xi /// SAR Driver Status: SAR is enabled 241*53ee8cc1Swenshuai.xi E_SAR_ENABLE = (1<<3), 242*53ee8cc1Swenshuai.xi /// SAR Driver Status: Maximum status 243*53ee8cc1Swenshuai.xi E_SAR_MAX_STATUS = 255 244*53ee8cc1Swenshuai.xi } SAR_Status; 245*53ee8cc1Swenshuai.xi 246*53ee8cc1Swenshuai.xi //------------------------------- 247*53ee8cc1Swenshuai.xi // Mailbox Class : SAR 248*53ee8cc1Swenshuai.xi //------------------------------- 249*53ee8cc1Swenshuai.xi /// emurate SAR mailbox commands from cpu to mcu51 250*53ee8cc1Swenshuai.xi typedef enum 251*53ee8cc1Swenshuai.xi { 252*53ee8cc1Swenshuai.xi /// mbx command for initialization 253*53ee8cc1Swenshuai.xi E_SAR_CPUTo51_CMD_INIT=0x00, 254*53ee8cc1Swenshuai.xi /// mbx command for configuration 255*53ee8cc1Swenshuai.xi E_SAR_CPUTo51_CMD_CONFIG, 256*53ee8cc1Swenshuai.xi /// mbx command for key code 257*53ee8cc1Swenshuai.xi E_SAR_CPUTo51_CMD_KEYCODE, 258*53ee8cc1Swenshuai.xi /// mbx command for set callback 259*53ee8cc1Swenshuai.xi E_SAR_CPUTo51_CMD_SETCLBK, 260*53ee8cc1Swenshuai.xi /// mbx command for library version 261*53ee8cc1Swenshuai.xi E_SAR_CPUTo51_CMD_LIBVER, 262*53ee8cc1Swenshuai.xi /// mbx command for status 263*53ee8cc1Swenshuai.xi E_SAR_CPUTo51_CMD_STATUS, 264*53ee8cc1Swenshuai.xi /// mbx command for enable 265*53ee8cc1Swenshuai.xi E_SAR_CPUTo51_CMD_ENABLE, 266*53ee8cc1Swenshuai.xi /// mbx command for driver info 267*53ee8cc1Swenshuai.xi E_SAR_CPUTo51_CMD_INFO, 268*53ee8cc1Swenshuai.xi } SAR_CPUTo51CmdIdx; 269*53ee8cc1Swenshuai.xi 270*53ee8cc1Swenshuai.xi /// emurate SAR mailbox commands ack from mcu51 to cpu 271*53ee8cc1Swenshuai.xi typedef enum 272*53ee8cc1Swenshuai.xi { 273*53ee8cc1Swenshuai.xi //(1) Acknowledge from MCU51 274*53ee8cc1Swenshuai.xi /// ack mbx command for initialization 275*53ee8cc1Swenshuai.xi E_SAR_51ToCPU_CMD_ACK_INIT=0x00, 276*53ee8cc1Swenshuai.xi /// ack mbx command for configuration 277*53ee8cc1Swenshuai.xi E_SAR_51ToCPU_CMD_ACK_CONFIG, 278*53ee8cc1Swenshuai.xi /// ack mbx command for key code 279*53ee8cc1Swenshuai.xi E_SAR_51ToCPU_CMD_ACK_KEYCODE, 280*53ee8cc1Swenshuai.xi /// ack mbx command for set callback 281*53ee8cc1Swenshuai.xi E_SAR_51ToCPU_CMD_ACK_SETCLBK, 282*53ee8cc1Swenshuai.xi /// ack mbx command for library version 283*53ee8cc1Swenshuai.xi E_SAR_51ToCPU_CMD_ACK_LIBVER, 284*53ee8cc1Swenshuai.xi ///ack mbx command for status 285*53ee8cc1Swenshuai.xi E_SAR_51ToCPU_CMD_ACK_STATUS, 286*53ee8cc1Swenshuai.xi ///ack mbx command for enable 287*53ee8cc1Swenshuai.xi E_SAR_51ToCPU_CMD_ACK_ENABLE, 288*53ee8cc1Swenshuai.xi ///ack mbx command for driver info 289*53ee8cc1Swenshuai.xi E_SAR_51ToCPU_CMD_ACK_INFO, 290*53ee8cc1Swenshuai.xi 291*53ee8cc1Swenshuai.xi //(2) Notification from MCU51 292*53ee8cc1Swenshuai.xi ///notification mbx command for key code 293*53ee8cc1Swenshuai.xi E_SAR_51ToCPU_CMD_KEYCODE, 294*53ee8cc1Swenshuai.xi 295*53ee8cc1Swenshuai.xi } SAR_51ToCPUCmdIdx; 296*53ee8cc1Swenshuai.xi 297*53ee8cc1Swenshuai.xi /// emurate ack flags 298*53ee8cc1Swenshuai.xi typedef enum 299*53ee8cc1Swenshuai.xi { 300*53ee8cc1Swenshuai.xi /// ack flag for null 301*53ee8cc1Swenshuai.xi E_SAR_ACKFLG_NULL = 0, 302*53ee8cc1Swenshuai.xi /// ack flag for wait initialization 303*53ee8cc1Swenshuai.xi E_SAR_ACKFLG_WAIT_INIT = (1<<0), 304*53ee8cc1Swenshuai.xi /// ack flag for wait configuration 305*53ee8cc1Swenshuai.xi E_SAR_ACKFLG_WAIT_CONFIG = (1<<1), 306*53ee8cc1Swenshuai.xi /// ack flag for wait key code 307*53ee8cc1Swenshuai.xi E_SAR_ACKFLG_WAIT_KEYCODE = (1<<2), 308*53ee8cc1Swenshuai.xi /// ack flag for wait set callback 309*53ee8cc1Swenshuai.xi E_SAR_ACKFLG_WAIT_SETCLBK = (1<<3), 310*53ee8cc1Swenshuai.xi /// ack flag for wait library version 311*53ee8cc1Swenshuai.xi E_SAR_ACKFLG_WAIT_LIBVER = (1<<4), 312*53ee8cc1Swenshuai.xi /// ack flag for wait status 313*53ee8cc1Swenshuai.xi E_SAR_ACKFLG_WAIT_STATUS = (1<<5), 314*53ee8cc1Swenshuai.xi /// ack flag for wait enable 315*53ee8cc1Swenshuai.xi E_SAR_ACKFLG_WAIT_ENABLE = (1<<6), 316*53ee8cc1Swenshuai.xi /// ack flag for wait driver info 317*53ee8cc1Swenshuai.xi E_SAR_ACKFLG_WAIT_INFO = (1<<7), 318*53ee8cc1Swenshuai.xi } SAR_AckFlags; 319*53ee8cc1Swenshuai.xi 320*53ee8cc1Swenshuai.xi /// Callback function which is called in SAR ISR. 321*53ee8cc1Swenshuai.xi typedef void ( *SAR_Callback ) (MS_U8 u8Key, MS_U8 u8RepeatFlag); 322*53ee8cc1Swenshuai.xi 323*53ee8cc1Swenshuai.xi ///Define SAR debug level 324*53ee8cc1Swenshuai.xi typedef enum _SAR_DbgLvl 325*53ee8cc1Swenshuai.xi { 326*53ee8cc1Swenshuai.xi E_SAR_DBGLVL_NONE = 0, /// no debug message 327*53ee8cc1Swenshuai.xi E_SAR_DBGLVL_WARNING, /// show warning only 328*53ee8cc1Swenshuai.xi E_SAR_DBGLVL_ERROR, /// show error only 329*53ee8cc1Swenshuai.xi E_SAR_DBGLVL_INFO, /// show error & informaiton 330*53ee8cc1Swenshuai.xi E_SAR_DBGLVL_ALL, /// show error, information & funciton name 331*53ee8cc1Swenshuai.xi }SAR_DbgLvl; 332*53ee8cc1Swenshuai.xi 333*53ee8cc1Swenshuai.xi 334*53ee8cc1Swenshuai.xi 335*53ee8cc1Swenshuai.xi //################################## 336*53ee8cc1Swenshuai.xi // 337*53ee8cc1Swenshuai.xi // Access SAR settings directly by RIU without 338*53ee8cc1Swenshuai.xi // using Mailbox sent commands to PM 339*53ee8cc1Swenshuai.xi // 340*53ee8cc1Swenshuai.xi //################################## 341*53ee8cc1Swenshuai.xi /// emurate SAR Kpd fucntion return result 342*53ee8cc1Swenshuai.xi typedef enum 343*53ee8cc1Swenshuai.xi { 344*53ee8cc1Swenshuai.xi /// SAR result for failure 345*53ee8cc1Swenshuai.xi E_SAR_KPD_FAIL =0, 346*53ee8cc1Swenshuai.xi /// SAR result for OK 347*53ee8cc1Swenshuai.xi E_SAR_KPD_OK = 1, 348*53ee8cc1Swenshuai.xi 349*53ee8cc1Swenshuai.xi } SAR_KpdResult; 350*53ee8cc1Swenshuai.xi 351*53ee8cc1Swenshuai.xi /// define SAR Kpd Bounds 352*53ee8cc1Swenshuai.xi typedef struct 353*53ee8cc1Swenshuai.xi { 354*53ee8cc1Swenshuai.xi MS_U8 u8UpBnd; //upper bound 355*53ee8cc1Swenshuai.xi MS_U8 u8LoBnd; //low bound 356*53ee8cc1Swenshuai.xi } SAR_KpdBndCfg; 357*53ee8cc1Swenshuai.xi 358*53ee8cc1Swenshuai.xi /// define SAR Kpd Configuration 359*53ee8cc1Swenshuai.xi typedef struct 360*53ee8cc1Swenshuai.xi { 361*53ee8cc1Swenshuai.xi MS_U8 u8SARChID; 362*53ee8cc1Swenshuai.xi SAR_KpdBndCfg tSARChBnd; 363*53ee8cc1Swenshuai.xi MS_U8 u8KeyLevelNum; 364*53ee8cc1Swenshuai.xi MS_U8 u8KeyThreshold[8]; 365*53ee8cc1Swenshuai.xi MS_U8 u8KeyCode[8]; 366*53ee8cc1Swenshuai.xi } SAR_KpdRegCfg; 367*53ee8cc1Swenshuai.xi 368*53ee8cc1Swenshuai.xi /// define SAR driver info 369*53ee8cc1Swenshuai.xi typedef struct 370*53ee8cc1Swenshuai.xi { 371*53ee8cc1Swenshuai.xi MS_U8 u8TrigMode : 1; /// SAR trigger mode. 0: edge trigger, 1: level trigger 372*53ee8cc1Swenshuai.xi MS_U8 u8SingleChEn : 1; /// SAR single channel enable 373*53ee8cc1Swenshuai.xi MS_U8 u8DigitOprMode : 1; /// SAR operation mode. 0: one-shot, 1: free run 374*53ee8cc1Swenshuai.xi MS_U8 u8AtopFreerun : 1; /// SAR atop freerun mode. 0: controlled by digital, 1: free run 375*53ee8cc1Swenshuai.xi MS_U8 u8DigitPwrDn : 1; /// SAR digital power down 376*53ee8cc1Swenshuai.xi MS_U8 u8AtopPwrDn : 1; /// SAR atop power down 377*53ee8cc1Swenshuai.xi MS_U8 u8HighChEn : 1; /// SAR high channel enable 378*53ee8cc1Swenshuai.xi MS_U8 u8InterruptEn : 1; /// SAR interrupt enable 379*53ee8cc1Swenshuai.xi 380*53ee8cc1Swenshuai.xi MS_U8 u8ConfigUsedChs : 3; /// SAR configured channels 381*53ee8cc1Swenshuai.xi MS_U8 u8MaxKpdSuppChs : 3; /// SAR IP max keypad channels supported 382*53ee8cc1Swenshuai.xi MS_U8 u8Reserved: 2;///RFU1 383*53ee8cc1Swenshuai.xi MS_U8 u8MaxKpdAvlbChs : 3; /// SAR driver max keypad channels provided 384*53ee8cc1Swenshuai.xi MS_U8 u8MaxKpdAvlbLvls: 5; // /SAR driver max keypad channel levels provided 385*53ee8cc1Swenshuai.xi } SAR_KpdDrvInfo; 386*53ee8cc1Swenshuai.xi 387*53ee8cc1Swenshuai.xi /// emurate SAR status 388*53ee8cc1Swenshuai.xi typedef enum 389*53ee8cc1Swenshuai.xi { 390*53ee8cc1Swenshuai.xi E_SAR_KPD_INVALID=0, 391*53ee8cc1Swenshuai.xi /// SAR Driver Status: Initialization OK 392*53ee8cc1Swenshuai.xi E_SAR_KPD_INIT_OK = (1<<0), 393*53ee8cc1Swenshuai.xi /// SAR Driver Status: Not Supported 394*53ee8cc1Swenshuai.xi E_SAR_KPD_NOT_SUP = (1<<1), 395*53ee8cc1Swenshuai.xi /// SAR Driver Status: Maximum status 396*53ee8cc1Swenshuai.xi E_SAR_KPD_MAX_STATUS = 255 397*53ee8cc1Swenshuai.xi } SAR_KpdStatus; 398*53ee8cc1Swenshuai.xi 399*53ee8cc1Swenshuai.xi 400*53ee8cc1Swenshuai.xi ///Define SAR debug level 401*53ee8cc1Swenshuai.xi typedef enum 402*53ee8cc1Swenshuai.xi { 403*53ee8cc1Swenshuai.xi E_SAR_KPD_DBGLVL_NONE = 0, /// no debug message 404*53ee8cc1Swenshuai.xi E_SAR_KPD_DBGLVL_WARNING, /// show warning only 405*53ee8cc1Swenshuai.xi E_SAR_KPD_DBGLVL_ERROR, /// show error only 406*53ee8cc1Swenshuai.xi E_SAR_KPD_DBGLVL_INFO, /// show error & informaiton 407*53ee8cc1Swenshuai.xi E_SAR_KPD_DBGLVL_ALL, /// show error, information & funciton name 408*53ee8cc1Swenshuai.xi }SAR_KpdDbgLvl; 409*53ee8cc1Swenshuai.xi 410*53ee8cc1Swenshuai.xi //################## 411*53ee8cc1Swenshuai.xi // 412*53ee8cc1Swenshuai.xi // For SAR ADC functions 413*53ee8cc1Swenshuai.xi // 414*53ee8cc1Swenshuai.xi //################## 415*53ee8cc1Swenshuai.xi /// emurate SAR ADC fucntion return result 416*53ee8cc1Swenshuai.xi typedef enum 417*53ee8cc1Swenshuai.xi { 418*53ee8cc1Swenshuai.xi /// SAR result for failure 419*53ee8cc1Swenshuai.xi E_SAR_ADC_FAIL =0, 420*53ee8cc1Swenshuai.xi /// SAR result for OK 421*53ee8cc1Swenshuai.xi E_SAR_ADC_OK = 1, 422*53ee8cc1Swenshuai.xi 423*53ee8cc1Swenshuai.xi } SAR_AdcResult; 424*53ee8cc1Swenshuai.xi 425*53ee8cc1Swenshuai.xi ///Define SAR ADC debug level 426*53ee8cc1Swenshuai.xi typedef enum 427*53ee8cc1Swenshuai.xi { 428*53ee8cc1Swenshuai.xi E_SAR_ADC_DBGLVL_NONE = 0, /// no debug message 429*53ee8cc1Swenshuai.xi E_SAR_ADC_DBGLVL_WARNING, /// show warning only 430*53ee8cc1Swenshuai.xi E_SAR_ADC_DBGLVL_ERROR, /// show error only 431*53ee8cc1Swenshuai.xi E_SAR_ADC_DBGLVL_INFO, /// show error & informaiton 432*53ee8cc1Swenshuai.xi E_SAR_ADC_DBGLVL_ALL, /// show error, information & funciton name 433*53ee8cc1Swenshuai.xi }SAR_AdcDbgLvl; 434*53ee8cc1Swenshuai.xi 435*53ee8cc1Swenshuai.xi ///Define RGB HSync ADC channel 436*53ee8cc1Swenshuai.xi typedef enum 437*53ee8cc1Swenshuai.xi { 438*53ee8cc1Swenshuai.xi E_SAR_ADC_HSYNC_CH0 = 0, /// ADC HSync channel 0 439*53ee8cc1Swenshuai.xi E_SAR_ADC_HSYNC_CH1, /// ADC HSync channel 1 440*53ee8cc1Swenshuai.xi E_SAR_ADC_HSYNC_CH2, /// ADC HSync channel 2 441*53ee8cc1Swenshuai.xi E_SAR_ADC_HSYNC_CH3, /// ADC HSync channel 3 442*53ee8cc1Swenshuai.xi E_SAR_ADC_HSYNC_CHMAX, /// ADC HSync channel max 443*53ee8cc1Swenshuai.xi }SAR_AdcHSyncCh; 444*53ee8cc1Swenshuai.xi 445*53ee8cc1Swenshuai.xi //################## 446*53ee8cc1Swenshuai.xi // 447*53ee8cc1Swenshuai.xi // For SAR GPIO functions 448*53ee8cc1Swenshuai.xi // 449*53ee8cc1Swenshuai.xi //################## 450*53ee8cc1Swenshuai.xi /// emurate SAR GPIO fucntion return result 451*53ee8cc1Swenshuai.xi typedef enum 452*53ee8cc1Swenshuai.xi { 453*53ee8cc1Swenshuai.xi /// SAR result for failure 454*53ee8cc1Swenshuai.xi E_SAR_GPIO_FAIL =0, 455*53ee8cc1Swenshuai.xi /// SAR result for OK 456*53ee8cc1Swenshuai.xi E_SAR_GPIO_OK = 1, 457*53ee8cc1Swenshuai.xi 458*53ee8cc1Swenshuai.xi } SAR_GpioResult; 459*53ee8cc1Swenshuai.xi 460*53ee8cc1Swenshuai.xi ///Define SAR GPIO debug level 461*53ee8cc1Swenshuai.xi typedef enum 462*53ee8cc1Swenshuai.xi { 463*53ee8cc1Swenshuai.xi E_SAR_GPIO_DBGLVL_NONE = 0, /// no debug message 464*53ee8cc1Swenshuai.xi E_SAR_GPIO_DBGLVL_WARNING, /// show warning only 465*53ee8cc1Swenshuai.xi E_SAR_GPIO_DBGLVL_ERROR, /// show error only 466*53ee8cc1Swenshuai.xi E_SAR_GPIO_DBGLVL_INFO, /// show error & informaiton 467*53ee8cc1Swenshuai.xi E_SAR_GPIO_DBGLVL_ALL, /// show error, information & funciton name 468*53ee8cc1Swenshuai.xi }SAR_GpioDbgLvl; 469*53ee8cc1Swenshuai.xi 470*53ee8cc1Swenshuai.xi //Define SAR GetKey Value Struct ========== 471*53ee8cc1Swenshuai.xi typedef struct _SAR_KeyValue_Data_Member 472*53ee8cc1Swenshuai.xi { 473*53ee8cc1Swenshuai.xi MS_U8 u8Channel; 474*53ee8cc1Swenshuai.xi MS_U8 u8Key; 475*53ee8cc1Swenshuai.xi MS_U8 u8Repeat; 476*53ee8cc1Swenshuai.xi }SAR_KeyValue_Data_Member; 477*53ee8cc1Swenshuai.xi 478*53ee8cc1Swenshuai.xi typedef union 479*53ee8cc1Swenshuai.xi { 480*53ee8cc1Swenshuai.xi SAR_KeyValue_Data_Member sData[16]; 481*53ee8cc1Swenshuai.xi } SAR_KeyValue_Data; 482*53ee8cc1Swenshuai.xi 483*53ee8cc1Swenshuai.xi typedef struct _SAR_KeyValue 484*53ee8cc1Swenshuai.xi { 485*53ee8cc1Swenshuai.xi MS_U32 u32Version; 486*53ee8cc1Swenshuai.xi SAR_KeyValue_Data unSarKeyData; 487*53ee8cc1Swenshuai.xi MS_U32 u32Num; //u32Num indicate number of current really getting SAR key 488*53ee8cc1Swenshuai.xi }SAR_KeyValue; 489*53ee8cc1Swenshuai.xi 490*53ee8cc1Swenshuai.xi //################## 491*53ee8cc1Swenshuai.xi // 492*53ee8cc1Swenshuai.xi // For SAR SMC functions 493*53ee8cc1Swenshuai.xi // 494*53ee8cc1Swenshuai.xi //################## 495*53ee8cc1Swenshuai.xi /// emurate SAR SMC fucntion return result 496*53ee8cc1Swenshuai.xi typedef enum{ 497*53ee8cc1Swenshuai.xi E_SAR_SMC_FAIL =0, 498*53ee8cc1Swenshuai.xi E_SAR_SMC_OK = 1, 499*53ee8cc1Swenshuai.xi }SAR_SmcResult; 500*53ee8cc1Swenshuai.xi 501*53ee8cc1Swenshuai.xi // Define SMC interrupt level 502*53ee8cc1Swenshuai.xi typedef enum{ 503*53ee8cc1Swenshuai.xi E_SAR_SMC_INT_LOW_ACT =0, 504*53ee8cc1Swenshuai.xi E_SAR_SMC_INT_HIGH_ACT = 1 505*53ee8cc1Swenshuai.xi }SAR_SmcIntLevel; 506*53ee8cc1Swenshuai.xi 507*53ee8cc1Swenshuai.xi ///Define SAR SMC debug level 508*53ee8cc1Swenshuai.xi typedef enum 509*53ee8cc1Swenshuai.xi { 510*53ee8cc1Swenshuai.xi E_SAR_SMC_DBGLVL_NONE = 0, /// no debug message 511*53ee8cc1Swenshuai.xi E_SAR_SMC_DBGLVL_WARNING, /// show warning only 512*53ee8cc1Swenshuai.xi E_SAR_SMC_DBGLVL_ERROR, /// show error only 513*53ee8cc1Swenshuai.xi E_SAR_SMC_DBGLVL_INFO, /// show error & informaiton 514*53ee8cc1Swenshuai.xi E_SAR_SMC_DBGLVL_ALL, /// show error, information & funciton name 515*53ee8cc1Swenshuai.xi }SAR_SmcDbgLvl; 516*53ee8cc1Swenshuai.xi //=============================== 517*53ee8cc1Swenshuai.xi 518*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 519*53ee8cc1Swenshuai.xi // Function and Variable 520*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 521*53ee8cc1Swenshuai.xi //################################## 522*53ee8cc1Swenshuai.xi // 523*53ee8cc1Swenshuai.xi // Access SAR settings by using Mailbox 524*53ee8cc1Swenshuai.xi // sent commands to PM 525*53ee8cc1Swenshuai.xi // 526*53ee8cc1Swenshuai.xi //################################## 527*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 528*53ee8cc1Swenshuai.xi /// SAR Iinitialized function before using SAR to receive keys. (This sends command to PM51 using mailbox.) 529*53ee8cc1Swenshuai.xi /// @ingroup G_SAR_INIT 530*53ee8cc1Swenshuai.xi /// @return E_SAR_OK: Success 531*53ee8cc1Swenshuai.xi /// @return E_SAR_FAIL or other values: Failure 532*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 533*53ee8cc1Swenshuai.xi SAR_Result MDrv_SAR_Init(void); 534*53ee8cc1Swenshuai.xi 535*53ee8cc1Swenshuai.xi 536*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 537*53ee8cc1Swenshuai.xi /// SAR parameter configuration function. (This sends command to PM51 using mailbox.) 538*53ee8cc1Swenshuai.xi /// @ingroup G_SAR_COMMON 539*53ee8cc1Swenshuai.xi /// @param pSARRegCfg \b IN: pointer to the SAR configuration structure. 540*53ee8cc1Swenshuai.xi /// @return E_SAR_OK: Success 541*53ee8cc1Swenshuai.xi /// @return E_SAR_FAIL or other values: Failure 542*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 543*53ee8cc1Swenshuai.xi SAR_Result MDrv_SAR_Config(SAR_RegCfg *pSARRegCfg); 544*53ee8cc1Swenshuai.xi 545*53ee8cc1Swenshuai.xi 546*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 547*53ee8cc1Swenshuai.xi /// SAR get key code function. (This sends command to PM51 using mailbox.) 548*53ee8cc1Swenshuai.xi /// @ingroup G_SAR_COMMON 549*53ee8cc1Swenshuai.xi /// @param pu8Key \b OUT: Get SAR key code 550*53ee8cc1Swenshuai.xi /// @param pu8Repeat \b OUT: Get SAR key repeat status 551*53ee8cc1Swenshuai.xi /// @return E_SAR_OK: Success 552*53ee8cc1Swenshuai.xi /// @return E_SAR_FAIL or other values: Failure 553*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 554*53ee8cc1Swenshuai.xi SAR_Result MDrv_SAR_GetKeyCode(MS_U8 *pu8Key, MS_U8 *pu8Repeat); 555*53ee8cc1Swenshuai.xi 556*53ee8cc1Swenshuai.xi 557*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 558*53ee8cc1Swenshuai.xi /// Set SAR callback function when receive SAR key. Support only one callback. If call it twice, 559*53ee8cc1Swenshuai.xi /// the first callback does not be called. (This sends command to PM51 using mailbox.) 560*53ee8cc1Swenshuai.xi /// Note: The callback runs at interrupt mode. 561*53ee8cc1Swenshuai.xi /// @ingroup G_SAR_COMMON 562*53ee8cc1Swenshuai.xi /// @param pCallback \b IN: Set the callback function when generate SAR interrupt. 563*53ee8cc1Swenshuai.xi /// @return E_SAR_OK: Success 564*53ee8cc1Swenshuai.xi /// @return E_SAR_FAIL or other values: Failure 565*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 566*53ee8cc1Swenshuai.xi SAR_Result MDrv_SAR_SetCallback(SAR_Callback pCallback); 567*53ee8cc1Swenshuai.xi 568*53ee8cc1Swenshuai.xi 569*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 570*53ee8cc1Swenshuai.xi /// Get SAR callback function which receive SAR key. 571*53ee8cc1Swenshuai.xi /// @ingroup G_SAR_COMMON 572*53ee8cc1Swenshuai.xi /// @return the callback function when generate SAR interrupt 573*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 574*53ee8cc1Swenshuai.xi SAR_Callback MDrv_SAR_GetCallback(void); 575*53ee8cc1Swenshuai.xi 576*53ee8cc1Swenshuai.xi 577*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 578*53ee8cc1Swenshuai.xi /// Get SAR library version function. 579*53ee8cc1Swenshuai.xi /// @ingroup G_SAR_COMMON 580*53ee8cc1Swenshuai.xi /// @param ppVersion \b OUT: pointer to library structure 581*53ee8cc1Swenshuai.xi /// @return E_SAR_OK: Success 582*53ee8cc1Swenshuai.xi /// @return E_SAR_FAIL or other values: Failure 583*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 584*53ee8cc1Swenshuai.xi SAR_Result MDrv_SAR_GetLibVer(const MSIF_Version **ppVersion); 585*53ee8cc1Swenshuai.xi 586*53ee8cc1Swenshuai.xi 587*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 588*53ee8cc1Swenshuai.xi /// Get SAR status function. (This sends command to PM51 using mailbox.) 589*53ee8cc1Swenshuai.xi /// @ingroup G_SAR_COMMON 590*53ee8cc1Swenshuai.xi /// @param pu8SARStatus \b OUT: pointer to status structure 591*53ee8cc1Swenshuai.xi /// @return E_SAR_OK: Success 592*53ee8cc1Swenshuai.xi /// @return E_SAR_FAIL or other values: Failure 593*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 594*53ee8cc1Swenshuai.xi SAR_Result MDrv_SAR_GetStatus(MS_U8 *pu8SARStatus); 595*53ee8cc1Swenshuai.xi 596*53ee8cc1Swenshuai.xi 597*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 598*53ee8cc1Swenshuai.xi /// Set SAR enable function. (This sends command to PM51 using mailbox.) 599*53ee8cc1Swenshuai.xi /// @ingroup G_SAR_COMMON 600*53ee8cc1Swenshuai.xi /// @param bEnable \b IN: TRUE: enable SAR, FALSE: disable SAR 601*53ee8cc1Swenshuai.xi /// @return E_SAR_OK: Success 602*53ee8cc1Swenshuai.xi /// @return E_SAR_FAIL or other values: Failure 603*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 604*53ee8cc1Swenshuai.xi SAR_Result MDrv_SAR_Enable(MS_BOOL bEnable); 605*53ee8cc1Swenshuai.xi 606*53ee8cc1Swenshuai.xi 607*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 608*53ee8cc1Swenshuai.xi /// Get SAR driver information function. (This sends command to PM51 using mailbox.) 609*53ee8cc1Swenshuai.xi /// @ingroup G_SAR_COMMON 610*53ee8cc1Swenshuai.xi /// @return @ref SAR_DrvInfo structure 611*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 612*53ee8cc1Swenshuai.xi const SAR_DrvInfo* MDrv_SAR_GetInfo(void); 613*53ee8cc1Swenshuai.xi 614*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 615*53ee8cc1Swenshuai.xi /// Set SAR debug function level. 616*53ee8cc1Swenshuai.xi /// @ingroup G_SAR_COMMON 617*53ee8cc1Swenshuai.xi /// @param eLevel \b IN: E_SAR_DBGLVL_NONE/E_SAR_DBGLVL_WARNING/E_SAR_DBGLVL_ERROR/E_SAR_DBGLVL_INFO/E_SAR_DBGLVL_ALL 618*53ee8cc1Swenshuai.xi /// @return E_SAR_OK: Success 619*53ee8cc1Swenshuai.xi /// @return E_SAR_FAIL or other values: Failure 620*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 621*53ee8cc1Swenshuai.xi SAR_Result MDrv_SAR_SetDbgLevel(SAR_DbgLvl eLevel); 622*53ee8cc1Swenshuai.xi 623*53ee8cc1Swenshuai.xi 624*53ee8cc1Swenshuai.xi 625*53ee8cc1Swenshuai.xi //################################## 626*53ee8cc1Swenshuai.xi // 627*53ee8cc1Swenshuai.xi // Access SAR settings directly by RIU without 628*53ee8cc1Swenshuai.xi // using Mailbox sent commands to PM 629*53ee8cc1Swenshuai.xi // 630*53ee8cc1Swenshuai.xi //################################## 631*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 632*53ee8cc1Swenshuai.xi /// Set SAR Keypad initialized function. 633*53ee8cc1Swenshuai.xi /// @ingroup G_SAR_INIT 634*53ee8cc1Swenshuai.xi /// @param None: 635*53ee8cc1Swenshuai.xi /// @return E_SAR_KPD_OK: Success 636*53ee8cc1Swenshuai.xi /// @return E_SAR_KPD_FAIL or other values: Failure 637*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 638*53ee8cc1Swenshuai.xi SAR_KpdResult MDrv_SAR_Kpd_Init(void); 639*53ee8cc1Swenshuai.xi 640*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 641*53ee8cc1Swenshuai.xi /// Set SAR Keypad channel information function. 642*53ee8cc1Swenshuai.xi /// @ingroup G_SAR_COMMON 643*53ee8cc1Swenshuai.xi /// @param sarChInfo: sar channel info pointer 644*53ee8cc1Swenshuai.xi /// @return E_SAR_KPD_OK: Success 645*53ee8cc1Swenshuai.xi /// @return E_SAR_KPD_FAIL or other values: Failure 646*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 647*53ee8cc1Swenshuai.xi SAR_KpdResult MDrv_SAR_Kpd_SetChInfo(SAR_KpdRegCfg *sarChInfo); 648*53ee8cc1Swenshuai.xi 649*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 650*53ee8cc1Swenshuai.xi /// Get SAR Keypad key code function. 651*53ee8cc1Swenshuai.xi /// @ingroup G_SAR_COMMON 652*53ee8cc1Swenshuai.xi /// @param pu8Key: key code pointer 653*53ee8cc1Swenshuai.xi /// @param pu8Repeat: key repeat pointer 654*53ee8cc1Swenshuai.xi /// @return E_SAR_KPD_OK: Success 655*53ee8cc1Swenshuai.xi /// @return E_SAR_KPD_FAIL or other values: Failure 656*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 657*53ee8cc1Swenshuai.xi SAR_KpdResult MDrv_SAR_Kpd_GetKeyCode(MS_U8 *pu8Key, MS_U8 *pu8Repeat); 658*53ee8cc1Swenshuai.xi 659*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 660*53ee8cc1Swenshuai.xi /// Get SAR Multi-Keypad key code function with every SAR channel 661*53ee8cc1Swenshuai.xi /// @ingroup G_SAR_COMMON 662*53ee8cc1Swenshuai.xi /// @param SAR_KeyValue: key code struct pointer 663*53ee8cc1Swenshuai.xi /// @param u32Size: Struct Size 664*53ee8cc1Swenshuai.xi /// @return E_SAR_KPD_OK: Success 665*53ee8cc1Swenshuai.xi /// @return E_SAR_KPD_FAIL or other values: Failure 666*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 667*53ee8cc1Swenshuai.xi SAR_KpdResult MDrv_SAR_Kpd_GetMultiKeyCode(SAR_KeyValue *sSarKey, MS_U32 u32Size); 668*53ee8cc1Swenshuai.xi 669*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 670*53ee8cc1Swenshuai.xi /// Get SAR current status function. 671*53ee8cc1Swenshuai.xi /// @ingroup G_SAR_COMMON 672*53ee8cc1Swenshuai.xi /// @param None: 673*53ee8cc1Swenshuai.xi /// @return E_SAR_KPD_INIT_OK: Init OK 674*53ee8cc1Swenshuai.xi /// @return others: other status 675*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 676*53ee8cc1Swenshuai.xi SAR_KpdStatus MDrv_SAR_Kpd_GetStatus(void); 677*53ee8cc1Swenshuai.xi 678*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 679*53ee8cc1Swenshuai.xi /// Get SAR Keypad driver information function. 680*53ee8cc1Swenshuai.xi /// @ingroup G_SAR_COMMON 681*53ee8cc1Swenshuai.xi /// @return @ref SAR_KpdDrvInfo structure 682*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 683*53ee8cc1Swenshuai.xi const SAR_KpdDrvInfo* MDrv_SAR_Kpd_GetInfo(void); 684*53ee8cc1Swenshuai.xi 685*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 686*53ee8cc1Swenshuai.xi /// Set SAR Keypad debug function level. 687*53ee8cc1Swenshuai.xi /// @ingroup G_SAR_COMMON 688*53ee8cc1Swenshuai.xi /// @param eLevel \b IN: E_SAR_KPD_DBGLVL_NONE/E_SAR_KPD_DBGLVL_WARNING/E_SAR_KPD_DBGLVL_ERROR/E_SAR_KPD_DBGLVL_INFO/E_SAR_KPD_DBGLVL_ALL 689*53ee8cc1Swenshuai.xi /// @return E_SAR_KPD_OK: Success 690*53ee8cc1Swenshuai.xi /// @return E_SAR_KPD_FAIL or other values: Failure 691*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 692*53ee8cc1Swenshuai.xi SAR_KpdResult MDrv_SAR_Kpd_SetDbgLevel(SAR_KpdDbgLvl eLevel); 693*53ee8cc1Swenshuai.xi 694*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 695*53ee8cc1Swenshuai.xi /// Set SAR as ADC channel. 696*53ee8cc1Swenshuai.xi /// @ingroup G_SAR_COMMON 697*53ee8cc1Swenshuai.xi /// @param u8Channel: sar ADC channel 0~7 698*53ee8cc1Swenshuai.xi /// @param bEnable: 1: configured as ADC, 0: configured as GPIO input 699*53ee8cc1Swenshuai.xi /// @return E_SAR_ADC_OK: Success 700*53ee8cc1Swenshuai.xi /// @return E_SAR_ADC_FAIL or other values: Failure 701*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 702*53ee8cc1Swenshuai.xi SAR_AdcResult MDrv_SAR_Adc_Config(MS_U8 u8Channel,MS_BOOL bEnable); 703*53ee8cc1Swenshuai.xi 704*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 705*53ee8cc1Swenshuai.xi /// Get ADC value function for each SAR channel. 706*53ee8cc1Swenshuai.xi /// @ingroup G_SAR_COMMON 707*53ee8cc1Swenshuai.xi /// @param u8Channel: sar ADC channel 0~7 708*53ee8cc1Swenshuai.xi /// @return MS_U8: ADC value 709*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 710*53ee8cc1Swenshuai.xi MS_U8 MDrv_SAR_Adc_GetValue(MS_U8 u8Channel); 711*53ee8cc1Swenshuai.xi 712*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 713*53ee8cc1Swenshuai.xi /// Set SAR High channel function for RGB HSync application 714*53ee8cc1Swenshuai.xi /// @ingroup G_SAR_COMMON 715*53ee8cc1Swenshuai.xi /// @param bEnable: 1: enable high channel, 0: disable high channel 716*53ee8cc1Swenshuai.xi /// @return E_SAR_ADC_OK: Success 717*53ee8cc1Swenshuai.xi /// @return E_SAR_ADC_FAIL or other values: Failure 718*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 719*53ee8cc1Swenshuai.xi SAR_AdcResult MDrv_SAR_Adc_SetHSyncChEn(MS_BOOL bEnable); 720*53ee8cc1Swenshuai.xi 721*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 722*53ee8cc1Swenshuai.xi /// Switch RGB HSync MUX to direct signal to SAR High channel 723*53ee8cc1Swenshuai.xi /// @ingroup G_SAR_COMMON 724*53ee8cc1Swenshuai.xi /// @param u8HsynCh: HSync channel: 0, 1, 2, 3 725*53ee8cc1Swenshuai.xi /// @return E_SAR_ADC_OK: Success 726*53ee8cc1Swenshuai.xi /// @return E_SAR_ADC_FAIL or other values: Failure 727*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 728*53ee8cc1Swenshuai.xi SAR_AdcResult MDrv_SAR_Adc_SetHSyncCh(SAR_AdcHSyncCh eHSyncCh); 729*53ee8cc1Swenshuai.xi 730*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 731*53ee8cc1Swenshuai.xi /// Set SAR ADC debug function level. 732*53ee8cc1Swenshuai.xi /// @ingroup G_SAR_COMMON 733*53ee8cc1Swenshuai.xi /// @param eLevel \b IN: E_SAR_ADC_DBGLVL_NONE/E_SAR_ADC_DBGLVL_WARNING/E_SAR_ADC_DBGLVL_ERROR/E_SAR_ADC_DBGLVL_INFO/E_SAR_ADC_DBGLVL_ALL 734*53ee8cc1Swenshuai.xi /// @return E_SAR_ADC_OK: Success 735*53ee8cc1Swenshuai.xi /// @return E_SAR_ADC_FAIL or other values: Failure 736*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 737*53ee8cc1Swenshuai.xi SAR_AdcResult MDrv_SAR_Adc_SetDbgLevel(SAR_AdcDbgLvl eLevel); 738*53ee8cc1Swenshuai.xi 739*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 740*53ee8cc1Swenshuai.xi /// Set SAR as GPIO channel. 741*53ee8cc1Swenshuai.xi /// @ingroup G_SAR_COMMON 742*53ee8cc1Swenshuai.xi /// @param u8Channel: sar GPIO channel 0~7 743*53ee8cc1Swenshuai.xi /// @param u8InOut: 1: Input, 0:output 744*53ee8cc1Swenshuai.xi /// @return E_SAR_GPIO_OK: Success 745*53ee8cc1Swenshuai.xi /// @return E_SAR_GPIO_FAIL or other values: Failure 746*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 747*53ee8cc1Swenshuai.xi SAR_GpioResult MDrv_SAR_Gpio_CfgDir(MS_U8 u8Channel,MS_BOOL u8InOut); 748*53ee8cc1Swenshuai.xi 749*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 750*53ee8cc1Swenshuai.xi /// Set SAR GPIO channel High/Low 751*53ee8cc1Swenshuai.xi /// @ingroup G_SAR_CONTROL 752*53ee8cc1Swenshuai.xi /// @param u8Channel: sar GPIO channel 0~7 753*53ee8cc1Swenshuai.xi /// @param bHighLow: 1: High, 0:low 754*53ee8cc1Swenshuai.xi /// @return E_SAR_GPIO_OK: Success 755*53ee8cc1Swenshuai.xi /// @return E_SAR_GPIO_FAIL or other values: Failure 756*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 757*53ee8cc1Swenshuai.xi SAR_GpioResult MDrv_SAR_Gpio_SetOutput(MS_U8 u8Channel,MS_BOOL bHighLow); 758*53ee8cc1Swenshuai.xi 759*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 760*53ee8cc1Swenshuai.xi /// Get SAR GPIO channel High/Low 761*53ee8cc1Swenshuai.xi /// @ingroup G_SAR_COMMON 762*53ee8cc1Swenshuai.xi /// @param u8Channel: sar GPIO channel 0~7 763*53ee8cc1Swenshuai.xi /// @param pbResult: pointer to get Input level 764*53ee8cc1Swenshuai.xi /// @return E_SAR_GPIO_OK: Success 765*53ee8cc1Swenshuai.xi /// @return E_SAR_GPIO_FAIL or other values: Failure 766*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 767*53ee8cc1Swenshuai.xi SAR_GpioResult MDrv_SAR_Gpio_GetInput(MS_U8 u8Channel, MS_BOOL* pbResult); 768*53ee8cc1Swenshuai.xi 769*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 770*53ee8cc1Swenshuai.xi /// Set SAR GPIO debug function level. 771*53ee8cc1Swenshuai.xi /// @ingroup G_SAR_COMMON 772*53ee8cc1Swenshuai.xi /// @param eLevel \b IN: E_SAR_GPIO_DBGLVL_NONE/E_SAR_GPIO_DBGLVL_WARNING/E_SAR_GPIO_DBGLVL_ERROR/E_SAR_GPIO_DBGLVL_INFO/E_SAR_GPIO_DBGLVL_ALL 773*53ee8cc1Swenshuai.xi /// @return E_SAR_GPIO_OK: Success 774*53ee8cc1Swenshuai.xi /// @return E_SAR_GPIO_FAIL or other values: Failure 775*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 776*53ee8cc1Swenshuai.xi SAR_GpioResult MDrv_SAR_Gpio_SetDbgLevel(SAR_GpioDbgLvl eLevel); 777*53ee8cc1Swenshuai.xi 778*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 779*53ee8cc1Swenshuai.xi /// Set SAR Interrupt mask 780*53ee8cc1Swenshuai.xi /// @ingroup G_SAR_COMMON 781*53ee8cc1Swenshuai.xi /// @param u8Channel: sar GPIO channel 0~7 782*53ee8cc1Swenshuai.xi /// @param bEnable: 1: enable interrupt, 0: disable interrupt 783*53ee8cc1Swenshuai.xi /// @return E_SAR_GPIO_OK: Success 784*53ee8cc1Swenshuai.xi /// @return E_SAR_GPIO_FAIL or other values: Failure 785*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 786*53ee8cc1Swenshuai.xi SAR_GpioResult MDrv_SAR_CfgInterrupt(MS_U8 u8Channel, MS_BOOL bEnable); 787*53ee8cc1Swenshuai.xi 788*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 789*53ee8cc1Swenshuai.xi /// Set SAR Interrupt wakeup 790*53ee8cc1Swenshuai.xi /// @ingroup G_SAR_COMMON 791*53ee8cc1Swenshuai.xi /// @param bEnable: 1: enable interrupt, 0: disable interrupt 792*53ee8cc1Swenshuai.xi /// @return E_SAR_GPIO_OK: Success 793*53ee8cc1Swenshuai.xi /// @return E_SAR_GPIO_FAIL or other values: Failure 794*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 795*53ee8cc1Swenshuai.xi SAR_GpioResult MDrv_SAR_CfgPMWakeup(MS_BOOL bEnable); 796*53ee8cc1Swenshuai.xi 797*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 798*53ee8cc1Swenshuai.xi /// Set SAR Clear Interrupt Status 799*53ee8cc1Swenshuai.xi /// @ingroup G_SAR_CONTROL 800*53ee8cc1Swenshuai.xi /// @param u8Channel: sar GPIO channel 0~7 801*53ee8cc1Swenshuai.xi /// @return E_SAR_GPIO_OK: Success 802*53ee8cc1Swenshuai.xi /// @return E_SAR_GPIO_FAIL or other values: Failure 803*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 804*53ee8cc1Swenshuai.xi void MDrv_SAR_ClearInterrupt(MS_U8 u8Channel); 805*53ee8cc1Swenshuai.xi 806*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 807*53ee8cc1Swenshuai.xi /// Get SAR Status 808*53ee8cc1Swenshuai.xi /// @ingroup G_SAR_COMMON 809*53ee8cc1Swenshuai.xi /// @param u8Channel: sar GPIO channel 0~7 810*53ee8cc1Swenshuai.xi /// @return E_SAR_GPIO_OK: trigger interrupt 811*53ee8cc1Swenshuai.xi /// @return E_SAR_GPIO_FAIL or interrrupt do not trigger 812*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 813*53ee8cc1Swenshuai.xi SAR_GpioResult MDrv_SAR_GetInterruptStatus(MS_U8 u8Channel); 814*53ee8cc1Swenshuai.xi 815*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 816*53ee8cc1Swenshuai.xi /// MOBF Encrypt 817*53ee8cc1Swenshuai.xi /// @ingroup G_SAR_ToBeRemove 818*53ee8cc1Swenshuai.xi /// @param u32Key \b IN: Key 819*53ee8cc1Swenshuai.xi /// @param bEnable \b IN: TRUE/FLASE 820*53ee8cc1Swenshuai.xi /// @return DRVAESDMA_OK : Success 821*53ee8cc1Swenshuai.xi /// @return Others : Fail 822*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 823*53ee8cc1Swenshuai.xi SAR_KpdResult MDrv_SAR_Kpd_MMIO_Init(void); 824*53ee8cc1Swenshuai.xi 825*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 826*53ee8cc1Swenshuai.xi /// MOBF Encrypt 827*53ee8cc1Swenshuai.xi /// @ingroup G_SAR_COMMON 828*53ee8cc1Swenshuai.xi /// @param u32Key \b IN: Key 829*53ee8cc1Swenshuai.xi /// @param bEnable \b IN: TRUE/FLASE 830*53ee8cc1Swenshuai.xi /// @return DRVAESDMA_OK : Success 831*53ee8cc1Swenshuai.xi /// @return Others : Fail 832*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 833*53ee8cc1Swenshuai.xi SAR_KpdResult MDrv_SAR_Kpd_CfgChannelBound(MS_U8 u8Channel, MS_U16 u16Upper, MS_U16 u16Lower); 834*53ee8cc1Swenshuai.xi 835*53ee8cc1Swenshuai.xi SAR_KpdResult MDrv_SAR_Kpd_SetADCSamplingDuration(MS_U8 u8Duration); 836*53ee8cc1Swenshuai.xi 837*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 838*53ee8cc1Swenshuai.xi /// Set SAR 2.0V / 3.3V Level 839*53ee8cc1Swenshuai.xi /// @ingroup G_SAR_COMMON 840*53ee8cc1Swenshuai.xi /// @param eSarLevel: E_SAR_33V: 3.3V, E_SAR_20V: 2.0V 841*53ee8cc1Swenshuai.xi /// @return Void 842*53ee8cc1Swenshuai.xi /// @return Void 843*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 844*53ee8cc1Swenshuai.xi void MDrv_SAR_SetLevel(SAR_LEVEL eSarLevel); 845*53ee8cc1Swenshuai.xi 846*53ee8cc1Swenshuai.xi 847*53ee8cc1Swenshuai.xi MS_U32 MDrv_SAR_SetPowerState(EN_POWER_MODE u16PowerState); 848*53ee8cc1Swenshuai.xi 849*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 850*53ee8cc1Swenshuai.xi /// Set SAR Smart Card power detect configure function. 851*53ee8cc1Swenshuai.xi /// @param u8SarSmcIntChID: The sar channel ID of smart card power good interrupt 852*53ee8cc1Swenshuai.xi /// @param eSmcIntLevel \b IN: E_SAR_SMC_INT_LOW_ACT/E_SAR_SMC_INT_HIGH_ACT 853*53ee8cc1Swenshuai.xi /// @param u32BndVal: The sar channel bound value: 0x00(0V) ~ 0x3FF(3.3V) 854*53ee8cc1Swenshuai.xi /// @return E_SAR_SMC_OK: Success 855*53ee8cc1Swenshuai.xi /// @return E_SAR_SMC_FAIL or other values: Failure 856*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 857*53ee8cc1Swenshuai.xi SAR_SmcResult MDrv_SAR_Smc_PwrDetCfg(MS_U8 u8SarSmcIntChID, SAR_SmcIntLevel eSmcIntLevel, MS_U32 u32BndVal); 858*53ee8cc1Swenshuai.xi 859*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 860*53ee8cc1Swenshuai.xi /// Set SAR SMC debug function level. 861*53ee8cc1Swenshuai.xi /// @param eLevel \b IN: E_SAR_SMC_DBGLVL_NONE/E_SAR_SMC_DBGLVL_WARNING/E_SAR_SMC_DBGLVL_ERROR/E_SAR_SMC_DBGLVL_INFO/E_SAR_SMC_DBGLVL_ALL 862*53ee8cc1Swenshuai.xi /// @return E_SAR_SMC_OK: Success 863*53ee8cc1Swenshuai.xi /// @return E_SAR_SMC_FAIL or other values: Failure 864*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 865*53ee8cc1Swenshuai.xi SAR_SmcResult MDrv_SAR_Smc_SetDbgLevel(SAR_SmcDbgLvl eLevel); 866*53ee8cc1Swenshuai.xi 867*53ee8cc1Swenshuai.xi 868*53ee8cc1Swenshuai.xi 869*53ee8cc1Swenshuai.xi 870*53ee8cc1Swenshuai.xi 871*53ee8cc1Swenshuai.xi 872*53ee8cc1Swenshuai.xi typedef enum { 873*53ee8cc1Swenshuai.xi MDrv_CMD_Kpd_GetKeyCode, 874*53ee8cc1Swenshuai.xi } eSARIoctlOpt; 875*53ee8cc1Swenshuai.xi 876*53ee8cc1Swenshuai.xi 877*53ee8cc1Swenshuai.xi 878*53ee8cc1Swenshuai.xi 879*53ee8cc1Swenshuai.xi 880*53ee8cc1Swenshuai.xi 881*53ee8cc1Swenshuai.xi 882*53ee8cc1Swenshuai.xi typedef struct _SAR_Kpd_GetKeyCode_PARAM 883*53ee8cc1Swenshuai.xi { 884*53ee8cc1Swenshuai.xi MS_U8 *pu8Key; 885*53ee8cc1Swenshuai.xi MS_U8 *pu8Repeat; 886*53ee8cc1Swenshuai.xi } SAR_Kpd_GetKeyCode_PARAM; 887*53ee8cc1Swenshuai.xi 888*53ee8cc1Swenshuai.xi 889*53ee8cc1Swenshuai.xi 890*53ee8cc1Swenshuai.xi 891*53ee8cc1Swenshuai.xi typedef SAR_KpdResult (*IOCTL_SAR_Kpd_GetKeyCode)(MS_U8 *pu8Key, MS_U8 *pu8Repeat); 892*53ee8cc1Swenshuai.xi 893*53ee8cc1Swenshuai.xi 894*53ee8cc1Swenshuai.xi typedef struct _SAR_INSTANT_PRIVATE 895*53ee8cc1Swenshuai.xi { 896*53ee8cc1Swenshuai.xi 897*53ee8cc1Swenshuai.xi IOCTL_SAR_Kpd_GetKeyCode fpSARKpdGetKeyCode; 898*53ee8cc1Swenshuai.xi 899*53ee8cc1Swenshuai.xi }SAR_INSTANT_PRIVATE; 900*53ee8cc1Swenshuai.xi 901*53ee8cc1Swenshuai.xi 902*53ee8cc1Swenshuai.xi //SAR_Private 903*53ee8cc1Swenshuai.xi typedef struct _SAR_RESOURCE_PRIVATE 904*53ee8cc1Swenshuai.xi { 905*53ee8cc1Swenshuai.xi MS_U32 Dummy; 906*53ee8cc1Swenshuai.xi }SAR_RESOURCE_PRIVATE; 907*53ee8cc1Swenshuai.xi 908*53ee8cc1Swenshuai.xi //T-Sensor 909*53ee8cc1Swenshuai.xi typedef void (*TSENSOR_CB_FUNC)(void); 910*53ee8cc1Swenshuai.xi 911*53ee8cc1Swenshuai.xi MS_BOOL MDrv_TSensor_GetTemperatureRange(MS_S16 *s16UpBound_C, MS_S16 *s16LowBound_C); 912*53ee8cc1Swenshuai.xi MS_S16 MDrv_TSensor_GetTemperature(void); 913*53ee8cc1Swenshuai.xi MS_BOOL MDrv_TSensor_Init(void); 914*53ee8cc1Swenshuai.xi MS_BOOL MDrv_TSensor_SetTemperatureMointerRange (MS_S16 s16UpBound_C, MS_S16 s16LowBound_C, TSENSOR_CB_FUNC pTSensor); 915*53ee8cc1Swenshuai.xi MS_BOOL MDrv_TSensorIRQClear(void); 916*53ee8cc1Swenshuai.xi #ifdef __cplusplus 917*53ee8cc1Swenshuai.xi } 918*53ee8cc1Swenshuai.xi #endif 919*53ee8cc1Swenshuai.xi 920*53ee8cc1Swenshuai.xi 921*53ee8cc1Swenshuai.xi #endif // _DRV_SAR_H_ 922*53ee8cc1Swenshuai.xi 923