xref: /utopia/UTPA2-700.0.x/mxlib/include/apiMHL.h (revision 53ee8cc121a030b8d368113ac3e966b4705770ef)
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 /// @file   Mapi_mhl.h
81*53ee8cc1Swenshuai.xi /// @author MStar Semiconductor Inc.
82*53ee8cc1Swenshuai.xi /// @brief  MHL driver Function
83*53ee8cc1Swenshuai.xi ///////////////////////////////////////////////////////////////////////////////////////////////////
84*53ee8cc1Swenshuai.xi 
85*53ee8cc1Swenshuai.xi /*
86*53ee8cc1Swenshuai.xi */
87*53ee8cc1Swenshuai.xi 
88*53ee8cc1Swenshuai.xi /*! \defgroup MISC MISC modules
89*53ee8cc1Swenshuai.xi  * \defgroup MHL MHL interface (apiMHL.h)
90*53ee8cc1Swenshuai.xi  *  \ingroup MISC
91*53ee8cc1Swenshuai.xi     <b>Operation Flow</b>
92*53ee8cc1Swenshuai.xi     -# Check whether MHL cable is plugged or not in Rx side
93*53ee8cc1Swenshuai.xi     -# Disable R-term and output Vbus
94*53ee8cc1Swenshuai.xi     -# Check whether Cbus is connected(discovery pulse completed)
95*53ee8cc1Swenshuai.xi     -# Sink -> Source: "SET_HPD"
96*53ee8cc1Swenshuai.xi     -# Sink -> Source: Write_Stat - "DCAP_RDY" and Write_INT - "DCAP_CHG"
97*53ee8cc1Swenshuai.xi     -# Sink -> Source: Write_Stat - "PATH_EN"
98*53ee8cc1Swenshuai.xi 
99*53ee8cc1Swenshuai.xi 
100*53ee8cc1Swenshuai.xi  * \defgroup MHL_BASIC MHL Module basic
101*53ee8cc1Swenshuai.xi  *  \ingroup MHL
102*53ee8cc1Swenshuai.xi  * \defgroup MHL_CAPABILITY MHL capability setting
103*53ee8cc1Swenshuai.xi  *  \ingroup MHL
104*53ee8cc1Swenshuai.xi  * \defgroup MHL_CONFIG MHL pad config
105*53ee8cc1Swenshuai.xi  *  \ingroup MHL
106*53ee8cc1Swenshuai.xi  * \defgroup MHL_STATUS MHL status flag
107*53ee8cc1Swenshuai.xi  *  \ingroup MHL
108*53ee8cc1Swenshuai.xi  * \defgroup MHL_SEND MHL Tx send function
109*53ee8cc1Swenshuai.xi  *  \ingroup MHL
110*53ee8cc1Swenshuai.xi  * \defgroup MHL_RECEIVE MHL Rx recevice data
111*53ee8cc1Swenshuai.xi  *  \ingroup MHL
112*53ee8cc1Swenshuai.xi  * \defgroup MHL_CALLBACK MHL call back function
113*53ee8cc1Swenshuai.xi  *  \ingroup MHL
114*53ee8cc1Swenshuai.xi  * \defgroup MHL_REMOVE MHL want to remove function
115*53ee8cc1Swenshuai.xi  *  \ingroup MHL
116*53ee8cc1Swenshuai.xi */
117*53ee8cc1Swenshuai.xi 
118*53ee8cc1Swenshuai.xi #ifndef _API_MHL_H_
119*53ee8cc1Swenshuai.xi #define _API_MHL_H_
120*53ee8cc1Swenshuai.xi 
121*53ee8cc1Swenshuai.xi #include "MsTypes.h"
122*53ee8cc1Swenshuai.xi #include "MsDevice.h"
123*53ee8cc1Swenshuai.xi #include "MsCommon.h"
124*53ee8cc1Swenshuai.xi 
125*53ee8cc1Swenshuai.xi #ifdef __cplusplus
126*53ee8cc1Swenshuai.xi extern "C"
127*53ee8cc1Swenshuai.xi {
128*53ee8cc1Swenshuai.xi #endif
129*53ee8cc1Swenshuai.xi 
130*53ee8cc1Swenshuai.xi //////////////////////////////////////////////////
131*53ee8cc1Swenshuai.xi //                MHL SW Version                //
132*53ee8cc1Swenshuai.xi //////////////////////////////////////////////////
133*53ee8cc1Swenshuai.xi #define P4_CHANGELIST       "00522289"
134*53ee8cc1Swenshuai.xi #define FW_VER_MAJOR        "04"
135*53ee8cc1Swenshuai.xi #define FW_VER_MINOR        "18"
136*53ee8cc1Swenshuai.xi 
137*53ee8cc1Swenshuai.xi typedef MS_U8 (*link_cbus_event_handle_func)(MS_U8);
138*53ee8cc1Swenshuai.xi 
139*53ee8cc1Swenshuai.xi typedef struct
140*53ee8cc1Swenshuai.xi {
141*53ee8cc1Swenshuai.xi     MS_U8 ucSupportPath;
142*53ee8cc1Swenshuai.xi     MS_U8 *ucEDIDTable;
143*53ee8cc1Swenshuai.xi     MS_U8 *ucDevcapTable;
144*53ee8cc1Swenshuai.xi } stMHL_INITIAL_CONFIG;
145*53ee8cc1Swenshuai.xi 
146*53ee8cc1Swenshuai.xi typedef struct
147*53ee8cc1Swenshuai.xi {
148*53ee8cc1Swenshuai.xi     MS_U8 ucMHLSupportPath;
149*53ee8cc1Swenshuai.xi     MS_U8 ucDeviceCapabilityTable[20];
150*53ee8cc1Swenshuai.xi     MS_U32 ulReturnValue;
151*53ee8cc1Swenshuai.xi } stMHL_INITIAL_CONFIG_INFO;
152*53ee8cc1Swenshuai.xi 
153*53ee8cc1Swenshuai.xi typedef enum
154*53ee8cc1Swenshuai.xi {
155*53ee8cc1Swenshuai.xi     E_MHL_POWER_ON,
156*53ee8cc1Swenshuai.xi     E_MHL_POWER_STANDBY,
157*53ee8cc1Swenshuai.xi     E_MHL_POWER_DOWN
158*53ee8cc1Swenshuai.xi } E_MHL_POWERCTRL_Mode;
159*53ee8cc1Swenshuai.xi 
160*53ee8cc1Swenshuai.xi enum
161*53ee8cc1Swenshuai.xi {
162*53ee8cc1Swenshuai.xi     RCP_KEYID_SELECT = 0x00,
163*53ee8cc1Swenshuai.xi     RCP_KEYID_UP = 0x01,
164*53ee8cc1Swenshuai.xi     RCP_KEYID_DOWN = 0x02,
165*53ee8cc1Swenshuai.xi     RCP_KEYID_LEFT = 0x03,
166*53ee8cc1Swenshuai.xi     RCP_KEYID_RIGHT = 0x04,
167*53ee8cc1Swenshuai.xi     RCP_KEYID_RIGHT_UP = 0x05,
168*53ee8cc1Swenshuai.xi     RCP_KEYID_RIGHT_DOWN = 0x06,
169*53ee8cc1Swenshuai.xi     RCP_KEYID_LEFT_UP = 0x07,
170*53ee8cc1Swenshuai.xi     RCP_KEYID_LEFT_DOWN = 0x08,
171*53ee8cc1Swenshuai.xi     RCP_KEYID_ROOT_MENU = 0x09,
172*53ee8cc1Swenshuai.xi     RCP_KEYID_SETUP_MENU = 0x0A,
173*53ee8cc1Swenshuai.xi     RCP_KEYID_CONTENTS_MENU = 0x0B,
174*53ee8cc1Swenshuai.xi     RCP_KEYID_FAVORITE_MENU = 0x0C,
175*53ee8cc1Swenshuai.xi     RCP_KEYID_EXIT = 0x0D,
176*53ee8cc1Swenshuai.xi     //0x0E - 0x1F are reserved
177*53ee8cc1Swenshuai.xi     RCP_KEYID_NUM_0 = 0x20,
178*53ee8cc1Swenshuai.xi     RCP_KEYID_NUM_1 = 0x21,
179*53ee8cc1Swenshuai.xi     RCP_KEYID_NUM_2 = 0x22,
180*53ee8cc1Swenshuai.xi     RCP_KEYID_NUM_3 = 0x23,
181*53ee8cc1Swenshuai.xi     RCP_KEYID_NUM_4 = 0x24,
182*53ee8cc1Swenshuai.xi     RCP_KEYID_NUM_5 = 0x25,
183*53ee8cc1Swenshuai.xi     RCP_KEYID_NUM_6 = 0x26,
184*53ee8cc1Swenshuai.xi     RCP_KEYID_NUM_7 = 0x27,
185*53ee8cc1Swenshuai.xi     RCP_KEYID_NUM_8 = 0x28,
186*53ee8cc1Swenshuai.xi     RCP_KEYID_NUM_9 = 0x29,
187*53ee8cc1Swenshuai.xi     RCP_KEYID_DOT = 0x2A,
188*53ee8cc1Swenshuai.xi     RCP_KEYID_ENTER = 0x2B,
189*53ee8cc1Swenshuai.xi     RCP_KEYID_CLEAR = 0x2C,
190*53ee8cc1Swenshuai.xi     //0x2D - 0x2F are reserved
191*53ee8cc1Swenshuai.xi     RCP_KEYID_CH_UP = 0x30,
192*53ee8cc1Swenshuai.xi     RCP_KEYID_CH_DOWN = 0x31,
193*53ee8cc1Swenshuai.xi     RCP_KEYID_PRE_CH = 0x32,
194*53ee8cc1Swenshuai.xi     RCP_KEYID_SOUND_SELECT = 0x33,
195*53ee8cc1Swenshuai.xi     RCP_KEYID_INPUT_SELECT = 0x34,
196*53ee8cc1Swenshuai.xi     RCP_KEYID_SHOW_INFO = 0x35,
197*53ee8cc1Swenshuai.xi     RCP_KEYID_HELP = 0x36,
198*53ee8cc1Swenshuai.xi     RCP_KEYID_PAGE_UP = 0x37,
199*53ee8cc1Swenshuai.xi     RCP_KEYID_PAGE_DOWN = 0x38,
200*53ee8cc1Swenshuai.xi     //0x39 - 0x40 are reserved
201*53ee8cc1Swenshuai.xi     RCP_KEYID_VOL_UP = 0x41,
202*53ee8cc1Swenshuai.xi     RCP_KEYID_VOL_DOWN = 0x42,
203*53ee8cc1Swenshuai.xi     RCP_KEYID_MUTE = 0x43,
204*53ee8cc1Swenshuai.xi     RCP_KEYID_PLAY = 0x44,
205*53ee8cc1Swenshuai.xi     RCP_KEYID_STOP = 0x45,
206*53ee8cc1Swenshuai.xi     RCP_KEYID_PAUSE = 0x46,
207*53ee8cc1Swenshuai.xi     RCP_KEYID_RECORD = 0x47,
208*53ee8cc1Swenshuai.xi     RCP_KEYID_REWIND = 0x48,
209*53ee8cc1Swenshuai.xi     RCP_KEYID_FAST_FWD = 0x49,
210*53ee8cc1Swenshuai.xi     RCP_KEYID_EJECT  = 0x4A,
211*53ee8cc1Swenshuai.xi     RCP_KEYID_FORWARD = 0x4B,
212*53ee8cc1Swenshuai.xi     RCP_KEYID_BACKWARD = 0x4C,
213*53ee8cc1Swenshuai.xi     //0x4D - 0x4F are reserved
214*53ee8cc1Swenshuai.xi     RCP_KEYID_ANGLE = 0x50,
215*53ee8cc1Swenshuai.xi     RCP_KEYID_SUBPICTURE = 0x51,
216*53ee8cc1Swenshuai.xi     //0x52 - 0x5F are reserved
217*53ee8cc1Swenshuai.xi     RCP_KEYID_PLAY_FUNC = 0x60,
218*53ee8cc1Swenshuai.xi     RCP_KEYID_PAUSE_PLAY_FUNC = 0x61,
219*53ee8cc1Swenshuai.xi     RCP_KEYID_RECORD_FUNC = 0x62,
220*53ee8cc1Swenshuai.xi     RCP_KEYID_PAUSE_REC_FUNC = 0x63,
221*53ee8cc1Swenshuai.xi     RCP_KEYID_STOP_FUNC = 0x64,
222*53ee8cc1Swenshuai.xi     RCP_KEYID_MUTE_FUNC = 0x65,
223*53ee8cc1Swenshuai.xi     RCP_KEYID_UN_MUTE_FUNC = 0x66,
224*53ee8cc1Swenshuai.xi     RCP_KEYID_TUNE_FUNC = 0x67,
225*53ee8cc1Swenshuai.xi     RCP_KEYID_MEDIA_FUNC = 0x68,
226*53ee8cc1Swenshuai.xi     //0x69 - 0x70 are reserved
227*53ee8cc1Swenshuai.xi     RCP_KEYID_F1 = 0x71,
228*53ee8cc1Swenshuai.xi     RCP_KEYID_F2 = 0x72,
229*53ee8cc1Swenshuai.xi     RCP_KEYID_F3 = 0x73,
230*53ee8cc1Swenshuai.xi     RCP_KEYID_F4 = 0x74,
231*53ee8cc1Swenshuai.xi     RCP_KEYID_F5 = 0x75,
232*53ee8cc1Swenshuai.xi     //0x76 - 0x7D are reserved
233*53ee8cc1Swenshuai.xi     RCP_KEYID_VENDOR_SPECIFIC = 0x7E,
234*53ee8cc1Swenshuai.xi     RCP_KEYID_RESERVED = 0x7F,
235*53ee8cc1Swenshuai.xi     RCP_KEYID_SELECT_RELEASE = 0x80,
236*53ee8cc1Swenshuai.xi }; // MscRcpKcode_T;
237*53ee8cc1Swenshuai.xi 
238*53ee8cc1Swenshuai.xi typedef enum
239*53ee8cc1Swenshuai.xi {
240*53ee8cc1Swenshuai.xi     MSC_RAP_POLL = 0x00,
241*53ee8cc1Swenshuai.xi     MSC_RAP_CONTENT_ON = 0x10,
242*53ee8cc1Swenshuai.xi     MSC_RAP_CONTENT_OFF = 0x11,
243*53ee8cc1Swenshuai.xi } MscRapActionCode_T;
244*53ee8cc1Swenshuai.xi 
245*53ee8cc1Swenshuai.xi enum
246*53ee8cc1Swenshuai.xi {
247*53ee8cc1Swenshuai.xi     MSC_RCP_NO_ERROR = 0x00,     // RCP No Error
248*53ee8cc1Swenshuai.xi     MSC_RCP_INEFFECTIVE_KEY_CODE = 0x01,     // The key code in the RCP sub-command is not recognized
249*53ee8cc1Swenshuai.xi     MSC_RCP_RESPONDER_BUSY = 0x02,     // RCP Response busy
250*53ee8cc1Swenshuai.xi }; //MscRcpStatusCode_T;
251*53ee8cc1Swenshuai.xi 
252*53ee8cc1Swenshuai.xi enum
253*53ee8cc1Swenshuai.xi {
254*53ee8cc1Swenshuai.xi     MSC_RAP_NO_ERROR = 0x00,     // RAP No Error
255*53ee8cc1Swenshuai.xi     MSC_RAP_UNRECOGNIZED_ACTION_CODE = 0x01,
256*53ee8cc1Swenshuai.xi     MSC_RAP_UNSUPPORTED_ACTION_CODE = 0x02,
257*53ee8cc1Swenshuai.xi     MSC_RAP_RESPONDER_BUSY = 0x03,
258*53ee8cc1Swenshuai.xi }; //MscRapStatusCode_T;
259*53ee8cc1Swenshuai.xi 
260*53ee8cc1Swenshuai.xi enum MHL_CBUS_CONTROL_TYPE
261*53ee8cc1Swenshuai.xi {
262*53ee8cc1Swenshuai.xi     MHL_FORCE_HDMI_BY_PASS = 0,
263*53ee8cc1Swenshuai.xi     MHL_FORCE_24BIT_MODE,
264*53ee8cc1Swenshuai.xi     MHL_FORCE_PACKET_PIXEL_MODE,
265*53ee8cc1Swenshuai.xi     MHL_CBUS_ISOLATION_ON,
266*53ee8cc1Swenshuai.xi     MHL_CBUS_ISOLATION_OFF,
267*53ee8cc1Swenshuai.xi     MHL_CBUS_FLOATING_ON,
268*53ee8cc1Swenshuai.xi     MHL_CBUS_FLOATING_OFF,
269*53ee8cc1Swenshuai.xi     MHL_CBUS_RTERM_OFF,
270*53ee8cc1Swenshuai.xi     MHL_CBUS_FORCE_CLEAR_HPD,
271*53ee8cc1Swenshuai.xi     MHL_CBUS_FORCE_RESET_HPD,
272*53ee8cc1Swenshuai.xi     MHL_VBUS_HW_DETCET,
273*53ee8cc1Swenshuai.xi     MHL_VBUS_CHARGE_ON,
274*53ee8cc1Swenshuai.xi     MHL_VBUS_CHARGE_OFF,
275*53ee8cc1Swenshuai.xi     MHL_CBUS_FORCE_READY_DEVCAP,
276*53ee8cc1Swenshuai.xi     MHL_CBUS_FORCE_RECEIVE_3D_REQ,
277*53ee8cc1Swenshuai.xi     MHL_CBUS_FORCE_SEND_COMMAND_ENABLE,
278*53ee8cc1Swenshuai.xi     MHL_CBUS_FORCE_SEND_COMMAND_DISABLE,
279*53ee8cc1Swenshuai.xi     MHL_CBUS_CHECK_CONTEND_ON_ENABLE,
280*53ee8cc1Swenshuai.xi     MHL_CBUS_CHECK_CONTEND_ON_DISABLE,
281*53ee8cc1Swenshuai.xi };
282*53ee8cc1Swenshuai.xi 
283*53ee8cc1Swenshuai.xi enum MHL_CBUS_STATUS_FLAG_TYPE
284*53ee8cc1Swenshuai.xi {
285*53ee8cc1Swenshuai.xi     MHL_CBUS_STATUS_FLAG_CABLE_DETECT = 0,
286*53ee8cc1Swenshuai.xi     MHL_CBUS_STATUS_FLAG_CBUS_CONNECT,
287*53ee8cc1Swenshuai.xi     MHL_CBUS_STATUS_FLAG_PATH_EN,
288*53ee8cc1Swenshuai.xi     MHL_CBUS_STATUS_FLAG_RECEIVE_PATH_EN,
289*53ee8cc1Swenshuai.xi     MHL_CBUS_STATUS_FLAG_RECEIVE_MUTED,
290*53ee8cc1Swenshuai.xi     MHL_CBUS_STATUS_FLAG_COMMUNICATE_BUSY,
291*53ee8cc1Swenshuai.xi };
292*53ee8cc1Swenshuai.xi 
293*53ee8cc1Swenshuai.xi enum MHL_CABLE_DETECT_USE_TYPE
294*53ee8cc1Swenshuai.xi {
295*53ee8cc1Swenshuai.xi     MHL_CABLE_DETECT_USE_PORTA = 0x01,
296*53ee8cc1Swenshuai.xi     MHL_CABLE_DETECT_USE_PORTB = 0x02,
297*53ee8cc1Swenshuai.xi     MHL_CABLE_DETECT_USE_PORTC = 0x04,
298*53ee8cc1Swenshuai.xi     MHL_CABLE_DETECT_USE_PORTD = 0x08,
299*53ee8cc1Swenshuai.xi };
300*53ee8cc1Swenshuai.xi 
301*53ee8cc1Swenshuai.xi typedef enum
302*53ee8cc1Swenshuai.xi {
303*53ee8cc1Swenshuai.xi     //MHL property
304*53ee8cc1Swenshuai.xi     MAPI_CMD_MHL_SUPPORT_PATH,
305*53ee8cc1Swenshuai.xi     MAPI_CMD_MHL_INITIAL,
306*53ee8cc1Swenshuai.xi     MAPI_CMD_MHL_HANDLER,
307*53ee8cc1Swenshuai.xi     MAPI_CMD_MHL_AUTO_SWITCH,
308*53ee8cc1Swenshuai.xi     MAPI_CMD_MHL_SET_POWER_STATE,
309*53ee8cc1Swenshuai.xi     MAPI_CMD_MHL_CBUS_CONTROL,
310*53ee8cc1Swenshuai.xi     MAPI_CMD_MHL_LOAD_EDID,
311*53ee8cc1Swenshuai.xi     MAPI_CMD_MHL_READ_EDID,
312*53ee8cc1Swenshuai.xi     MAPI_CMD_MHL_LOAD_DEVCAP,
313*53ee8cc1Swenshuai.xi     MAPI_CMD_MHL_SET_VENDER_ID,
314*53ee8cc1Swenshuai.xi     MAPI_CMD_MHL_SET_CABLE_DETECT_INVERT,
315*53ee8cc1Swenshuai.xi     MAPI_CMD_MHL_VBUS_CONFIG_SETTING,
316*53ee8cc1Swenshuai.xi     MAPI_CMD_MHL_ADJUST_I_CONTROL,
317*53ee8cc1Swenshuai.xi     MAPI_CMD_MHL_ADJUST_IMPEDANCE,
318*53ee8cc1Swenshuai.xi     MAPI_CMD_MHL_CABLE_DETECT_FLAG,
319*53ee8cc1Swenshuai.xi     MAPI_CMD_MHL_CBUS_CONNECT_FLAG,
320*53ee8cc1Swenshuai.xi     MAPI_CMD_MHL_CBUS_WAKEUP_INT_FLAG,
321*53ee8cc1Swenshuai.xi     MAPI_CMD_MHL_SOURCE_SUPPORT_RCP,
322*53ee8cc1Swenshuai.xi     MAPI_CMD_MHL_SOURCE_SUPPORT_RAP,
323*53ee8cc1Swenshuai.xi     MAPI_CMD_MHL_GET_STATUS_FLAG,
324*53ee8cc1Swenshuai.xi     MAPI_CMD_MHL_SEND_RAP_COMMAND,
325*53ee8cc1Swenshuai.xi     MAPI_CMD_MHL_SEND_RCP_COMMAND,
326*53ee8cc1Swenshuai.xi     MAPI_CMD_MHL_SEND_UCP_COMMAND,
327*53ee8cc1Swenshuai.xi     MAPI_CMD_MHL_SEND_WRITE_BURST,
328*53ee8cc1Swenshuai.xi     MAPI_CMD_MHL_SEND_USER_WRITE_BURST,
329*53ee8cc1Swenshuai.xi     MAPI_CMD_MHL_GET_DEVICE_CAPABILITY,
330*53ee8cc1Swenshuai.xi     MAPI_CMD_MHL_GET_EXTEND_DEVICE_CAPABILITY,
331*53ee8cc1Swenshuai.xi     MAPI_CMD_MHL_GET_VENDER_ID,
332*53ee8cc1Swenshuai.xi     MAPI_CMD_MHL_GET_WRITE_BURST_DATA,
333*53ee8cc1Swenshuai.xi     MAPI_CMD_MHL_CALL_BACK_FUNCTION,
334*53ee8cc1Swenshuai.xi     MAPI_CMD_MHL_RCP_CALL_BACK_FUNCTION,
335*53ee8cc1Swenshuai.xi     MAPI_CMD_MHL_RAP_CALL_BACK_FUNCTION,
336*53ee8cc1Swenshuai.xi     MAPI_CMD_MHL_UCP_CALL_BACK_FUNCTION,
337*53ee8cc1Swenshuai.xi     MAPI_CMD_MHL_ATT_CALL_BACK_FUNCTION,
338*53ee8cc1Swenshuai.xi     MAPI_CMD_MHL_RBP_CALL_BACK_FUNCTION,
339*53ee8cc1Swenshuai.xi     MAPI_CMD_MHL_GET_CONFIGURATION,
340*53ee8cc1Swenshuai.xi }E_MHL_API_CMD_TYPE;
341*53ee8cc1Swenshuai.xi 
342*53ee8cc1Swenshuai.xi typedef struct
343*53ee8cc1Swenshuai.xi {
344*53ee8cc1Swenshuai.xi     MS_U8 ucSupportPath;
345*53ee8cc1Swenshuai.xi } stMHL_SET_SUPPORT_PATH, *pstMHL_SET_SUPPORT_PATH;
346*53ee8cc1Swenshuai.xi 
347*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED
348*53ee8cc1Swenshuai.xi {
349*53ee8cc1Swenshuai.xi     MS_U8 *ucEDIDTable;
350*53ee8cc1Swenshuai.xi     MS_U8 *ucDevcapTable;
351*53ee8cc1Swenshuai.xi } stMHL_INITIAL_SETTING, *pstMHL_INITIAL_SETTING;
352*53ee8cc1Swenshuai.xi 
353*53ee8cc1Swenshuai.xi typedef struct
354*53ee8cc1Swenshuai.xi {
355*53ee8cc1Swenshuai.xi     MS_U16 usMSGKeyInfo;
356*53ee8cc1Swenshuai.xi } stMHL_POLLING_HANDLER, *pstMHL_POLLING_HANDLER;
357*53ee8cc1Swenshuai.xi 
358*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED
359*53ee8cc1Swenshuai.xi {
360*53ee8cc1Swenshuai.xi     MS_BOOL bAutoSwitchFlag;
361*53ee8cc1Swenshuai.xi     MS_BOOL bResetFlag;
362*53ee8cc1Swenshuai.xi     MS_U8 *ucCbusPath;
363*53ee8cc1Swenshuai.xi } stMHL_AUTO_SWITCH_HANDLER, *pstMHL_AUTO_SWITCH_HANDLER;
364*53ee8cc1Swenshuai.xi 
365*53ee8cc1Swenshuai.xi typedef struct
366*53ee8cc1Swenshuai.xi {
367*53ee8cc1Swenshuai.xi     MS_U32 ulFailFlag;
368*53ee8cc1Swenshuai.xi     EN_POWER_MODE usPowerState;
369*53ee8cc1Swenshuai.xi } stMHL_SET_POWER_STATE, *pstMHL_SET_POWER_STATE;
370*53ee8cc1Swenshuai.xi 
371*53ee8cc1Swenshuai.xi typedef struct
372*53ee8cc1Swenshuai.xi {
373*53ee8cc1Swenshuai.xi     MS_U8 ucState;
374*53ee8cc1Swenshuai.xi } stMHL_CBUS_CONTROL, *pstMHL_CBUS_CONTROL;
375*53ee8cc1Swenshuai.xi 
376*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED
377*53ee8cc1Swenshuai.xi {
378*53ee8cc1Swenshuai.xi     MS_U8 *ucEDIDTable;
379*53ee8cc1Swenshuai.xi } stMHL_LOAD_EDID, *pstMHL_LOAD_EDID;
380*53ee8cc1Swenshuai.xi 
381*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED
382*53ee8cc1Swenshuai.xi {
383*53ee8cc1Swenshuai.xi     MS_U8 ucEDIDSize;
384*53ee8cc1Swenshuai.xi     MS_U8 *ucEDIDTable;
385*53ee8cc1Swenshuai.xi } stMHL_READ_EDID, *pstMHL_READ_EDID;
386*53ee8cc1Swenshuai.xi 
387*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED
388*53ee8cc1Swenshuai.xi {
389*53ee8cc1Swenshuai.xi     MS_U8 *ucDevcapTable;
390*53ee8cc1Swenshuai.xi } stMHL_LOAD_DEVCAP, *pstMHL_LOAD_DEVCAP;
391*53ee8cc1Swenshuai.xi 
392*53ee8cc1Swenshuai.xi typedef struct
393*53ee8cc1Swenshuai.xi {
394*53ee8cc1Swenshuai.xi     MS_U8 ucVenderID;
395*53ee8cc1Swenshuai.xi } stMHL_SET_VENDER_ID, *pstMHL_SET_VENDER_ID;
396*53ee8cc1Swenshuai.xi 
397*53ee8cc1Swenshuai.xi typedef struct
398*53ee8cc1Swenshuai.xi {
399*53ee8cc1Swenshuai.xi     MS_BOOL bCableDetectInvert;
400*53ee8cc1Swenshuai.xi } stMHL_SET_CABLE_DETECT_INVERT, *pstMHL_SET_CABLE_DETECT_INVERT;
401*53ee8cc1Swenshuai.xi 
402*53ee8cc1Swenshuai.xi typedef struct
403*53ee8cc1Swenshuai.xi {
404*53ee8cc1Swenshuai.xi     MS_U8 ucConfigMode;
405*53ee8cc1Swenshuai.xi } stMHL_VBUS_CONFIG_SETTING, *pstMHL_VBUS_CONFIG_SETTING;
406*53ee8cc1Swenshuai.xi 
407*53ee8cc1Swenshuai.xi typedef struct
408*53ee8cc1Swenshuai.xi {
409*53ee8cc1Swenshuai.xi     MS_U8 ucIControlValue;
410*53ee8cc1Swenshuai.xi } stMHL_ADJUST_I_CONTROL, *pstMHL_ADJUST_I_CONTROL;
411*53ee8cc1Swenshuai.xi 
412*53ee8cc1Swenshuai.xi typedef struct
413*53ee8cc1Swenshuai.xi {
414*53ee8cc1Swenshuai.xi     MS_U8 ucImpedanceValue;
415*53ee8cc1Swenshuai.xi } stMHL_ADJUST_IMPEDANCE, *pstMHL_ADJUST_IMPEDANCE;
416*53ee8cc1Swenshuai.xi 
417*53ee8cc1Swenshuai.xi typedef struct
418*53ee8cc1Swenshuai.xi {
419*53ee8cc1Swenshuai.xi     MS_BOOL bCableDetectFlag;
420*53ee8cc1Swenshuai.xi } stMHL_CABLE_DETECT_FLAG, *pstMHL_CABLE_DETECT_FLAG;
421*53ee8cc1Swenshuai.xi 
422*53ee8cc1Swenshuai.xi typedef struct
423*53ee8cc1Swenshuai.xi {
424*53ee8cc1Swenshuai.xi     MS_BOOL bCbusConnectFlag;
425*53ee8cc1Swenshuai.xi } stMHL_CBUS_CONNECT_FLAG, *pstMHL_CBUS_CONNECT_FLAG;
426*53ee8cc1Swenshuai.xi 
427*53ee8cc1Swenshuai.xi typedef struct
428*53ee8cc1Swenshuai.xi {
429*53ee8cc1Swenshuai.xi     MS_BOOL bCbusWakeupFlag;
430*53ee8cc1Swenshuai.xi } stMHL_CBUS_WAKEUP_INT_FLAG, *pstMHL_CBUS_WAKEUP_INT_FLAG;
431*53ee8cc1Swenshuai.xi 
432*53ee8cc1Swenshuai.xi typedef struct
433*53ee8cc1Swenshuai.xi {
434*53ee8cc1Swenshuai.xi     MS_BOOL bSourceSupportRCP;
435*53ee8cc1Swenshuai.xi } stMHL_SOURCE_SUPPORT_RCP, *pstMHL_SOURCE_SUPPORT_RCP;
436*53ee8cc1Swenshuai.xi 
437*53ee8cc1Swenshuai.xi typedef struct
438*53ee8cc1Swenshuai.xi {
439*53ee8cc1Swenshuai.xi     MS_BOOL bSourceSupportRAP;
440*53ee8cc1Swenshuai.xi } stMHL_SOURCE_SUPPORT_RAP, *pstMHL_SOURCE_SUPPORT_RAP;
441*53ee8cc1Swenshuai.xi 
442*53ee8cc1Swenshuai.xi typedef struct
443*53ee8cc1Swenshuai.xi {
444*53ee8cc1Swenshuai.xi     MS_BOOL bStatusFlag;
445*53ee8cc1Swenshuai.xi     MS_U8 ucStatusType;
446*53ee8cc1Swenshuai.xi } stMHL_GET_STATUS_FLAG, *pstMHL_GET_STATUS_FLAG;
447*53ee8cc1Swenshuai.xi 
448*53ee8cc1Swenshuai.xi typedef struct
449*53ee8cc1Swenshuai.xi {
450*53ee8cc1Swenshuai.xi     MS_BOOL bSendFlag;
451*53ee8cc1Swenshuai.xi     MS_U8 ucKeyCode;
452*53ee8cc1Swenshuai.xi } stMHL_SEND_RAP_COMMAND, *pstMHL_SEND_RAP_COMMAND;
453*53ee8cc1Swenshuai.xi 
454*53ee8cc1Swenshuai.xi typedef struct
455*53ee8cc1Swenshuai.xi {
456*53ee8cc1Swenshuai.xi     MS_BOOL bSendFlag;
457*53ee8cc1Swenshuai.xi     MS_U8 ucKeyCode;
458*53ee8cc1Swenshuai.xi } stMHL_SEND_RCP_COMMAND, *pstMHL_SEND_RCP_COMMAND;
459*53ee8cc1Swenshuai.xi 
460*53ee8cc1Swenshuai.xi typedef struct
461*53ee8cc1Swenshuai.xi {
462*53ee8cc1Swenshuai.xi     MS_BOOL bSendFlag;
463*53ee8cc1Swenshuai.xi     MS_U8 ucKeyCode;
464*53ee8cc1Swenshuai.xi } stMHL_SEND_UCP_COMMAND, *pstMHL_SEND_UCP_COMMAND;
465*53ee8cc1Swenshuai.xi 
466*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED
467*53ee8cc1Swenshuai.xi {
468*53ee8cc1Swenshuai.xi     MS_BOOL bSendFlag;
469*53ee8cc1Swenshuai.xi     MS_U8 ucAddress;
470*53ee8cc1Swenshuai.xi     MS_U8 ucLength;
471*53ee8cc1Swenshuai.xi     MS_U8 *ucData;
472*53ee8cc1Swenshuai.xi } stMHL_SEND_WRITE_BURST, *pstMHL_SEND_WRITE_BURST;
473*53ee8cc1Swenshuai.xi 
474*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED
475*53ee8cc1Swenshuai.xi {
476*53ee8cc1Swenshuai.xi     MS_BOOL bSendFlag;
477*53ee8cc1Swenshuai.xi     MS_U8 ucLength;
478*53ee8cc1Swenshuai.xi     MS_U8 *ucData;
479*53ee8cc1Swenshuai.xi } stMHL_SEND_USER_WRITE_BURST, *pstMHL_SEND_USER_WRITE_BURST;
480*53ee8cc1Swenshuai.xi 
481*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED
482*53ee8cc1Swenshuai.xi {
483*53ee8cc1Swenshuai.xi     MS_BOOL bObtainFlag;
484*53ee8cc1Swenshuai.xi     MS_U16 usDevcapMask;
485*53ee8cc1Swenshuai.xi     MS_U8 *ucDeviceCapability;
486*53ee8cc1Swenshuai.xi } stMHL_GET_DEVICE_CAPABILITY, *pstMHL_GET_DEVICE_CAPABILITY;
487*53ee8cc1Swenshuai.xi 
488*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED
489*53ee8cc1Swenshuai.xi {
490*53ee8cc1Swenshuai.xi     MS_BOOL bObtainFlag;
491*53ee8cc1Swenshuai.xi     MS_U16 usExtendDevcapMask;
492*53ee8cc1Swenshuai.xi     MS_U8 *ucExtendDeviceCapability;
493*53ee8cc1Swenshuai.xi } stMHL_GET_EXTEND_DEVICE_CAPABILITY, *pstMHL_GET_EXTEND_DEVICE_CAPABILITY;
494*53ee8cc1Swenshuai.xi 
495*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED
496*53ee8cc1Swenshuai.xi {
497*53ee8cc1Swenshuai.xi     MS_BOOL bObtainFlag;
498*53ee8cc1Swenshuai.xi     MS_U8 *ucVenderID;
499*53ee8cc1Swenshuai.xi } stMHL_GET_VENDER_ID, *pstMHL_GET_VENDER_ID;
500*53ee8cc1Swenshuai.xi 
501*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED
502*53ee8cc1Swenshuai.xi {
503*53ee8cc1Swenshuai.xi     MS_BOOL bObtainFlag;
504*53ee8cc1Swenshuai.xi     MS_U8 *ucWriteBurstData;
505*53ee8cc1Swenshuai.xi } stMHL_GET_WRITE_BURST_DATA, *pstMHL_GET_WRITE_BURST_DATA;
506*53ee8cc1Swenshuai.xi 
507*53ee8cc1Swenshuai.xi typedef struct
508*53ee8cc1Swenshuai.xi {
509*53ee8cc1Swenshuai.xi     MS_BOOL bRCPfunctionFlag;
510*53ee8cc1Swenshuai.xi     MS_BOOL bRAPfunctionFlag;
511*53ee8cc1Swenshuai.xi } stMHL_CALL_BACK_FUNCTION, *pstMHL_CALL_BACK_FUNCTION;
512*53ee8cc1Swenshuai.xi 
513*53ee8cc1Swenshuai.xi typedef struct
514*53ee8cc1Swenshuai.xi {
515*53ee8cc1Swenshuai.xi     MS_BOOL bRCPfunctionFlag;
516*53ee8cc1Swenshuai.xi } stMHL_RCP_CALL_BACK_FUNCTION, *pstMHL_RCP_CALL_BACK_FUNCTION;
517*53ee8cc1Swenshuai.xi 
518*53ee8cc1Swenshuai.xi typedef struct
519*53ee8cc1Swenshuai.xi {
520*53ee8cc1Swenshuai.xi     MS_BOOL bRAPfunctionFlag;
521*53ee8cc1Swenshuai.xi } stMHL_RAP_CALL_BACK_FUNCTION, *pstMHL_RAP_CALL_BACK_FUNCTION;
522*53ee8cc1Swenshuai.xi 
523*53ee8cc1Swenshuai.xi typedef struct
524*53ee8cc1Swenshuai.xi {
525*53ee8cc1Swenshuai.xi     MS_BOOL bUCPfunctionFlag;
526*53ee8cc1Swenshuai.xi } stMHL_UCP_CALL_BACK_FUNCTION, *pstMHL_UCP_CALL_BACK_FUNCTION;
527*53ee8cc1Swenshuai.xi 
528*53ee8cc1Swenshuai.xi typedef struct
529*53ee8cc1Swenshuai.xi {
530*53ee8cc1Swenshuai.xi     MS_BOOL bATTfunctionFlag;
531*53ee8cc1Swenshuai.xi } stMHL_ATT_CALL_BACK_FUNCTION, *pstMHL_ATT_CALL_BACK_FUNCTION;
532*53ee8cc1Swenshuai.xi 
533*53ee8cc1Swenshuai.xi typedef struct
534*53ee8cc1Swenshuai.xi {
535*53ee8cc1Swenshuai.xi     MS_BOOL bRBPfunctionFlag;
536*53ee8cc1Swenshuai.xi } stMHL_RBP_CALL_BACK_FUNCTION, *pstMHL_RBP_CALL_BACK_FUNCTION;
537*53ee8cc1Swenshuai.xi 
538*53ee8cc1Swenshuai.xi typedef struct
539*53ee8cc1Swenshuai.xi {
540*53ee8cc1Swenshuai.xi     stMHL_INITIAL_CONFIG_INFO stInitialConfigInfo;
541*53ee8cc1Swenshuai.xi } stMHL_GET_CONFIGURATION, *pstMHL_GET_CONFIGURATION;
542*53ee8cc1Swenshuai.xi 
543*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
544*53ee8cc1Swenshuai.xi //  Function Prototype
545*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
546*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
547*53ee8cc1Swenshuai.xi /// Assign which HDMI port support MHL
548*53ee8cc1Swenshuai.xi /// @ingroup MHL_BASIC
549*53ee8cc1Swenshuai.xi /// @param  ucSelect          \b IN: MHL support port
550*53ee8cc1Swenshuai.xi /// @return None
551*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
552*53ee8cc1Swenshuai.xi void mapi_mhl_MHLSupportPath(MS_U8 ucSelect);
553*53ee8cc1Swenshuai.xi 
554*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
555*53ee8cc1Swenshuai.xi /// Initialize MHL
556*53ee8cc1Swenshuai.xi /// @ingroup MHL_BASIC
557*53ee8cc1Swenshuai.xi /// @param  edid                \b IN: point to MHL EDID
558*53ee8cc1Swenshuai.xi /// @param  DevCap          \b IN: point to MHL capability
559*53ee8cc1Swenshuai.xi /// @return None
560*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
561*53ee8cc1Swenshuai.xi void mapi_mhl_init(MS_U8 *edid, MS_U8 *DevCap);
562*53ee8cc1Swenshuai.xi 
563*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
564*53ee8cc1Swenshuai.xi /// MHL polling function
565*53ee8cc1Swenshuai.xi /// @ingroup MHL_BASIC
566*53ee8cc1Swenshuai.xi /// @return None
567*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
568*53ee8cc1Swenshuai.xi void mapi_mhl_handler(void);
569*53ee8cc1Swenshuai.xi 
570*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
571*53ee8cc1Swenshuai.xi /// MHL auto switch handler function
572*53ee8cc1Swenshuai.xi /// @ingroup MHL_BASIC
573*53ee8cc1Swenshuai.xi /// @param  bReset              \b IN: Reset auto switch
574*53ee8cc1Swenshuai.xi /// @param  ucCbusPath       \b IN: Which port support auto switch
575*53ee8cc1Swenshuai.xi /// @return TRUE : MHL auto switch happen
576*53ee8cc1Swenshuai.xi /// @return FALSE : MHL auto switch not happen
577*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
578*53ee8cc1Swenshuai.xi MS_BOOL mapi_mhl_AutoSwitchHandler(MS_BOOL bReset, MS_U8 *ucCbusPath);
579*53ee8cc1Swenshuai.xi 
580*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
581*53ee8cc1Swenshuai.xi /// MHL set power state function
582*53ee8cc1Swenshuai.xi /// @ingroup MHL_BASIC
583*53ee8cc1Swenshuai.xi /// @param  u16PowerState  \b IN: Power state
584*53ee8cc1Swenshuai.xi /// @return TRUE : MHL set power state pass
585*53ee8cc1Swenshuai.xi /// @return FALSE : MHL set power state fail
586*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
587*53ee8cc1Swenshuai.xi MS_U32 mapi_mhl_SetPowerState(EN_POWER_MODE u16PowerState);
588*53ee8cc1Swenshuai.xi 
589*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
590*53ee8cc1Swenshuai.xi /// MHL Cbus control function
591*53ee8cc1Swenshuai.xi /// @ingroup MHL_BASIC
592*53ee8cc1Swenshuai.xi /// @param  ucState         \b IN: Cbus control state
593*53ee8cc1Swenshuai.xi /// @return None
594*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
595*53ee8cc1Swenshuai.xi void mapi_mhl_CbusControl(MS_U8 ucState);
596*53ee8cc1Swenshuai.xi 
597*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
598*53ee8cc1Swenshuai.xi /// MHL load EDID
599*53ee8cc1Swenshuai.xi /// @ingroup MHL_CAPABILITY
600*53ee8cc1Swenshuai.xi /// @param  edid                \b IN: point to MHL EDID
601*53ee8cc1Swenshuai.xi /// @return None
602*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
603*53ee8cc1Swenshuai.xi void mapi_mhl_LoadEDID(MS_U8 *edid);
604*53ee8cc1Swenshuai.xi 
605*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
606*53ee8cc1Swenshuai.xi /// MHL read EDID
607*53ee8cc1Swenshuai.xi /// @ingroup MHL_CAPABILITY
608*53ee8cc1Swenshuai.xi /// @param  usSize             \b IN: Size of EDID want to read back
609*53ee8cc1Swenshuai.xi /// @param  edid                \b IN: point to MHL EDID
610*53ee8cc1Swenshuai.xi /// @return None
611*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
612*53ee8cc1Swenshuai.xi void mapi_mhl_ReadEDID(MS_U16 usSize, MS_U8 *edid);
613*53ee8cc1Swenshuai.xi 
614*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
615*53ee8cc1Swenshuai.xi /// MHL load device capability
616*53ee8cc1Swenshuai.xi /// @ingroup MHL_CAPABILITY
617*53ee8cc1Swenshuai.xi /// @param  DevCap          \b IN: point to MHL capability
618*53ee8cc1Swenshuai.xi /// @return None
619*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
620*53ee8cc1Swenshuai.xi void mapi_mhl_LoadDeviceCapability(MS_U8 *devcap);
621*53ee8cc1Swenshuai.xi 
622*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
623*53ee8cc1Swenshuai.xi /// MHL load vender ID
624*53ee8cc1Swenshuai.xi /// @ingroup MHL_CAPABILITY
625*53ee8cc1Swenshuai.xi /// @param  ucVenderID     \b IN: point to MHL capability
626*53ee8cc1Swenshuai.xi /// @return None
627*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
628*53ee8cc1Swenshuai.xi void mapi_mhl_SetVenderID(MS_U8 ucVenderID);
629*53ee8cc1Swenshuai.xi 
630*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
631*53ee8cc1Swenshuai.xi /// MHL set cable detect invert
632*53ee8cc1Swenshuai.xi /// @ingroup MHL_CONFIG
633*53ee8cc1Swenshuai.xi /// @param  bCableDetectInvert     \b IN: cable detect invert flag
634*53ee8cc1Swenshuai.xi /// @return None
635*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
636*53ee8cc1Swenshuai.xi void mapi_mhl_InvertCableDetect(MS_BOOL bCableDetectInvert);
637*53ee8cc1Swenshuai.xi 
638*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
639*53ee8cc1Swenshuai.xi /// MHL set Vbus config mode
640*53ee8cc1Swenshuai.xi /// @ingroup MHL_CONFIG
641*53ee8cc1Swenshuai.xi /// @param  ucState         \b IN: Vbus config mode
642*53ee8cc1Swenshuai.xi /// @return None
643*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
644*53ee8cc1Swenshuai.xi void mapi_mhl_VbusConfigSetting(MS_U8 ucState);
645*53ee8cc1Swenshuai.xi 
646*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
647*53ee8cc1Swenshuai.xi /// MHL I-control adjust setting
648*53ee8cc1Swenshuai.xi /// @ingroup MHL_CONFIG
649*53ee8cc1Swenshuai.xi /// @param  ucIControl    \b IN: I-control adjust value
650*53ee8cc1Swenshuai.xi /// @return None
651*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
652*53ee8cc1Swenshuai.xi void mapi_mhl_AdjustSettingIControl(MS_U8 ucIControl);
653*53ee8cc1Swenshuai.xi 
654*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
655*53ee8cc1Swenshuai.xi /// MHL impedance adjust setting
656*53ee8cc1Swenshuai.xi /// @ingroup MHL_CONFIG
657*53ee8cc1Swenshuai.xi /// @param  ucImpedance    \b IN: Impedance adjust value
658*53ee8cc1Swenshuai.xi /// @return None
659*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
660*53ee8cc1Swenshuai.xi void mapi_mhl_AdjustImpedanceSetting(MS_U8 ucImpedance);
661*53ee8cc1Swenshuai.xi 
662*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
663*53ee8cc1Swenshuai.xi /// MHL get cable detect flag
664*53ee8cc1Swenshuai.xi /// @ingroup MHL_STATUS
665*53ee8cc1Swenshuai.xi /// @return TRUE : MHL cable plugged
666*53ee8cc1Swenshuai.xi /// @return FALSE : MHL cable unplugged
667*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
668*53ee8cc1Swenshuai.xi MS_BOOL mapi_mhl_CableDetect(void);
669*53ee8cc1Swenshuai.xi 
670*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
671*53ee8cc1Swenshuai.xi /// MHL get Cbus connection flag
672*53ee8cc1Swenshuai.xi /// @ingroup MHL_STATUS
673*53ee8cc1Swenshuai.xi /// @return TRUE : MHL Cbus connection
674*53ee8cc1Swenshuai.xi /// @return FALSE : MHL Cbus disconnection
675*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
676*53ee8cc1Swenshuai.xi MS_BOOL mapi_mhl_CbusStatus(void);
677*53ee8cc1Swenshuai.xi 
678*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
679*53ee8cc1Swenshuai.xi /// MHL get wake up pulse interrupt  flag
680*53ee8cc1Swenshuai.xi /// @ingroup MHL_STATUS
681*53ee8cc1Swenshuai.xi /// @return TRUE : MHL receive wake up pulse
682*53ee8cc1Swenshuai.xi /// @return FALSE : MHL not receive wake up pulse
683*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
684*53ee8cc1Swenshuai.xi MS_BOOL mapi_mhl_CbusWakeupIntFlag(void);
685*53ee8cc1Swenshuai.xi 
686*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
687*53ee8cc1Swenshuai.xi /// MHL source support RCP flag
688*53ee8cc1Swenshuai.xi /// @ingroup MHL_STATUS
689*53ee8cc1Swenshuai.xi /// @return TRUE : MHL source support RCP
690*53ee8cc1Swenshuai.xi /// @return FALSE : MHL source not support RCP or unknow
691*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
692*53ee8cc1Swenshuai.xi MS_BOOL mapi_mhl_SrcRCPSupportFlag(void);
693*53ee8cc1Swenshuai.xi 
694*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
695*53ee8cc1Swenshuai.xi /// MHL source support RAP flag
696*53ee8cc1Swenshuai.xi /// @ingroup MHL_STATUS
697*53ee8cc1Swenshuai.xi /// @return TRUE : MHL source support RAP
698*53ee8cc1Swenshuai.xi /// @return FALSE : MHL source nots support RAP or unknow
699*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
700*53ee8cc1Swenshuai.xi MS_BOOL mapi_mhl_SrcRAPSupportFlag(void);
701*53ee8cc1Swenshuai.xi 
702*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
703*53ee8cc1Swenshuai.xi /// MHL get some flag
704*53ee8cc1Swenshuai.xi /// @ingroup MHL_STATUS
705*53ee8cc1Swenshuai.xi /// @param  ucState         \b IN: status type
706*53ee8cc1Swenshuai.xi /// @return TRUE : MHL status type happen
707*53ee8cc1Swenshuai.xi /// @return FALSE : MHL status type not happen
708*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
709*53ee8cc1Swenshuai.xi MS_BOOL mapi_mhl_CbusGetStatusFlag(MS_U8 ucState);
710*53ee8cc1Swenshuai.xi 
711*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
712*53ee8cc1Swenshuai.xi /// MHL send RAP command
713*53ee8cc1Swenshuai.xi /// @ingroup MHL_SEND
714*53ee8cc1Swenshuai.xi /// @param  databuf         \b IN: key code
715*53ee8cc1Swenshuai.xi /// @return TRUE : MHL send RAP success
716*53ee8cc1Swenshuai.xi /// @return FALSE : MHL send RAP fail or not ready
717*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
718*53ee8cc1Swenshuai.xi MS_BOOL mapi_mhl_SendRAPCmd(MS_U8 databuf);
719*53ee8cc1Swenshuai.xi 
720*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
721*53ee8cc1Swenshuai.xi /// MHL send RCP command
722*53ee8cc1Swenshuai.xi /// @ingroup MHL_SEND
723*53ee8cc1Swenshuai.xi /// @param  ucKeyCode      \b IN: key code
724*53ee8cc1Swenshuai.xi /// @return TRUE : MHL send RCP success
725*53ee8cc1Swenshuai.xi /// @return FALSE : MHL send RCP fail or not ready
726*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
727*53ee8cc1Swenshuai.xi MS_BOOL mapi_mhl_SendRCPAutoReleaseCmd(MS_U8 ucKeyCode);
728*53ee8cc1Swenshuai.xi 
729*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
730*53ee8cc1Swenshuai.xi /// MHL send UCP command
731*53ee8cc1Swenshuai.xi /// @ingroup MHL_SEND
732*53ee8cc1Swenshuai.xi /// @param  databuf         \b IN: key code
733*53ee8cc1Swenshuai.xi /// @return TRUE : MHL send UCP success
734*53ee8cc1Swenshuai.xi /// @return FALSE : MHL send UCP fail or not ready
735*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
736*53ee8cc1Swenshuai.xi MS_BOOL mapi_mhl_SendUCPCmd(MS_U8 databuf);
737*53ee8cc1Swenshuai.xi 
738*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
739*53ee8cc1Swenshuai.xi /// MHL send write burst command directly
740*53ee8cc1Swenshuai.xi /// @ingroup MHL_SEND
741*53ee8cc1Swenshuai.xi /// @param  ucAddr          \b IN: Write burst address always 0x40
742*53ee8cc1Swenshuai.xi /// @param  ucLength       \b IN: Write burst data length
743*53ee8cc1Swenshuai.xi /// @param  buffer           \b IN: Write burst data content
744*53ee8cc1Swenshuai.xi /// @return TRUE : MHL send write burst success
745*53ee8cc1Swenshuai.xi /// @return FALSE : MHL send write burst fail or not ready
746*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
747*53ee8cc1Swenshuai.xi MS_BOOL mapi_mhl_SendWriteBurst(MS_U8 ucAddr, MS_U8 ucLength, MS_U8 *buffer);
748*53ee8cc1Swenshuai.xi 
749*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
750*53ee8cc1Swenshuai.xi /// MHL send write burst command use write request / write grant
751*53ee8cc1Swenshuai.xi /// @ingroup MHL_SEND
752*53ee8cc1Swenshuai.xi /// @param  ucLength       \b IN: Write burst data length
753*53ee8cc1Swenshuai.xi /// @param  pBuffer          \b IN: Write burst data content
754*53ee8cc1Swenshuai.xi /// @return TRUE : MHL send write burst success
755*53ee8cc1Swenshuai.xi /// @return FALSE : MHL send write burst fail or not ready
756*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
757*53ee8cc1Swenshuai.xi MS_BOOL SYMBOL_WEAK mapi_mhl_CbusSendUserWriteBurst(MS_U8 ucLength, MS_U8 *pBuffer);
758*53ee8cc1Swenshuai.xi 
759*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
760*53ee8cc1Swenshuai.xi /// MHL send write read device capability
761*53ee8cc1Swenshuai.xi /// @ingroup MHL_SEND
762*53ee8cc1Swenshuai.xi /// @param  usDevcapMask     \b IN: Which data want to read
763*53ee8cc1Swenshuai.xi /// @param  ucDevcap            \b IN: Read device capability buffer
764*53ee8cc1Swenshuai.xi /// @return TRUE : MHL read device capability success
765*53ee8cc1Swenshuai.xi /// @return FALSE : MHL read device capability fail or not ready
766*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
767*53ee8cc1Swenshuai.xi MS_BOOL mapi_mhl_GetDeviceCapacibility(MS_U16 usDevcapMask, MS_U8 *ucDevcap);
768*53ee8cc1Swenshuai.xi 
769*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
770*53ee8cc1Swenshuai.xi /// MHL send write read extend device capability
771*53ee8cc1Swenshuai.xi /// @ingroup MHL_SEND
772*53ee8cc1Swenshuai.xi /// @param  usExtendDevcapMask     \b IN: Which data want to read
773*53ee8cc1Swenshuai.xi /// @param  ucExtendDevcap            \b IN: Read extend device capability buffer
774*53ee8cc1Swenshuai.xi /// @return TRUE : MHL read extend device capability success
775*53ee8cc1Swenshuai.xi /// @return FALSE : MHL read extend device capability fail or not ready
776*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
777*53ee8cc1Swenshuai.xi MS_BOOL SYMBOL_WEAK mapi_mhl_GetExtendDeviceCapacibility(MS_U16 usExtendDevcapMask, MS_U8 *ucExtendDevcap);
778*53ee8cc1Swenshuai.xi 
779*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
780*53ee8cc1Swenshuai.xi /// MHL send get vender ID
781*53ee8cc1Swenshuai.xi /// @ingroup MHL_SEND
782*53ee8cc1Swenshuai.xi /// @param  ucVenderID     \b IN: Vender buffer
783*53ee8cc1Swenshuai.xi /// @return TRUE : MHL get vender ID success
784*53ee8cc1Swenshuai.xi /// @return FALSE : MHL get vender ID fail or not ready
785*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
786*53ee8cc1Swenshuai.xi MS_BOOL mapi_mhl_GetDeviceVenderID(MS_U8 *ucVenderID);
787*53ee8cc1Swenshuai.xi 
788*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
789*53ee8cc1Swenshuai.xi /// MHL receive write burst data
790*53ee8cc1Swenshuai.xi /// @ingroup MHL_RECEIVE
791*53ee8cc1Swenshuai.xi /// @param  ucData      \b IN: Write burst data buffer
792*53ee8cc1Swenshuai.xi /// @return TRUE : MHL receive write burst data success
793*53ee8cc1Swenshuai.xi /// @return FALSE : MHL receive write burst data fail or not yeah
794*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
795*53ee8cc1Swenshuai.xi MS_BOOL mapi_mhl_GetWriteBurstData(MS_U8 *ucData);
796*53ee8cc1Swenshuai.xi 
797*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
798*53ee8cc1Swenshuai.xi /// MHL set RCP and RAP call back function
799*53ee8cc1Swenshuai.xi /// @ingroup MHL_CALLBACK
800*53ee8cc1Swenshuai.xi /// @param  rcp         \b IN: RCP function pointer
801*53ee8cc1Swenshuai.xi /// @param  rap         \b IN: RAP function pointer
802*53ee8cc1Swenshuai.xi /// @return None
803*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
804*53ee8cc1Swenshuai.xi void mapi_mhl_RegisterCallBackFunctions(link_cbus_event_handle_func rcp, link_cbus_event_handle_func rap);
805*53ee8cc1Swenshuai.xi 
806*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
807*53ee8cc1Swenshuai.xi /// MHL set RCP call back function
808*53ee8cc1Swenshuai.xi /// @ingroup MHL_CALLBACK
809*53ee8cc1Swenshuai.xi /// @param  rcp         \b IN: RCP function pointer
810*53ee8cc1Swenshuai.xi /// @return None
811*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
812*53ee8cc1Swenshuai.xi void mapi_mhl_RegisterRcpCallBackFunction(link_cbus_event_handle_func rcp);
813*53ee8cc1Swenshuai.xi 
814*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
815*53ee8cc1Swenshuai.xi /// MHL set RAP call back function
816*53ee8cc1Swenshuai.xi /// @ingroup MHL_CALLBACK
817*53ee8cc1Swenshuai.xi /// @param  rap         \b IN: RAP function pointer
818*53ee8cc1Swenshuai.xi /// @return None
819*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
820*53ee8cc1Swenshuai.xi void mapi_mhl_RegisterRapCallBackFunction(link_cbus_event_handle_func rap);
821*53ee8cc1Swenshuai.xi 
822*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
823*53ee8cc1Swenshuai.xi /// MHL set UCP call back function
824*53ee8cc1Swenshuai.xi /// @ingroup MHL_CALLBACK
825*53ee8cc1Swenshuai.xi /// @param  Ucp         \b IN: UCP function pointer
826*53ee8cc1Swenshuai.xi /// @return None
827*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
828*53ee8cc1Swenshuai.xi void mapi_mhl_RegisterUcpCallBackFunction(link_cbus_event_handle_func Ucp);
829*53ee8cc1Swenshuai.xi 
830*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
831*53ee8cc1Swenshuai.xi /// MHL set ATT call back function
832*53ee8cc1Swenshuai.xi /// @ingroup MHL_CALLBACK
833*53ee8cc1Swenshuai.xi /// @param  Att         \b IN: ATT function pointer
834*53ee8cc1Swenshuai.xi /// @return None
835*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
836*53ee8cc1Swenshuai.xi void SYMBOL_WEAK mapi_mhl_RegisterAttCallBackFunction(link_cbus_event_handle_func Att);
837*53ee8cc1Swenshuai.xi 
838*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
839*53ee8cc1Swenshuai.xi /// MHL set RBP call back function
840*53ee8cc1Swenshuai.xi /// @ingroup MHL_CALLBACK
841*53ee8cc1Swenshuai.xi /// @param  Rbp         \b IN: RBP function pointer
842*53ee8cc1Swenshuai.xi /// @return None
843*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
844*53ee8cc1Swenshuai.xi void SYMBOL_WEAK mapi_mhl_RegisterRbpCallBackFunction(link_cbus_event_handle_func Rbp);
845*53ee8cc1Swenshuai.xi 
846*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
847*53ee8cc1Swenshuai.xi /// Get MHL init parameter
848*53ee8cc1Swenshuai.xi /// @ingroup MHL_BASIC
849*53ee8cc1Swenshuai.xi /// @param  stInitialConfig: Init parameters
850*53ee8cc1Swenshuai.xi /// @return UTOPIA_STATUS_ERR_NOT_AVAIL: MHL not system init
851*53ee8cc1Swenshuai.xi /// @return UTOPIA_STATUS_SUCCESS: MHL system init ready
852*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
853*53ee8cc1Swenshuai.xi MS_U32 SYMBOL_WEAK mapi_mhl_GetConfig(stMHL_INITIAL_CONFIG *stInitialConfig);
854*53ee8cc1Swenshuai.xi 
855*53ee8cc1Swenshuai.xi void mapi_mhl_Send3DInformation(void);
856*53ee8cc1Swenshuai.xi void mapi_mhl_CbusWakeupIntSetting(void);
857*53ee8cc1Swenshuai.xi void mapi_mhl_PowerCtrl(E_MHL_POWERCTRL_Mode pctrl);
858*53ee8cc1Swenshuai.xi 
859*53ee8cc1Swenshuai.xi #ifdef __cplusplus
860*53ee8cc1Swenshuai.xi }
861*53ee8cc1Swenshuai.xi #endif
862*53ee8cc1Swenshuai.xi 
863*53ee8cc1Swenshuai.xi #endif //_API_MHL_H_
864