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) 2008-2009 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 #ifndef _HAL_HDMITX_H_ 96*53ee8cc1Swenshuai.xi #define _HAL_HDMITX_H_ 97*53ee8cc1Swenshuai.xi 98*53ee8cc1Swenshuai.xi 99*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 100*53ee8cc1Swenshuai.xi // Macro and Define 101*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 102*53ee8cc1Swenshuai.xi 103*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 104*53ee8cc1Swenshuai.xi // Type and Structure 105*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 106*53ee8cc1Swenshuai.xi 107*53ee8cc1Swenshuai.xi typedef enum 108*53ee8cc1Swenshuai.xi { 109*53ee8cc1Swenshuai.xi E_HDMITX_DVIClock_L_HPD_L = 0, 110*53ee8cc1Swenshuai.xi E_HDMITX_DVIClock_L_HPD_H = 1, 111*53ee8cc1Swenshuai.xi E_HDMITX_DVIClock_H_HPD_L = 2, 112*53ee8cc1Swenshuai.xi E_HDMITX_DVIClock_H_HPD_H = 3, 113*53ee8cc1Swenshuai.xi } MsHDMITX_RX_STATUS; 114*53ee8cc1Swenshuai.xi 115*53ee8cc1Swenshuai.xi typedef enum 116*53ee8cc1Swenshuai.xi { 117*53ee8cc1Swenshuai.xi E_HDMITX_SEND_PACKET = 0x00, // send packet 118*53ee8cc1Swenshuai.xi E_HDMITX_CYCLIC_PACKET = 0x04, // cyclic packet by frame count 119*53ee8cc1Swenshuai.xi E_HDMITX_STOP_PACKET = 0x80, // stop packet 120*53ee8cc1Swenshuai.xi } MsHDMITX_PACKET_PROCESS; 121*53ee8cc1Swenshuai.xi 122*53ee8cc1Swenshuai.xi typedef enum 123*53ee8cc1Swenshuai.xi { 124*53ee8cc1Swenshuai.xi E_HDMITX_NULL_PACKET = 0x00, 125*53ee8cc1Swenshuai.xi E_HDMITX_ACR_PACKET = 0x01, 126*53ee8cc1Swenshuai.xi E_HDMITX_AS_PACKET = 0x02, 127*53ee8cc1Swenshuai.xi E_HDMITX_GC_PACKET = 0x03, 128*53ee8cc1Swenshuai.xi E_HDMITX_ACP_PACKET = 0x04, 129*53ee8cc1Swenshuai.xi E_HDMITX_ISRC1_PACKET = 0x05, 130*53ee8cc1Swenshuai.xi E_HDMITX_ISRC2_PACKET = 0x06, 131*53ee8cc1Swenshuai.xi E_HDMITX_DSD_PACKET = 0x07, 132*53ee8cc1Swenshuai.xi E_HDMITX_HBR_PACKET = 0x09, 133*53ee8cc1Swenshuai.xi E_HDMITX_GM_PACKET = 0x0A, 134*53ee8cc1Swenshuai.xi 135*53ee8cc1Swenshuai.xi E_HDMITX_VS_INFOFRAME = 0x81, 136*53ee8cc1Swenshuai.xi E_HDMITX_AVI_INFOFRAME = 0x82, 137*53ee8cc1Swenshuai.xi E_HDMITX_SPD_INFOFRAME = 0x83, 138*53ee8cc1Swenshuai.xi E_HDMITX_AUDIO_INFOFRAME = 0x84, 139*53ee8cc1Swenshuai.xi E_HDMITX_MPEG_INFOFRAME = 0x85, 140*53ee8cc1Swenshuai.xi E_HDMITX_HDR_INFOFRAME = 0x87, //0x86, 141*53ee8cc1Swenshuai.xi } MsHDMITX_PACKET_TYPE; 142*53ee8cc1Swenshuai.xi 143*53ee8cc1Swenshuai.xi typedef enum 144*53ee8cc1Swenshuai.xi { 145*53ee8cc1Swenshuai.xi E_HDMITX_GCP_NO_CMD = 0, 146*53ee8cc1Swenshuai.xi E_HDMITX_GCP_SET_AVMUTE = 1, 147*53ee8cc1Swenshuai.xi E_HDMITX_GCP_CLEAR_AVMUTE = 2, 148*53ee8cc1Swenshuai.xi E_HDMITX_GCP_NA = 3, 149*53ee8cc1Swenshuai.xi } MsHDMITX_PACKET_GCP_STATUS; 150*53ee8cc1Swenshuai.xi 151*53ee8cc1Swenshuai.xi //*********************// 152*53ee8cc1Swenshuai.xi // Video // 153*53ee8cc1Swenshuai.xi //*********************// 154*53ee8cc1Swenshuai.xi 155*53ee8cc1Swenshuai.xi typedef enum 156*53ee8cc1Swenshuai.xi { 157*53ee8cc1Swenshuai.xi E_HDMITX_VIDEO_CD_NoID = 0, 158*53ee8cc1Swenshuai.xi E_HDMITX_VIDEO_CD_24Bits = 4, 159*53ee8cc1Swenshuai.xi E_HDMITX_VIDEO_CD_30Bits = 5, 160*53ee8cc1Swenshuai.xi E_HDMITX_VIDEO_CD_36Bits = 6, 161*53ee8cc1Swenshuai.xi E_HDMITX_VIDEO_CD_48Bits = 7, 162*53ee8cc1Swenshuai.xi } MsHDMITX_VIDEO_COLORDEPTH_VAL; 163*53ee8cc1Swenshuai.xi 164*53ee8cc1Swenshuai.xi typedef enum 165*53ee8cc1Swenshuai.xi { 166*53ee8cc1Swenshuai.xi E_HDMITX_VIDEO_COLOR_RGB444 = 0, 167*53ee8cc1Swenshuai.xi E_HDMITX_VIDEO_COLOR_YUV422 = 1, 168*53ee8cc1Swenshuai.xi E_HDMITX_VIDEO_COLOR_YUV444 = 2, 169*53ee8cc1Swenshuai.xi E_HDMITX_VIDEO_COLOR_YUV420 = 3, 170*53ee8cc1Swenshuai.xi } MsHDMITX_VIDEO_COLOR_FORMAT; 171*53ee8cc1Swenshuai.xi 172*53ee8cc1Swenshuai.xi typedef enum //wilson@kano 173*53ee8cc1Swenshuai.xi { 174*53ee8cc1Swenshuai.xi E_HDMITX_COLORIMETRY_NO_DATA = 0, 175*53ee8cc1Swenshuai.xi E_HDMITX_COLORIMETRY_SMPTE170M = 1, 176*53ee8cc1Swenshuai.xi E_HDMITX_COLORIMETRY_ITUR709 = 2, 177*53ee8cc1Swenshuai.xi E_HDMITX_COLORIMETRY_EXTEND = 3, 178*53ee8cc1Swenshuai.xi E_HDMITX_COLORIMETRY_MAX, 179*53ee8cc1Swenshuai.xi } MsHDMITX_COLORIMETRY; 180*53ee8cc1Swenshuai.xi 181*53ee8cc1Swenshuai.xi typedef enum //wilson@kano 182*53ee8cc1Swenshuai.xi { 183*53ee8cc1Swenshuai.xi E_HDMITX_EXT_COLORIMETRY_XVYCC601 = 0, 184*53ee8cc1Swenshuai.xi E_HDMITX_EXT_COLORIMETRY_XVYCC709 = 1, 185*53ee8cc1Swenshuai.xi E_HDMITX_EXT_COLORIMETRY_SYCC601 = 2, 186*53ee8cc1Swenshuai.xi E_HDMITX_EXT_COLORIMETRY_ADOBEYCC601 = 3, 187*53ee8cc1Swenshuai.xi E_HDMITX_EXT_COLORIMETRY_ADOBERGB = 4, 188*53ee8cc1Swenshuai.xi E_HDMITX_EXT_COLORIMETRY_BT2020CYCC = 5, //mapping to ext. colorimetry format BT2020Y'cC'bcC'rc 189*53ee8cc1Swenshuai.xi E_HDMITX_EXT_COLORIMETRY_BT2020YCC = 6, //mapping to ext. colorimetry format BT2020 RGB or YCbCr 190*53ee8cc1Swenshuai.xi E_HDMITX_EXT_COLORIMETRY_BT2020RGB = 7 //mapping to ext. colorimetry format BT2020 RGB or YCbCr 191*53ee8cc1Swenshuai.xi } MsHDMITX_EXT_COLORIMETRY; 192*53ee8cc1Swenshuai.xi 193*53ee8cc1Swenshuai.xi typedef enum //wilson@kano 194*53ee8cc1Swenshuai.xi { 195*53ee8cc1Swenshuai.xi E_HDMITX_YCC_QUANT_LIMIT = 0x00, 196*53ee8cc1Swenshuai.xi E_HDMITX_YCC_QUANT_FULL = 0x01, 197*53ee8cc1Swenshuai.xi E_HDMITX_YCC_QUANT_RESERVED = 0x10 198*53ee8cc1Swenshuai.xi } MsHDMITX_YCC_QUANT_RANGE; 199*53ee8cc1Swenshuai.xi 200*53ee8cc1Swenshuai.xi typedef enum 201*53ee8cc1Swenshuai.xi { 202*53ee8cc1Swenshuai.xi E_HDMITX_RES_640x480p = 0, 203*53ee8cc1Swenshuai.xi E_HDMITX_RES_720x480i = 1, 204*53ee8cc1Swenshuai.xi E_HDMITX_RES_720x576i = 2, 205*53ee8cc1Swenshuai.xi E_HDMITX_RES_720x480p = 3, 206*53ee8cc1Swenshuai.xi E_HDMITX_RES_720x576p = 4, 207*53ee8cc1Swenshuai.xi E_HDMITX_RES_1280x720p_50Hz = 5, 208*53ee8cc1Swenshuai.xi E_HDMITX_RES_1280x720p_60Hz = 6, 209*53ee8cc1Swenshuai.xi E_HDMITX_RES_1920x1080i_50Hz = 7, 210*53ee8cc1Swenshuai.xi E_HDMITX_RES_1920x1080i_60Hz = 8, 211*53ee8cc1Swenshuai.xi E_HDMITX_RES_1920x1080p_24Hz = 9, 212*53ee8cc1Swenshuai.xi E_HDMITX_RES_1920x1080p_25Hz = 10, 213*53ee8cc1Swenshuai.xi E_HDMITX_RES_1920x1080p_30Hz = 11, 214*53ee8cc1Swenshuai.xi E_HDMITX_RES_1920x1080p_50Hz = 12, 215*53ee8cc1Swenshuai.xi E_HDMITX_RES_1920x1080p_60Hz = 13, 216*53ee8cc1Swenshuai.xi E_HDMITX_RES_1920x2205p_24Hz = 14, 217*53ee8cc1Swenshuai.xi E_HDMITX_RES_1280x1470p_50Hz = 15, 218*53ee8cc1Swenshuai.xi E_HDMITX_RES_1280x1470p_60Hz = 16, 219*53ee8cc1Swenshuai.xi E_HDMITX_RES_3840x2160p_24Hz = 17, 220*53ee8cc1Swenshuai.xi E_HDMITX_RES_3840x2160p_25Hz = 18, 221*53ee8cc1Swenshuai.xi E_HDMITX_RES_3840x2160p_30Hz = 19, 222*53ee8cc1Swenshuai.xi E_HDMITX_RES_3840x2160p_50Hz = 20, 223*53ee8cc1Swenshuai.xi E_HDMITX_RES_3840x2160p_60Hz = 21, 224*53ee8cc1Swenshuai.xi E_HDMITX_RES_4096x2160p_24Hz = 22, 225*53ee8cc1Swenshuai.xi E_HDMITX_RES_4096x2160p_25Hz = 23, 226*53ee8cc1Swenshuai.xi E_HDMITX_RES_4096x2160p_30Hz = 24, 227*53ee8cc1Swenshuai.xi E_HDMITX_RES_4096x2160p_50Hz = 25, 228*53ee8cc1Swenshuai.xi E_HDMITX_RES_4096x2160p_60Hz = 26, 229*53ee8cc1Swenshuai.xi E_HDMITX_RES_1600x1200p_60Hz = 27, 230*53ee8cc1Swenshuai.xi E_HDMITX_RES_1440x900p_60Hz = 28, 231*53ee8cc1Swenshuai.xi E_HDMITX_RES_1280x1024p_60Hz = 29, 232*53ee8cc1Swenshuai.xi E_HDMITX_RES_1024x768p_60Hz = 30, 233*53ee8cc1Swenshuai.xi E_HDMITX_RES_MAX, 234*53ee8cc1Swenshuai.xi } MsHDMITX_VIDEO_TIMING; 235*53ee8cc1Swenshuai.xi 236*53ee8cc1Swenshuai.xi typedef enum 237*53ee8cc1Swenshuai.xi { 238*53ee8cc1Swenshuai.xi E_HDMITX_VIC_NOT_AVAILABLE = 0, 239*53ee8cc1Swenshuai.xi E_HDMITX_VIC_640x480p_60_4_3 = 1, 240*53ee8cc1Swenshuai.xi E_HDMITX_VIC_720x480p_60_4_3 = 2, 241*53ee8cc1Swenshuai.xi E_HDMITX_VIC_720x480p_60_16_9 = 3, 242*53ee8cc1Swenshuai.xi E_HDMITX_VIC_1280x720p_60_16_9 = 4, 243*53ee8cc1Swenshuai.xi E_HDMITX_VIC_1920x1080i_60_16_9 = 5, 244*53ee8cc1Swenshuai.xi E_HDMITX_VIC_720x480i_60_4_3 = 6, 245*53ee8cc1Swenshuai.xi E_HDMITX_VIC_720x480i_60_16_9 = 7, 246*53ee8cc1Swenshuai.xi E_HDMITX_VIC_720x240p_60_4_3 = 8, 247*53ee8cc1Swenshuai.xi E_HDMITX_VIC_720x240p_60_16_9 = 9, 248*53ee8cc1Swenshuai.xi E_HDMITX_VIC_2880x480i_60_4_3 = 10, 249*53ee8cc1Swenshuai.xi E_HDMITX_VIC_2880x480i_60_16_9 = 11, 250*53ee8cc1Swenshuai.xi E_HDMITX_VIC_2880x240p_60_4_3 = 12, 251*53ee8cc1Swenshuai.xi E_HDMITX_VIC_2880x240p_60_16_9 = 13, 252*53ee8cc1Swenshuai.xi E_HDMITX_VIC_1440x480p_60_4_3 = 14, 253*53ee8cc1Swenshuai.xi E_HDMITX_VIC_1440x480p_60_16_9 = 15, 254*53ee8cc1Swenshuai.xi E_HDMITX_VIC_1920x1080p_60_16_9 = 16, 255*53ee8cc1Swenshuai.xi E_HDMITX_VIC_720x576p_50_4_3 = 17, 256*53ee8cc1Swenshuai.xi E_HDMITX_VIC_720x576p_50_16_9 = 18, 257*53ee8cc1Swenshuai.xi E_HDMITX_VIC_1280x720p_50_16_9 = 19, 258*53ee8cc1Swenshuai.xi E_HDMITX_VIC_1920x1080i_50_16_9 = 20, 259*53ee8cc1Swenshuai.xi E_HDMITX_VIC_720x576i_50_4_3 = 21, 260*53ee8cc1Swenshuai.xi E_HDMITX_VIC_720x576i_50_16_9 = 22, 261*53ee8cc1Swenshuai.xi E_HDMITX_VIC_720x288p_50_4_3 = 23, 262*53ee8cc1Swenshuai.xi E_HDMITX_VIC_720x288p_50_16_9 = 24, 263*53ee8cc1Swenshuai.xi E_HDMITX_VIC_2880x576i_50_4_3 = 25, 264*53ee8cc1Swenshuai.xi E_HDMITX_VIC_2880x576i_50_16_9 = 26, 265*53ee8cc1Swenshuai.xi E_HDMITX_VIC_2880x288p_50_4_3 = 27, 266*53ee8cc1Swenshuai.xi E_HDMITX_VIC_2880x288p_50_16_9 = 28, 267*53ee8cc1Swenshuai.xi E_HDMITX_VIC_1440x576p_50_4_3 = 29, 268*53ee8cc1Swenshuai.xi E_HDMITX_VIC_1440x576p_50_16_9 = 30, 269*53ee8cc1Swenshuai.xi E_HDMITX_VIC_1920x1080p_50_16_9 = 31, 270*53ee8cc1Swenshuai.xi E_HDMITX_VIC_1920x1080p_24_16_9 = 32, 271*53ee8cc1Swenshuai.xi E_HDMITX_VIC_1920x1080p_25_16_9 = 33, 272*53ee8cc1Swenshuai.xi E_HDMITX_VIC_1920x1080p_30_16_9 = 34, 273*53ee8cc1Swenshuai.xi E_HDMITX_VIC_2880x480p_60_4_3 = 35, 274*53ee8cc1Swenshuai.xi E_HDMITX_VIC_2880x480p_60_16_9 = 36, 275*53ee8cc1Swenshuai.xi E_HDMITX_VIC_2880x576p_50_4_3 = 37, 276*53ee8cc1Swenshuai.xi E_HDMITX_VIC_2880x576p_50_16_9 = 38, 277*53ee8cc1Swenshuai.xi E_HDMITX_VIC_1920x1080i_50_16_9_1250_total = 39, 278*53ee8cc1Swenshuai.xi E_HDMITX_VIC_1920x1080i_100_16_9 = 40, 279*53ee8cc1Swenshuai.xi E_HDMITX_VIC_1280x720p_100_16_9 = 41, 280*53ee8cc1Swenshuai.xi E_HDMITX_VIC_720x576p_100_4_3 = 42, 281*53ee8cc1Swenshuai.xi E_HDMITX_VIC_720x576p_100_16_9 = 43, 282*53ee8cc1Swenshuai.xi E_HDMITX_VIC_720x576i_100_4_3 = 44, 283*53ee8cc1Swenshuai.xi E_HDMITX_VIC_720x576i_100_16_9 = 45, 284*53ee8cc1Swenshuai.xi E_HDMITX_VIC_1920x1080i_120_16_9 = 46, 285*53ee8cc1Swenshuai.xi E_HDMITX_VIC_1280x720p_120_16_9 = 47, 286*53ee8cc1Swenshuai.xi E_HDMITX_VIC_720x480p_120_4_3 = 48, 287*53ee8cc1Swenshuai.xi E_HDMITX_VIC_720x480p_120_16_9 = 49, 288*53ee8cc1Swenshuai.xi E_HDMITX_VIC_720x480i_120_4_3 = 50, 289*53ee8cc1Swenshuai.xi E_HDMITX_VIC_720x480i_120_16_9 = 51, 290*53ee8cc1Swenshuai.xi E_HDMITX_VIC_720x576p_200_4_3 = 52, 291*53ee8cc1Swenshuai.xi E_HDMITX_VIC_720x576p_200_16_9 = 53, 292*53ee8cc1Swenshuai.xi E_HDMITX_VIC_720x576i_200_4_3 = 54, 293*53ee8cc1Swenshuai.xi E_HDMITX_VIC_720x576i_200_16_9 = 55, 294*53ee8cc1Swenshuai.xi E_HDMITX_VIC_720x480p_240_4_3 = 56, 295*53ee8cc1Swenshuai.xi E_HDMITX_VIC_720x480p_240_16_9 = 57, 296*53ee8cc1Swenshuai.xi E_HDMITX_VIC_720x480i_240_4_3 = 58, 297*53ee8cc1Swenshuai.xi E_HDMITX_VIC_720x480i_240_16_9 = 59, 298*53ee8cc1Swenshuai.xi E_HDMITX_VIC_1280x720p_24_16_9 = 60, 299*53ee8cc1Swenshuai.xi E_HDMITX_VIC_1280x720p_25_16_9 = 61, 300*53ee8cc1Swenshuai.xi E_HDMITX_VIC_1280x720p_30_16_9 = 62, 301*53ee8cc1Swenshuai.xi E_HDMITX_VIC_1920x1080p_120_16_9 = 63, 302*53ee8cc1Swenshuai.xi E_HDMITX_VIC_1920x1080p_100_16_9 = 64, 303*53ee8cc1Swenshuai.xi //vvv------------------------------------------- HDMI 2.0 :: 21:9 aspect ratio 304*53ee8cc1Swenshuai.xi E_HDMITX_VIC_1280x720p_24_21_9 = 65, 305*53ee8cc1Swenshuai.xi E_HDMITX_VIC_1280x720p_25_21_9 = 66, 306*53ee8cc1Swenshuai.xi E_HDMITX_VIC_1280x720p_30_21_9 = 67, 307*53ee8cc1Swenshuai.xi E_HDMITX_VIC_1280x720p_50_21_9 = 68, 308*53ee8cc1Swenshuai.xi E_HDMITX_VIC_1280x720p_60_21_9 = 69, 309*53ee8cc1Swenshuai.xi E_HDMITX_VIC_1280x720p_100_21_9 = 70, 310*53ee8cc1Swenshuai.xi E_HDMITX_VIC_1280x720p_120_21_9 = 71, 311*53ee8cc1Swenshuai.xi E_HDMITX_VIC_1920x1080p_24_21_9 = 72, 312*53ee8cc1Swenshuai.xi E_HDMITX_VIC_1920x1080p_25_21_9 = 73, 313*53ee8cc1Swenshuai.xi E_HDMITX_VIC_1920x1080p_30_21_9 = 74, 314*53ee8cc1Swenshuai.xi E_HDMITX_VIC_1920x1080p_50_21_9 = 75, 315*53ee8cc1Swenshuai.xi E_HDMITX_VIC_1920x1080p_60_21_9 = 76, 316*53ee8cc1Swenshuai.xi E_HDMITX_VIC_1920x1080p_100_21_9 = 77, 317*53ee8cc1Swenshuai.xi E_HDMITX_VIC_1920x1080p_120_21_9 = 78, 318*53ee8cc1Swenshuai.xi E_HDMITX_VIC_1680x720p_24_21_9 = 79, 319*53ee8cc1Swenshuai.xi E_HDMITX_VIC_1680x720p_25_21_9 = 80, 320*53ee8cc1Swenshuai.xi E_HDMITX_VIC_1680x720p_30_21_9 = 81, 321*53ee8cc1Swenshuai.xi E_HDMITX_VIC_1680x720p_50_21_9 = 82, 322*53ee8cc1Swenshuai.xi E_HDMITX_VIC_1680x720p_60_21_9 = 83, 323*53ee8cc1Swenshuai.xi E_HDMITX_VIC_1680x720p_100_21_9 = 84, 324*53ee8cc1Swenshuai.xi E_HDMITX_VIC_1680x720p_120_21_9 = 85, 325*53ee8cc1Swenshuai.xi E_HDMITX_VIC_2560x1080p_24_21_9 = 86, 326*53ee8cc1Swenshuai.xi E_HDMITX_VIC_2560x1080p_25_21_9 = 87, 327*53ee8cc1Swenshuai.xi E_HDMITX_VIC_2560x1080p_30_21_9 = 88, 328*53ee8cc1Swenshuai.xi E_HDMITX_VIC_2560x1080p_50_21_9 = 89, 329*53ee8cc1Swenshuai.xi E_HDMITX_VIC_2560x1080p_60_21_9 = 90, 330*53ee8cc1Swenshuai.xi E_HDMITX_VIC_2560x1080p_100_21_9 = 91, 331*53ee8cc1Swenshuai.xi E_HDMITX_VIC_2560x1080p_120_21_9 = 92, 332*53ee8cc1Swenshuai.xi //^^^------------------------------------------- HDMI 2.0 :: 21:9 aspect ratio 333*53ee8cc1Swenshuai.xi E_HDMITX_VIC_3840x2160p_24_16_9 = 93, 334*53ee8cc1Swenshuai.xi E_HDMITX_VIC_3840x2160p_25_16_9 = 94, 335*53ee8cc1Swenshuai.xi E_HDMITX_VIC_3840x2160p_30_16_9 = 95, 336*53ee8cc1Swenshuai.xi E_HDMITX_VIC_3840x2160p_50_16_9 = 96, 337*53ee8cc1Swenshuai.xi E_HDMITX_VIC_3840x2160p_60_16_9 = 97, 338*53ee8cc1Swenshuai.xi E_HDMITX_VIC_4096x2160p_24_256_135 = 98, 339*53ee8cc1Swenshuai.xi E_HDMITX_VIC_4096x2160p_25_256_135 = 99, 340*53ee8cc1Swenshuai.xi E_HDMITX_VIC_4096x2160p_30_256_135 = 100, 341*53ee8cc1Swenshuai.xi E_HDMITX_VIC_4096x2160p_50_256_135 = 101, 342*53ee8cc1Swenshuai.xi E_HDMITX_VIC_4096x2160p_60_256_135 = 102, 343*53ee8cc1Swenshuai.xi //vvv------------------------------------------- HDMI 2.0 :: 21:9 aspect ratio 344*53ee8cc1Swenshuai.xi E_HDMITX_VIC_3840x2160p_24_64_27 = 103, 345*53ee8cc1Swenshuai.xi E_HDMITX_VIC_3840x2160p_25_64_27 = 104, 346*53ee8cc1Swenshuai.xi E_HDMITX_VIC_3840x2160p_30_64_27 = 105, 347*53ee8cc1Swenshuai.xi E_HDMITX_VIC_3840x2160p_50_64_27 = 106, 348*53ee8cc1Swenshuai.xi E_HDMITX_VIC_3840x2160p_60_64_27 = 107, 349*53ee8cc1Swenshuai.xi //^^^------------------------------------------- HDMI 2.0 :: 21:9 aspect ratio 350*53ee8cc1Swenshuai.xi } MsHDMITX_AVI_VIC; 351*53ee8cc1Swenshuai.xi 352*53ee8cc1Swenshuai.xi typedef enum 353*53ee8cc1Swenshuai.xi { 354*53ee8cc1Swenshuai.xi E_HDMITX_VIDEO_AR_Reserved = 0, 355*53ee8cc1Swenshuai.xi E_HDMITX_VIDEO_AR_4_3 = 1, 356*53ee8cc1Swenshuai.xi E_HDMITX_VIDEO_AR_16_9 = 2, 357*53ee8cc1Swenshuai.xi E_HDMITX_VIDEO_AR_21_9 = 3, //new feature in HDMI 2.0 358*53ee8cc1Swenshuai.xi } MsHDMITX_VIDEO_ASPECT_RATIO; 359*53ee8cc1Swenshuai.xi 360*53ee8cc1Swenshuai.xi typedef enum 361*53ee8cc1Swenshuai.xi { 362*53ee8cc1Swenshuai.xi E_HDMITX_VIDEO_SI_NoData = 0, 363*53ee8cc1Swenshuai.xi E_HDMITX_VIDEO_SI_Overscanned = 1, 364*53ee8cc1Swenshuai.xi E_HDMITX_VIDEO_SI_Underscanned = 2, 365*53ee8cc1Swenshuai.xi E_HDMITX_VIDEO_SI_Reserved = 3, 366*53ee8cc1Swenshuai.xi } MsHDMITX_VIDEO_SCAN_INFO; 367*53ee8cc1Swenshuai.xi 368*53ee8cc1Swenshuai.xi 369*53ee8cc1Swenshuai.xi typedef enum 370*53ee8cc1Swenshuai.xi { 371*53ee8cc1Swenshuai.xi E_HDMITX_VIDEO_AFD_SameAsPictureAR = 8, // 1000 372*53ee8cc1Swenshuai.xi E_HDMITX_VIDEO_AFD_4_3_Center = 9, // 1001 373*53ee8cc1Swenshuai.xi E_HDMITX_VIDEO_AFD_16_9_Center = 10, // 1010 374*53ee8cc1Swenshuai.xi E_HDMITX_VIDEO_AFD_14_9_Center = 11, // 1011 375*53ee8cc1Swenshuai.xi E_HDMITx_VIDEO_AFD_Others = 15, // 0000~ 0111, 1100 ~ 1111 376*53ee8cc1Swenshuai.xi } MsHDMITX_VIDEO_AFD_RATIO; 377*53ee8cc1Swenshuai.xi 378*53ee8cc1Swenshuai.xi 379*53ee8cc1Swenshuai.xi typedef enum 380*53ee8cc1Swenshuai.xi { 381*53ee8cc1Swenshuai.xi E_HDMITX_VIDEO_VS_No_Addition = 0, // 000 382*53ee8cc1Swenshuai.xi E_HDMITX_VIDEO_VS_4k_2k = 1, // 001 383*53ee8cc1Swenshuai.xi E_HDMITX_VIDEO_VS_3D = 2, // 010 384*53ee8cc1Swenshuai.xi E_HDMITx_VIDEO_VS_Reserved = 7, // 011~ 111 385*53ee8cc1Swenshuai.xi } MsHDMITX_VIDEO_VS_FORMAT; 386*53ee8cc1Swenshuai.xi 387*53ee8cc1Swenshuai.xi 388*53ee8cc1Swenshuai.xi typedef enum 389*53ee8cc1Swenshuai.xi { 390*53ee8cc1Swenshuai.xi E_HDMITX_VIDEO_3D_FramePacking = 0, // 0000 391*53ee8cc1Swenshuai.xi E_HDMITX_VIDEO_3D_FieldAlternative = 1, // 0001 392*53ee8cc1Swenshuai.xi E_HDMITX_VIDEO_3D_LineAlternative = 2, // 0010 393*53ee8cc1Swenshuai.xi E_HDMITX_VIDEO_3D_SidebySide_FULL = 3, // 0011 394*53ee8cc1Swenshuai.xi E_HDMITX_VIDEO_3D_L_Dep = 4, // 0100 395*53ee8cc1Swenshuai.xi E_HDMITX_VIDEO_3D_L_Dep_Graphic_Dep= 5, // 0101 396*53ee8cc1Swenshuai.xi E_HDMITX_VIDEO_3D_TopandBottom = 6, // 0110 397*53ee8cc1Swenshuai.xi E_HDMITX_VIDEO_3D_SidebySide_Half = 8, // 1000 398*53ee8cc1Swenshuai.xi E_HDMITx_VIDEO_3D_Not_in_Use = 15, // 1111 399*53ee8cc1Swenshuai.xi } MsHDMITX_VIDEO_3D_STRUCTURE; 400*53ee8cc1Swenshuai.xi 401*53ee8cc1Swenshuai.xi typedef enum 402*53ee8cc1Swenshuai.xi { 403*53ee8cc1Swenshuai.xi E_HDMITX_EDID_3D_FramePacking = 1, // 3D_STRUCTURE_ALL_0 404*53ee8cc1Swenshuai.xi E_HDMITX_EDID_3D_FieldAlternative = 2, // 3D_STRUCTURE_ALL_1 405*53ee8cc1Swenshuai.xi E_HDMITX_EDID_3D_LineAlternative = 4, // 3D_STRUCTURE_ALL_2 406*53ee8cc1Swenshuai.xi E_HDMITX_EDID_3D_SidebySide_FULL = 8, // 3D_STRUCTURE_ALL_3 407*53ee8cc1Swenshuai.xi E_HDMITX_EDID_3D_L_Dep = 16, // 3D_STRUCTURE_ALL_4 408*53ee8cc1Swenshuai.xi E_HDMITX_EDID_3D_L_Dep_Graphic_Dep = 32, // 3D_STRUCTURE_ALL_5 409*53ee8cc1Swenshuai.xi E_HDMITX_EDID_3D_TopandBottom = 64, // 3D_STRUCTURE_ALL_6 410*53ee8cc1Swenshuai.xi E_HDMITX_EDID_3D_SidebySide_Half_horizontal = 256, // 3D_STRUCTURE_ALL_8 411*53ee8cc1Swenshuai.xi E_HDMITX_EDID_3D_SidebySide_Half_quincunx = 32768, // 3D_STRUCTURE_ALL_15 412*53ee8cc1Swenshuai.xi } MsHDMITX_EDID_3D_STRUCTURE_ALL; 413*53ee8cc1Swenshuai.xi 414*53ee8cc1Swenshuai.xi typedef enum 415*53ee8cc1Swenshuai.xi { 416*53ee8cc1Swenshuai.xi E_HDMITX_EDID_Color_RGB_444 = 1, // RGB 4:4:4 417*53ee8cc1Swenshuai.xi E_HDMITX_EDID_Color_YCbCr_444 = 2, // YCbCr 4:4:4 418*53ee8cc1Swenshuai.xi E_HDMITX_EDID_Color_YCbCr_422 = 4, // YCbCr 4:2:2 419*53ee8cc1Swenshuai.xi E_HDMITX_EDID_Color_YCbCr_420 = 8, // YCbCr 4:2:0 420*53ee8cc1Swenshuai.xi } MsHDMITX_EDID_COLOR_FORMAT; 421*53ee8cc1Swenshuai.xi 422*53ee8cc1Swenshuai.xi typedef enum 423*53ee8cc1Swenshuai.xi { 424*53ee8cc1Swenshuai.xi E_HDMITx_VIDEO_4k2k_Reserved = 0, // 0x00 425*53ee8cc1Swenshuai.xi E_HDMITX_VIDEO_4k2k_30Hz = 1, // 0x01 426*53ee8cc1Swenshuai.xi E_HDMITX_VIDEO_4k2k_25Hz = 2, // 0x02 427*53ee8cc1Swenshuai.xi E_HDMITX_VIDEO_4k2k_24Hz = 3, // 0x03 428*53ee8cc1Swenshuai.xi E_HDMITx_VIDEO_4k2k_24Hz_SMPTE = 4, // 0x04 429*53ee8cc1Swenshuai.xi } MsHDMITX_VIDEO_4k2k_VIC; 430*53ee8cc1Swenshuai.xi 431*53ee8cc1Swenshuai.xi 432*53ee8cc1Swenshuai.xi //*********************// 433*53ee8cc1Swenshuai.xi // Audio // 434*53ee8cc1Swenshuai.xi //*********************// 435*53ee8cc1Swenshuai.xi 436*53ee8cc1Swenshuai.xi typedef enum 437*53ee8cc1Swenshuai.xi { 438*53ee8cc1Swenshuai.xi E_HDMITX_AUDIO_FREQ_NO_SIG = 0, 439*53ee8cc1Swenshuai.xi E_HDMITX_AUDIO_32K = 1, 440*53ee8cc1Swenshuai.xi E_HDMITX_AUDIO_44K = 2, 441*53ee8cc1Swenshuai.xi E_HDMITX_AUDIO_48K = 3, 442*53ee8cc1Swenshuai.xi E_HDMITX_AUDIO_88K = 4, 443*53ee8cc1Swenshuai.xi E_HDMITX_AUDIO_96K = 5, 444*53ee8cc1Swenshuai.xi E_HDMITX_AUDIO_176K = 6, 445*53ee8cc1Swenshuai.xi E_HDMITX_AUDIO_192K = 7, 446*53ee8cc1Swenshuai.xi E_HDMITX_AUDIO_FREQ_MAX_NUM = 8, 447*53ee8cc1Swenshuai.xi } MsHDMITX_AUDIO_FREQUENCY; 448*53ee8cc1Swenshuai.xi 449*53ee8cc1Swenshuai.xi typedef enum 450*53ee8cc1Swenshuai.xi { 451*53ee8cc1Swenshuai.xi E_HDMITX_AUDIO_FORMAT_PCM = 0, 452*53ee8cc1Swenshuai.xi E_HDMITX_AUDIO_FORMAT_DSD = 1, 453*53ee8cc1Swenshuai.xi E_HDMITX_AUDIO_FORMAT_HBR = 2, 454*53ee8cc1Swenshuai.xi E_HDMITX_AUDIO_FORMAT_NA = 3, 455*53ee8cc1Swenshuai.xi } MsHDMITX_AUDIO_SOURCE_FORMAT; 456*53ee8cc1Swenshuai.xi 457*53ee8cc1Swenshuai.xi typedef enum 458*53ee8cc1Swenshuai.xi { 459*53ee8cc1Swenshuai.xi E_HDMITX_AUDIO_CH_2 = 2, // 2 channels 460*53ee8cc1Swenshuai.xi E_HDMITX_AUDIO_CH_4 = 4, // 4 channels 461*53ee8cc1Swenshuai.xi E_HDMITX_AUDIO_CH_6 = 6, // 6 channels 462*53ee8cc1Swenshuai.xi E_HDMITX_AUDIO_CH_8 = 8, // 8 channels 463*53ee8cc1Swenshuai.xi } MsHDMITX_AUDIO_CHANNEL_COUNT; 464*53ee8cc1Swenshuai.xi 465*53ee8cc1Swenshuai.xi typedef enum 466*53ee8cc1Swenshuai.xi { 467*53ee8cc1Swenshuai.xi E_HDMITX_AUDIO_PCM = 0, // PCM 468*53ee8cc1Swenshuai.xi E_HDMITX_AUDIO_NONPCM = 1, // non-PCM 469*53ee8cc1Swenshuai.xi } MsHDMITX_AUDIO_CODING_TYPE; 470*53ee8cc1Swenshuai.xi 471*53ee8cc1Swenshuai.xi typedef enum 472*53ee8cc1Swenshuai.xi { 473*53ee8cc1Swenshuai.xi E_HDMITX_IRQ_00 = 0x000001, // IRQ event 0x00 474*53ee8cc1Swenshuai.xi E_HDMITX_IRQ_01 = 0x000002, // IRQ event 0x01 475*53ee8cc1Swenshuai.xi E_HDMITX_IRQ_02 = 0x000004, // IRQ event 0x02 476*53ee8cc1Swenshuai.xi E_HDMITX_IRQ_03 = 0x000008, // IRQ event 0x03 477*53ee8cc1Swenshuai.xi E_HDMITX_IRQ_04 = 0x000010, // IRQ event 0x04 478*53ee8cc1Swenshuai.xi E_HDMITX_IRQ_05 = 0x000020, // HDCP 128th Ri 479*53ee8cc1Swenshuai.xi E_HDMITX_IRQ_06 = 0x000040, // HDCP 127th Ri 480*53ee8cc1Swenshuai.xi E_HDMITX_IRQ_07 = 0x000080, // HDCP Pj 481*53ee8cc1Swenshuai.xi E_HDMITX_IRQ_08 = 0x000100, // TMDS timing error 482*53ee8cc1Swenshuai.xi E_HDMITX_IRQ_09 = 0x000200, // IRQ event 0x09 483*53ee8cc1Swenshuai.xi E_HDMITX_IRQ_0A = 0x000400, // Video engine image size change 484*53ee8cc1Swenshuai.xi E_HDMITX_IRQ_0B = 0x000800, // Audio FIFO Overflow 485*53ee8cc1Swenshuai.xi E_HDMITX_IRQ_0C = 0x001000, // TMDS_DE_CNT_DIFF, defined by U4 486*53ee8cc1Swenshuai.xi E_HDMITX_IRQ_0D = 0x002000, // IRQ event 0x0D 487*53ee8cc1Swenshuai.xi E_HDMITX_IRQ_0E = 0x004000, // IRQ event 0x0E 488*53ee8cc1Swenshuai.xi E_HDMITX_IRQ_0F = 0x008000, // IRQ event 0x0F 489*53ee8cc1Swenshuai.xi E_HDMITX_IRQ_10 = 0x010000, // TMDS detect RX disconnection (Rx sense) 490*53ee8cc1Swenshuai.xi E_HDMITX_IRQ_11 = 0x020000, // TMDS detect Rx disconnection in PM 491*53ee8cc1Swenshuai.xi E_HDMITX_IRQ_12 = 0x040000, // HPD(real function is in PM_Sleep) 492*53ee8cc1Swenshuai.xi E_HDMITX_IRQ_13 = 0x080000, // IRQ event 0x13 493*53ee8cc1Swenshuai.xi E_HDMITX_IRQ_14 = 0x100000, // IRQ event 0x14 494*53ee8cc1Swenshuai.xi E_HDMITX_IRQ_15 = 0x200000, // IRQ event 0x15 495*53ee8cc1Swenshuai.xi E_HDMITX_IRQ_16 = 0x400000, // IRQ event 0x16 496*53ee8cc1Swenshuai.xi E_HDMITX_IRQ_17 = 0x800000, // IRQ event 0x17 497*53ee8cc1Swenshuai.xi E_HDMITX_IRQ_ALL = 0xFFFFFF, // IRQ all 498*53ee8cc1Swenshuai.xi }MsHDMITX_INTERRUPT_TYPE; 499*53ee8cc1Swenshuai.xi typedef enum 500*53ee8cc1Swenshuai.xi { 501*53ee8cc1Swenshuai.xi E_HDMITX_VIDEO_INTERLACE_MODE = 0, 502*53ee8cc1Swenshuai.xi E_HDMITX_VIDEO_PROGRESSIVE_MODE = 1, 503*53ee8cc1Swenshuai.xi } MDrv_HDMITx_VIDEO_MODE; 504*53ee8cc1Swenshuai.xi 505*53ee8cc1Swenshuai.xi typedef enum 506*53ee8cc1Swenshuai.xi { 507*53ee8cc1Swenshuai.xi E_HDMITX_VIDEO_POLARITY_HIGH = 0, 508*53ee8cc1Swenshuai.xi E_HDMITX_VIDEO_POLARITY_LOW = 1, 509*53ee8cc1Swenshuai.xi } MDrv_HDMITx_VIDEO_POLARITY; 510*53ee8cc1Swenshuai.xi 511*53ee8cc1Swenshuai.xi typedef enum 512*53ee8cc1Swenshuai.xi { 513*53ee8cc1Swenshuai.xi E_HDMITX_INPUT_LESS_60MHZ =0, 514*53ee8cc1Swenshuai.xi E_HDMITX_INPUT_60_to_160MHZ =1, 515*53ee8cc1Swenshuai.xi E_HDMITX_INPUT_OVER_160MHZ =2, 516*53ee8cc1Swenshuai.xi } MsHDMITX_INPUT_FREQ; 517*53ee8cc1Swenshuai.xi 518*53ee8cc1Swenshuai.xi typedef struct __attribute__ ((packed)) 519*53ee8cc1Swenshuai.xi { 520*53ee8cc1Swenshuai.xi // HDMI Tx Current, Pre-emphasis and Double termination 521*53ee8cc1Swenshuai.xi MS_U8 tm_txcurrent; // TX current control(U4: 0x11302B[13:12], K1: 0x11302B[13:11]) 522*53ee8cc1Swenshuai.xi MS_U8 tm_pren2; // pre-emphasis mode control, 0x11302D[5] 523*53ee8cc1Swenshuai.xi MS_U8 tm_precon; // TM_PRECON, 0x11302E[7:4] 524*53ee8cc1Swenshuai.xi MS_U8 tm_pren; // pre-emphasis enable, 0x11302E[11:8] 525*53ee8cc1Swenshuai.xi MS_U8 tm_tenpre; // Double termination pre-emphasis enable, 0x11302F[3:0] 526*53ee8cc1Swenshuai.xi MS_U8 tm_ten; // Double termination enable, 0x11302F[7:4] 527*53ee8cc1Swenshuai.xi MS_U32 u32AlignDummy; 528*53ee8cc1Swenshuai.xi } MsHDMITX_ANALOG_TUNING; 529*53ee8cc1Swenshuai.xi 530*53ee8cc1Swenshuai.xi typedef struct 531*53ee8cc1Swenshuai.xi { 532*53ee8cc1Swenshuai.xi MsHDMITX_AVI_VIC support_timing; 533*53ee8cc1Swenshuai.xi MsHDMITX_EDID_3D_STRUCTURE_ALL support_3D_structure; 534*53ee8cc1Swenshuai.xi } MsHDMITX_EDID_3D_SUPPORT_TIMING; 535*53ee8cc1Swenshuai.xi 536*53ee8cc1Swenshuai.xi 537*53ee8cc1Swenshuai.xi typedef struct //wilson@kano 538*53ee8cc1Swenshuai.xi { 539*53ee8cc1Swenshuai.xi MsHDMITX_VIDEO_COLORDEPTH_VAL enColorDepInfo; 540*53ee8cc1Swenshuai.xi //MS_BOOL enAVMute; 541*53ee8cc1Swenshuai.xi MsHDMITX_PACKET_GCP_STATUS enAVMute; 542*53ee8cc1Swenshuai.xi } stGC_PktPara; 543*53ee8cc1Swenshuai.xi 544*53ee8cc1Swenshuai.xi typedef struct //wilson@kano 545*53ee8cc1Swenshuai.xi { 546*53ee8cc1Swenshuai.xi MsHDMITX_VIDEO_VS_FORMAT enVSFmt; 547*53ee8cc1Swenshuai.xi MsHDMITX_VIDEO_3D_STRUCTURE en3DStruct; 548*53ee8cc1Swenshuai.xi MsHDMITX_VIDEO_4k2k_VIC en4k2kVIC; 549*53ee8cc1Swenshuai.xi } stVSInfo_PktPara; 550*53ee8cc1Swenshuai.xi 551*53ee8cc1Swenshuai.xi typedef struct //wilson@kano 552*53ee8cc1Swenshuai.xi { 553*53ee8cc1Swenshuai.xi MS_BOOL enableAFDoverWrite; 554*53ee8cc1Swenshuai.xi MS_U8 A0Value; 555*53ee8cc1Swenshuai.xi MsHDMITX_VIDEO_COLOR_FORMAT enColorFmt; 556*53ee8cc1Swenshuai.xi MsHDMITX_COLORIMETRY enColorimetry; 557*53ee8cc1Swenshuai.xi MsHDMITX_EXT_COLORIMETRY enExtColorimetry; 558*53ee8cc1Swenshuai.xi MsHDMITX_YCC_QUANT_RANGE enYCCQuantRange; 559*53ee8cc1Swenshuai.xi MsHDMITX_VIDEO_TIMING enVidTiming; 560*53ee8cc1Swenshuai.xi MsHDMITX_VIDEO_AFD_RATIO enAFDRatio; 561*53ee8cc1Swenshuai.xi MsHDMITX_VIDEO_SCAN_INFO enScanInfo; 562*53ee8cc1Swenshuai.xi MsHDMITX_VIDEO_ASPECT_RATIO enAspectRatio; 563*53ee8cc1Swenshuai.xi } stAVIInfo_PktPara; 564*53ee8cc1Swenshuai.xi 565*53ee8cc1Swenshuai.xi typedef struct //wilson@kano 566*53ee8cc1Swenshuai.xi { 567*53ee8cc1Swenshuai.xi MsHDMITX_AUDIO_CHANNEL_COUNT enAudChCnt; 568*53ee8cc1Swenshuai.xi MsHDMITX_AUDIO_CODING_TYPE enAudType; 569*53ee8cc1Swenshuai.xi MsHDMITX_AUDIO_FREQUENCY enAudFreq; 570*53ee8cc1Swenshuai.xi //MS_BOOL bChStatus; 571*53ee8cc1Swenshuai.xi } stAUDInfo_PktPara; 572*53ee8cc1Swenshuai.xi 573*53ee8cc1Swenshuai.xi typedef struct //wilson@kano 574*53ee8cc1Swenshuai.xi { 575*53ee8cc1Swenshuai.xi MS_BOOL EnableUserDef; 576*53ee8cc1Swenshuai.xi MS_U8 FrmCntNum; 577*53ee8cc1Swenshuai.xi MsHDMITX_PACKET_PROCESS enPktCtrl; 578*53ee8cc1Swenshuai.xi union 579*53ee8cc1Swenshuai.xi { 580*53ee8cc1Swenshuai.xi stGC_PktPara GCPktPara; 581*53ee8cc1Swenshuai.xi stVSInfo_PktPara VSInfoPktPara; 582*53ee8cc1Swenshuai.xi stAVIInfo_PktPara AVIInfoPktPara; 583*53ee8cc1Swenshuai.xi stAUDInfo_PktPara AUDInfoPktPara; 584*53ee8cc1Swenshuai.xi } PktPara; 585*53ee8cc1Swenshuai.xi } stHDMITx_PKT_ATTRIBUTE; //wilson@kano 586*53ee8cc1Swenshuai.xi 587*53ee8cc1Swenshuai.xi typedef struct // Customer info 588*53ee8cc1Swenshuai.xi { 589*53ee8cc1Swenshuai.xi MDrv_HDMITx_VIDEO_MODE i_p_mode; // interlace / progressive mode 590*53ee8cc1Swenshuai.xi MDrv_HDMITx_VIDEO_POLARITY h_polarity; // Hsync polarity 591*53ee8cc1Swenshuai.xi MDrv_HDMITx_VIDEO_POLARITY v_polarity; // Vsync polarity 592*53ee8cc1Swenshuai.xi MS_U16 vs_width; // Vsync pulse width 593*53ee8cc1Swenshuai.xi MS_U16 vs_bporch; // Vsync back-porch 594*53ee8cc1Swenshuai.xi MS_U16 vde_width; // Vde active width 595*53ee8cc1Swenshuai.xi MS_U16 vs_delayline; // Vsync line delay 596*53ee8cc1Swenshuai.xi MS_U16 vs_delaypixel; // Vsync pixel delay 597*53ee8cc1Swenshuai.xi MS_U16 hs_width; // Hsync pulse width 598*53ee8cc1Swenshuai.xi MS_U16 hs_bporch; // Hsync back-porch 599*53ee8cc1Swenshuai.xi MS_U16 hde_width; // Hde active width 600*53ee8cc1Swenshuai.xi MS_U16 hs_delay; // Hsync delay 601*53ee8cc1Swenshuai.xi MS_U16 vtotal; // Vsync total 602*53ee8cc1Swenshuai.xi MS_U16 htotal; // Hsync total 603*53ee8cc1Swenshuai.xi 604*53ee8cc1Swenshuai.xi 605*53ee8cc1Swenshuai.xi } stHDMITX_TIMING_INFO_BY_CUSTOMER; 606*53ee8cc1Swenshuai.xi 607*53ee8cc1Swenshuai.xi 608*53ee8cc1Swenshuai.xi // ************* For customer NDS **************// 609*53ee8cc1Swenshuai.xi typedef enum 610*53ee8cc1Swenshuai.xi { 611*53ee8cc1Swenshuai.xi E_HDMITX_AVI_PIXEL_FROMAT = 0, // Y[1:0] 612*53ee8cc1Swenshuai.xi E_HDMITX_AVI_ASPECT_RATIO = 1, // AR, AFD, TBEL, BBSL, LBEP, RBSP, BIValid, AFDValid, ScanInfo, ScalingInfo 613*53ee8cc1Swenshuai.xi E_HDMITX_AVI_COLORIMETRY = 2 // Colormetry and extended colorimetry 614*53ee8cc1Swenshuai.xi } MsHDMITX_AVI_CONTENT_TYPE; 615*53ee8cc1Swenshuai.xi 616*53ee8cc1Swenshuai.xi 617*53ee8cc1Swenshuai.xi /////////////Wilson:: for Kano, HDMITX 2.0 architecture @20150702 618*53ee8cc1Swenshuai.xi 619*53ee8cc1Swenshuai.xi #define HDMITX_COLOR_DEPTH_TYPE_NUM 4 620*53ee8cc1Swenshuai.xi typedef struct 621*53ee8cc1Swenshuai.xi { 622*53ee8cc1Swenshuai.xi MS_U8 MUX_DIVSEL_POST; 623*53ee8cc1Swenshuai.xi MS_U8 TXPLL_DIVSEL_POST; 624*53ee8cc1Swenshuai.xi MS_U8 TXPLL_DIVSEL_PIXEL; 625*53ee8cc1Swenshuai.xi MS_U8 ICTRL_PREDRV_MAIN_L012; 626*53ee8cc1Swenshuai.xi MS_U8 ICTRL_DRV_MAIN_L012; 627*53ee8cc1Swenshuai.xi MS_U8 PD_RT; 628*53ee8cc1Swenshuai.xi MS_U32 SynthSSCSet; 629*53ee8cc1Swenshuai.xi //MS_FLOAT SyncClk; 630*53ee8cc1Swenshuai.xi } stHDMITx_ATOP_SETTING; 631*53ee8cc1Swenshuai.xi 632*53ee8cc1Swenshuai.xi 633*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 634*53ee8cc1Swenshuai.xi // Function and Variable 635*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 636*53ee8cc1Swenshuai.xi #ifdef MHAL_HDMITX_C 637*53ee8cc1Swenshuai.xi #define INTERFACEE 638*53ee8cc1Swenshuai.xi #else 639*53ee8cc1Swenshuai.xi #define INTERFACEE extern 640*53ee8cc1Swenshuai.xi #endif 641*53ee8cc1Swenshuai.xi /*********************************************************************/ 642*53ee8cc1Swenshuai.xi /* */ 643*53ee8cc1Swenshuai.xi /* HDCP22 Relative */ 644*53ee8cc1Swenshuai.xi /* */ 645*53ee8cc1Swenshuai.xi /*********************************************************************/ 646*53ee8cc1Swenshuai.xi INTERFACEE void MHal_HDMITx_HDCP2TxInit(MS_BOOL bEnable); 647*53ee8cc1Swenshuai.xi INTERFACEE void MHal_HDMITx_HDCP2TxEnableEncryptEnable(MS_BOOL bEnable); 648*53ee8cc1Swenshuai.xi INTERFACEE void MHal_HDMITx_HDCP2TxFillCipherKey(MS_U8 *pu8Riv, MS_U8 *pu8KsXORLC128); 649*53ee8cc1Swenshuai.xi 650*53ee8cc1Swenshuai.xi INTERFACEE void MHal_HDMITx_SetChipVersion(MS_U8 u8ChipVer); 651*53ee8cc1Swenshuai.xi INTERFACEE void Mhal_HDMITx_SetSCDCCapability(MS_BOOL bFlag); 652*53ee8cc1Swenshuai.xi INTERFACEE void MHal_HDMITx_Int_Disable(MS_U32 u32Int); 653*53ee8cc1Swenshuai.xi INTERFACEE void MHal_HDMITx_Int_Enable(MS_U32 u32Int); 654*53ee8cc1Swenshuai.xi INTERFACEE void MHal_HDMITx_Int_Clear(MS_U32 u32Int); 655*53ee8cc1Swenshuai.xi INTERFACEE MS_U32 MHal_HDMITx_Int_Status(void); 656*53ee8cc1Swenshuai.xi INTERFACEE MsHDMITX_RX_STATUS MHal_HDMITx_GetRXStatus(void); 657*53ee8cc1Swenshuai.xi INTERFACEE void MHal_HDMITX_SetHDCPConfig(MS_U8 HDCP_mode); 658*53ee8cc1Swenshuai.xi INTERFACEE MS_U16 MHal_HDMITX_GetM02Bytes(MS_U16 idx); 659*53ee8cc1Swenshuai.xi 660*53ee8cc1Swenshuai.xi INTERFACEE void MHal_HDMITx_InitSeq(void); 661*53ee8cc1Swenshuai.xi INTERFACEE void MHal_HDMITx_VideoInit(void); 662*53ee8cc1Swenshuai.xi INTERFACEE void MHal_HDMITx_AudioInit(void); 663*53ee8cc1Swenshuai.xi INTERFACEE void MHal_HDMITx_PLLOnOff(MS_BOOL bflag); 664*53ee8cc1Swenshuai.xi INTERFACEE void MHal_HDMITx_PKT_User_Define_Clear(void); 665*53ee8cc1Swenshuai.xi INTERFACEE void MHal_HDMITx_PKT_User_Define(MsHDMITX_PACKET_TYPE packet_type, MS_BOOL def_flag, 666*53ee8cc1Swenshuai.xi MsHDMITX_PACKET_PROCESS def_process, MS_U8 def_fcnt); 667*53ee8cc1Swenshuai.xi INTERFACEE MS_BOOL MHal_HDMITx_PKT_Content_Define(MsHDMITX_PACKET_TYPE packet_type, MS_U8* data, MS_U8 length); 668*53ee8cc1Swenshuai.xi INTERFACEE void MHal_HDMITx_SetTMDSOnOff(MS_BOOL bRB_Swap, MS_BOOL bTMDS); 669*53ee8cc1Swenshuai.xi INTERFACEE MS_U32 MHal_HDMITx_GetTMDSStatus(void); 670*53ee8cc1Swenshuai.xi INTERFACEE void MHal_HDMITx_SetVideoOnOff(MS_BOOL bVideo, MS_BOOL bCSC, MS_BOOL b709format); 671*53ee8cc1Swenshuai.xi INTERFACEE void MHal_HDMITx_SetColorFormat(MS_BOOL bCSC, MS_BOOL bHdmi422b12, MS_BOOL b709format); 672*53ee8cc1Swenshuai.xi INTERFACEE MS_BOOL MHal_HDMITx_CSC_Support_R2Y(void* pDatatIn); 673*53ee8cc1Swenshuai.xi INTERFACEE MS_BOOL MHal_HDMITx_ColorandRange_Transform(MsHDMITX_VIDEO_COLOR_FORMAT incolor, MsHDMITX_VIDEO_COLOR_FORMAT outcolor, MsHDMITX_YCC_QUANT_RANGE inrange, MsHDMITX_YCC_QUANT_RANGE outrange); 674*53ee8cc1Swenshuai.xi INTERFACEE MS_U8 MHal_HDMITx_InfoFrameCheckSum(MsHDMITX_PACKET_TYPE packet_type); 675*53ee8cc1Swenshuai.xi INTERFACEE void MHal_HDMITx_EnablePacketGen(MS_BOOL bflag); 676*53ee8cc1Swenshuai.xi INTERFACEE void MHal_HDMITx_SetHDMImode(MS_BOOL bflag, MsHDMITX_VIDEO_COLORDEPTH_VAL cd_val); 677*53ee8cc1Swenshuai.xi INTERFACEE void MHal_HDMITx_SetAudioOnOff(MS_BOOL bflag); 678*53ee8cc1Swenshuai.xi INTERFACEE void MHal_HDMITx_SetAudioFrequency(MsHDMITX_AUDIO_FREQUENCY afidx, 679*53ee8cc1Swenshuai.xi MsHDMITX_AUDIO_CHANNEL_COUNT achidx, MsHDMITX_AUDIO_CODING_TYPE actidx 680*53ee8cc1Swenshuai.xi ); 681*53ee8cc1Swenshuai.xi INTERFACEE void MHal_HDMITx_SetAudioSourceFormat(MsHDMITX_AUDIO_SOURCE_FORMAT fmt); 682*53ee8cc1Swenshuai.xi INTERFACEE MS_U32 MHal_HDMITx_GetAudioCTS(void); 683*53ee8cc1Swenshuai.xi INTERFACEE void MHal_HDMITx_MuteAudioFIFO(MS_BOOL bflag); 684*53ee8cc1Swenshuai.xi INTERFACEE void MHal_HDMITx_SetHDCPOnOff(MS_BOOL hdcp_flag, MS_BOOL hdmi_flag); 685*53ee8cc1Swenshuai.xi INTERFACEE void MHal_HDMITx_SendPacket(MsHDMITX_PACKET_TYPE enPktType, MsHDMITX_PACKET_PROCESS packet_process); 686*53ee8cc1Swenshuai.xi INTERFACEE void MHal_HDMITx_SetVideoOutputMode(MsHDMITX_VIDEO_TIMING idx, MS_BOOL bflag, MsHDMITX_VIDEO_COLORDEPTH_VAL cd_val, MsHDMITX_ANALOG_TUNING *pInfo, MS_U8 ubSSCEn); 687*53ee8cc1Swenshuai.xi INTERFACEE void MHal_HDMITx_SetVideoInfoByCustomer(MsHDMITX_VIDEO_TIMING idx, stHDMITX_TIMING_INFO_BY_CUSTOMER stTimingInfo); 688*53ee8cc1Swenshuai.xi INTERFACEE void MHal_HDMITx_Power_OnOff(MS_BOOL bEnable); 689*53ee8cc1Swenshuai.xi INTERFACEE void MHal_HDMITx_SetHPDGpioPin(MS_U8 u8pin); 690*53ee8cc1Swenshuai.xi INTERFACEE MS_BOOL MHal_HDMITx_RxBypass_Mode(MsHDMITX_INPUT_FREQ freq, MS_BOOL bflag); 691*53ee8cc1Swenshuai.xi INTERFACEE MS_BOOL MHal_HDMITx_Disable_RxBypass(void); 692*53ee8cc1Swenshuai.xi INTERFACEE MS_BOOL MHal_HDMITx_IsSupportDVIMode(void); 693*53ee8cc1Swenshuai.xi 694*53ee8cc1Swenshuai.xi INTERFACEE void MHal_HDMITx_SetGCPParameter(stGC_PktPara stPktPara); //wilson@kano 695*53ee8cc1Swenshuai.xi INTERFACEE void MHal_HDMITx_SetAVIInfoParameter(stAVIInfo_PktPara stPktPara); //wilson@kano 696*53ee8cc1Swenshuai.xi INTERFACEE void MHal_HDMITx_SetVSInfoParameter(stVSInfo_PktPara stPktPara); //wilson@kano 697*53ee8cc1Swenshuai.xi INTERFACEE void MHal_HDMITx_SetAudioInfoParameter(stAUDInfo_PktPara stPktPara); //wilson@kano 698*53ee8cc1Swenshuai.xi 699*53ee8cc1Swenshuai.xi INTERFACEE void MHal_HDMITx_EnableSSC(MS_BOOL bEnable, MS_U32 uiTMDSCLK); 700*53ee8cc1Swenshuai.xi INTERFACEE MS_U32 MHal_HDMITx_GetPixelClk_ByTiming(MsHDMITX_VIDEO_TIMING idx, MsHDMITX_VIDEO_COLOR_FORMAT color_fmt, MsHDMITX_VIDEO_COLORDEPTH_VAL color_depth); 701*53ee8cc1Swenshuai.xi INTERFACEE MS_U32 MHal_HDMITx_GetMaxPixelClk(void); 702*53ee8cc1Swenshuai.xi 703*53ee8cc1Swenshuai.xi // ************* For customer NDS **************// 704*53ee8cc1Swenshuai.xi INTERFACEE void MHal_HDMITx_Set_AVI_InfoFrame(MsHDMITX_PACKET_PROCESS packet_process, MsHDMITX_AVI_CONTENT_TYPE content_type, MS_U16 *data); 705*53ee8cc1Swenshuai.xi 706*53ee8cc1Swenshuai.xi #endif // _HAL_HDMITX_H_ 707*53ee8cc1Swenshuai.xi 708