drv_hdmi_internal.h 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221
  1. #ifndef _DRV_HDMI_INTERNAL_H
  2. #define _DRV_HDMI_INTERNAL_H
  3. #include "drv_types.h"
  4. #include "plf_timing_id.h"
  5. #include "drv_hdmi_external.h"
  6. #if 0
  7. typedef enum {
  8. HDMI_AFD_SOURCE_NODATA,
  9. HDMI_AFD_SOURCE_4_3,
  10. HDMI_AFD_SOURCE_16_9,
  11. HDMI_AFD_SOURCE_MAX
  12. } HDMI_AFD_SOURCE_ASPECT_t;
  13. typedef enum {
  14. HDMI_AFD_TYPE_BOX_16_9_TOP = 2, //0010
  15. HDMI_AFD_TYPE_BOX_14_9_TOP = 3, //0011
  16. HDMI_AFD_TYPE_BOX_16_9_CENTER = 4, //0100
  17. HDMI_AFD_TYPE_NONE = 8, //1000
  18. HDMI_AFD_TYPE_4_3_CENTER = 9, //1001
  19. HDMI_AFD_TYPE_16_9_CENTER = 10, //1010
  20. HDMI_AFD_TYPE_14_9_CENTER = 11, //1011
  21. HDMI_AFD_TYPE_RESERVED = 12, //1100
  22. HDMI_AFD_TYPE_4_3_SP_14_9 = 13, //1101
  23. HDMI_AFD_TYPE_16_9_SP_14_9 = 14, //1110
  24. HDMI_AFD_TYPE_16_9_SP_4_3 = 15, //1111
  25. HDMI_AFD_TYPE_MAX
  26. } HDMI_AFD_TYPE_t;
  27. #endif
  28. //HDMI PLL mode
  29. typedef enum{
  30. //Common
  31. HDMI_PLL_MODE_INIT, //initial HDMI PLL
  32. HDMI_PLL_MODE_ON, //turn on power
  33. HDMI_PLL_MODE_OFF, //turn off power
  34. //HDMI
  35. HDMI_PLL_MODE_HDMI_INIT,
  36. HDMI_PLL_MODE_HDMI_ENABLE,
  37. HDMI_PLL_MODE_HDMI_DISABLE,
  38. #if (CONFIG_CHIPID == 0x8506)|| (CONFIG_CHIPID == 0x6710)
  39. HDMI_PLL_MODE_HDMI_FREQ_6,
  40. HDMI_PLL_MODE_HDMI_FREQ_7_F,
  41. HDMI_PLL_MODE_HDMI_FREQ_10_1E,
  42. HDMI_PLL_MODE_HDMI_FREQ_1F_32,
  43. HDMI_PLL_MODE_HDMI_FREQ_33_3D,
  44. HDMI_PLL_MODE_HDMI_FREQ_3E_60,
  45. HDMI_PLL_MODE_HDMI_FREQ_61,
  46. #elif (CONFIG_CHIPID == 0x533)|| (CONFIG_CHIPID == 0x131)
  47. HDMI_PLL_MODE_HDMI_FREQ_6,
  48. HDMI_PLL_MODE_HDMI_FREQ_7_E,
  49. HDMI_PLL_MODE_HDMI_FREQ_F_1E,
  50. HDMI_PLL_MODE_HDMI_FREQ_1F_32,
  51. HDMI_PLL_MODE_HDMI_FREQ_33_3F,
  52. HDMI_PLL_MODE_HDMI_FREQ_40_60,
  53. HDMI_PLL_MODE_HDMI_FREQ_61,
  54. #elif (CONFIG_CHIPID == 0x331) || (CONFIG_CHIPID == 0x531)
  55. HDMI_PLL_MODE_HDMI_FREQ_6,
  56. HDMI_PLL_MODE_HDMI_FREQ_7_A,
  57. HDMI_PLL_MODE_HDMI_FREQ_B_19,
  58. HDMI_PLL_MODE_HDMI_FREQ_1A_32,
  59. HDMI_PLL_MODE_HDMI_FREQ_33_3F,
  60. #ifdef CONFIG_HDMI_ADAPTIVE_EQ
  61. HDMI_PLL_MODE_HDMI_FREQ_33_3F_MODE2,
  62. #endif
  63. HDMI_PLL_MODE_HDMI_FREQ_40_60,
  64. HDMI_PLL_MODE_HDMI_FREQ_61,
  65. #endif
  66. //DEMOD
  67. HDMI_PLL_MODE_ADEMOD_INIT,
  68. HDMI_PLL_MODE_ADEMOD_ENABLE,
  69. HDMI_PLL_MODE_ADEMOD_DISABLE,
  70. HDMI_PLL_MODE_DDEMOD_INIT,
  71. HDMI_PLL_MODE_DDEMOD_ENABLE_LDO_SETTING,
  72. HDMI_PLL_MODE_DDEMOD_DISABLE,
  73. }HDMI_PLL_MODE_e;
  74. enum
  75. {
  76. HDMI_NORMAL=0 ,
  77. HDMI_PD ,
  78. };
  79. enum
  80. {
  81. VERTICES = 0,
  82. GAMUT_RANGE,
  83. };
  84. enum
  85. {
  86. xvYCC_RGB=0,
  87. xvYCC601,
  88. xvYCC709,
  89. XYZ,
  90. xvYCC_UNKNOWN_METRY,
  91. NoxvYCC = 0xff,
  92. };
  93. typedef struct _xvYccVertices
  94. {
  95. UINT16 usBlack_MAP_Y;
  96. UINT16 usBlack_MAP_Cb;
  97. UINT16 usBlack_MAP_Cr;
  98. UINT16 usRed_MAP_Y;
  99. UINT16 usRed_MAP_Cb;
  100. UINT16 usRed_MAP_Cr;
  101. UINT16 usGreen_MAP_Y;
  102. UINT16 usGreen_MAP_Cb;
  103. UINT16 usGreen_MAP_Cr;
  104. UINT16 usBlue_MAP_Y;
  105. UINT16 usBlue_MAP_Cb;
  106. UINT16 usBlue_MAP_Cr;
  107. }xvYccVertices;
  108. typedef struct _xvYccGamutRange
  109. {
  110. UINT16 usMin_Red_data;
  111. UINT16 usMax_Red_data;
  112. UINT16 usMin_Green_data;
  113. UINT16 usMax_Green_data;
  114. UINT16 usMin_Blue_data;
  115. UINT16 usMax_Blue_data;
  116. }xvYccGamutRange;
  117. typedef struct _VIP_xvYccData
  118. {
  119. UINT8 ucFormat; //0:VERTICES 1:GAMUT_RANGE
  120. UINT8 ucGBD_Color_Space; //0:xvYCC_RGB 1:xvYCC601 2:xvYCC709 3:XYZ 4:xvYCC_UNKNOWN_METRY
  121. UINT8 ucGBD_Color_Precision; //8bit, 10bit, 12bit
  122. xvYccVertices Vertices;
  123. xvYccGamutRange GamutRange;
  124. }VIP_xvYccData, *PVIP_xvYccData;
  125. typedef enum
  126. {
  127. HDMI_POWER_OFF_REASON_KEYPAD= 1,
  128. HDMI_POWER_OFF_REASON_REMOTE_IR ,
  129. HDMI_POWER_OFF_REASON_NOSIGNAL ,
  130. HDMI_POWER_OFF_OPTION_MAX ,
  131. }HDMI_POWER_OFF_OPTION;
  132. /* HDMI basic function calls */
  133. void DRV_HDMI_SW_HDCP_RSTN(void);
  134. void DRV_HDMI_Power(BOOL bPwr);
  135. void DRV_HDMI_IR_PowerOff(UINT32 power_down_option);
  136. INT32 DRV_HDMI_Init(void);
  137. void DRV_HDMI_Exit(void);
  138. INT32 DRV_HDMI_Enable(INT32 src);
  139. void DRV_HDMI_Disable(void);
  140. BOOL DRV_HDMI_IsHDMIMode( void );
  141. /* HDMI Audio related function calls */
  142. void DRV_HDMI_AudioEnable(void);
  143. void DRV_HDMI_AudioDisable(void);
  144. void DRV_HDMI_AudioRestart(void);
  145. void DRV_HDMI_AudioSetOutputPath(UINT8 menu_select);
  146. /* HDCP Key related function calls */
  147. BOOL DRV_HDMI_CheckHdcpKey( void );
  148. void DRV_HDMI_UpdateHDCPKey( UINT8 *key_ptr );
  149. void DRV_HDMI_GetHDCPKeyKSV( UINT8 *ksv );
  150. #ifdef CONFIG_SUPPORT_STORE_HDCP2X_TO_FLASH
  151. void DRV_HDMI_UpdateHDCP2XKey(UINT8 *key_ptr);
  152. #endif
  153. /* MHL Receive IR Key */
  154. #if (CONFIG_CHIPID!=0x330)
  155. #ifdef CONFIG_HDMI_SUPPORT_MHL
  156. void DRV_MHL_SendRcpCmd(MHL_RCP_CMD_e eRcpCmd);
  157. void DRV_MHL_SendRcpPressAndHoldCmd(MHL_RCP_CMD_e eRcpCmd ,BOOL fPress);
  158. void DRV_MHL_GetMHLAppInstanceData(MHLAppInstanceData_t * pMHLdata);
  159. #endif
  160. #endif
  161. /* Customize */
  162. void DRV_HDMI_SetCustomization(HDMI_Customize_st stHdmi_customize); //Set HDMI customization setting
  163. /* set HDMI PLL for HDMI/DEMOD */
  164. void HDMI_Set_PLL_Mode(HDMI_PLL_MODE_e eHDMI_PLL_MODE);
  165. /* set DEMOD Clock Div and Gain Bit*/
  166. void HDMI_Set_Demod_Clock_Div(UINT8 FEBDIV, UINT8 PLLGainBit);
  167. /*get HDMI PLL register status*/
  168. UINT8 HDMI_Get_HDMI_LDO_PWD(void);
  169. UINT8 HDMI_Get_HDMI_PLL_PWDN_DEMOD(void);
  170. UINT8 HDMI_Get_HDMI_COMP_PD(void);
  171. UINT8 HDMI_Get_HDMI_PLL_RESETJ(void);
  172. UINT8 HDMI_Get_HDMI_DEMOD_EN(void);
  173. UINT8 HDMI_Get_HDMI_R_SP5_PLL_CTP_PWDJ(void);
  174. /* set HDMI EQ */
  175. void HDMI_Set_EQ_Mode(HDMI_EQ_INDEX_e eHDMI_EQ_MODE);
  176. #ifdef CONFIG_SUPPORT_DOLBY_AUDIO
  177. /* set HDMI EDID Atmos */
  178. void HDMI_Set_EDID_ATMOS_Mode(BOOL eATMOS);
  179. void HDMI_Change_EDID_DD_Plus_Data(BOOL Atmos_Mode);
  180. #endif
  181. #endif /* __DRV_HDMI_H__ */