drv_adi.h 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188
  1. /******************************************************************************/
  2. /**
  3. *
  4. * @file drv_adi.h
  5. *
  6. * @brief This file specifies the APIs provided to control ADI(Analog Digital Interface)
  7. *
  8. * @note Copyright (c) 2013 S2 Technology Co., Ltd. \n
  9. * All rights reserved.
  10. *
  11. * @author
  12. *
  13. ******************************************************************************/
  14. #ifndef __DRV_ADI_H__
  15. #define __DRV_ADI_H__
  16. /*******************************************************************************
  17. * Header include
  18. ******************************************************************************/
  19. #include "drv_types.h"
  20. #include "drv_vip_internal.h"
  21. //Pattern generator
  22. #define SINGLE_COLOR 0
  23. #define COLOR_BAR 1
  24. #define COLOR_BAR2 2
  25. #define COLOR_GRAY_SCALE 3
  26. #define GRAY_SCALE 4
  27. #define GRAY_SCALE_PATTERN6 6
  28. #define STRIPE_PTN 5
  29. typedef enum _DRV_ADI_RESET_TYPE
  30. {
  31. eADI_RESET_TYPE_ADI = 0,
  32. eADI_RESET_TYPE_ADIX,
  33. eADI_RESET_TYPE_ADI_EXTS_SD,
  34. } DRV_ADI_RESET_TYPE;
  35. typedef enum _DRV_ADI_EXTS_HV_SYNC_SOURCE_SELECT
  36. {
  37. eADI_EXTS_HV_SYNC_SOURCE_SELECT_BYPASS = 0,
  38. eADI_EXTS_HV_SYNC_SOURCE_SELECT_NORMAL,
  39. } DRV_ADI_EXTS_HV_SYNC_SOURCE_SELECT;
  40. typedef enum _DRV_ADI_WINDOW_DIRECTION
  41. {
  42. eADI_WINDOW_DIRECTION_HORIZONTAL = 0,
  43. eADI_WINDOW_DIRECTION_VERTICAL,
  44. } DRV_ADI_WINDOW_DIRECTION;
  45. typedef enum _DRV_ADI_TOP_FIELD_TYPE
  46. {
  47. eADI_TOP_FIELD_TYPE_RED = 0,
  48. eADI_TOP_FIELD_TYPE_BLUE,
  49. } DRV_ADI_TOP_FIELD_TYPE;
  50. typedef enum _DRV_ADI_DOUBLE_CENTERING_FIELD_TYPE
  51. {
  52. eADI_DOUBLE_CENTERING_FIELD_TYPE_TOP = 0,
  53. eADI_DOUBLE_CENTERING_FIELD_TYPE_BOTTOM,
  54. } DRV_ADI_DOUBLE_CENTERING_FIELD_TYPE;
  55. typedef enum _DRV_ADI_SYNC_TYPE
  56. {
  57. eADI_SYNC_TYPE_HORIZONTAL = 0,
  58. eADI_SYNC_TYPE_VERTICAL,
  59. } DRV_ADI_SYNC_TYPE;
  60. typedef enum _DRV_ADI_CENTERING_METHOD
  61. {
  62. eADI_CENTERING_METHOD_BY_SYNC = 0,
  63. eADI_CENTERING_METHOD_BY_WINDOW,
  64. } DRV_ADI_CENTERING_METHOD;
  65. typedef enum _DRV_ADI_FIELD_POLARITY
  66. {
  67. eADI_FIELD_POLARITY_NEGATIVE = 0,
  68. eADI_FIELD_POLARITY_POSITIVE,
  69. } DRV_ADI_FIELD_POLARITY;
  70. typedef enum _DRV_ADI_OFFSET_COMPENSATION_DETECTION_MODE
  71. {
  72. eADI_OFFSET_COMPENSATION_DETECTION_MODE_LINE = 0,
  73. eADI_OFFSET_COMPENSATION_DETECTION_MODE_FIELD,
  74. } DRV_ADI_OFFSET_COMPENSATION_DETECTION_MODE;
  75. typedef enum _DRV_ADI_OFFSET_COMPENSATION_DETECTION_PIXELS
  76. {
  77. eADI_OFFSET_COMPENSATION_DETECTION_PIXELS_ODD = 0,
  78. eADI_OFFSET_COMPENSATION_DETECTION_PIXELS_EVEN,
  79. eADI_OFFSET_COMPENSATION_DETECTION_PIXELS_ODD_AND_EVEN,
  80. } DRV_ADI_OFFSET_COMPENSATION_DETECTION_PIXELS;
  81. typedef enum _DRV_ADI_PATTERN_TYPE
  82. {
  83. eADI_PATTERN_TYPE_SINGLE_COLOR = SINGLE_COLOR,
  84. eADI_PATTERN_TYPE_COLOR_BAR = COLOR_BAR,
  85. eADI_PATTERN_TYPE_COLOR_BAR2 = COLOR_BAR2,
  86. eADI_PATTERN_TYPE_COLOR_GRAY_SCALE = COLOR_GRAY_SCALE,
  87. eADI_PATTERN_TYPE_GRAY_SCALE = GRAY_SCALE,
  88. eADI_PATTERN_TYPE_GRAY_SCALE_PATTERN6 = GRAY_SCALE_PATTERN6,
  89. eADI_PATTERN_TYPE_STRIPE_PTN = STRIPE_PTN,
  90. } DRV_ADI_PATTERN_TYPE;
  91. typedef enum _DRV_ADI_COLOR_SEARCH_TYPE
  92. {
  93. eADI_COLOR_SEARCH_TYPE_G_Y = 0,
  94. eADI_COLOR_SEARCH_TYPE_B_CB = 1,
  95. eADI_COLOR_SEARCH_TYPE_R_CR = 2,
  96. } DRV_ADI_COLOR_SEARCH_TYPE;
  97. typedef struct _DRV_ADI_INPUT_CONFIG
  98. {
  99. UINT8 Source;
  100. UINT8 InputDataFormat;
  101. UINT8 IsInterlaceMode:1;
  102. UINT8 IsATVSource:1;
  103. UINT8 Reserved:6;
  104. } DRV_ADI_INPUT_CONFIG;
  105. typedef struct _DRV_ADI_PATTERN_PARAM
  106. {
  107. UINT16 InputWidth;
  108. UINT16 InputHeight;
  109. char* pPatch;
  110. DRV_ADI_PATTERN_TYPE Type;
  111. UINT16 Param1;
  112. UINT16 Param2;
  113. UINT16 Param3;
  114. BOOL IsInterlaceMode;
  115. } DRV_ADI_PATTERN_PARAM;
  116. void DRV_ADI_Init(void);
  117. void DRV_ADI_Reset(DRV_ADI_RESET_TYPE eType, BOOL fEnable);
  118. void DRV_ADI_SetSyncTimeout(DRV_ADI_SYNC_TYPE eType, UINT32 Value);
  119. void DRV_ADI_SetProgrammableSyncPosition(DRV_ADI_SYNC_TYPE eType, UINT32 Value);
  120. void DRV_ADI_InitProgrammableSyncPosition(void);
  121. UINT32 DRV_ADI_GetProgrammableSyncPosition(DRV_ADI_SYNC_TYPE eType);
  122. void DRV_ADI_EnableProgrammableSyncPosition(DRV_ADI_SYNC_TYPE eType, BOOL fEnable);
  123. BOOL DRV_ADI_IsProgrammableSyncPositionEnabled(DRV_ADI_SYNC_TYPE eType);
  124. void DRV_ADI_EnableAutoVSyncDelayAdjustment(BOOL fEnable);
  125. void DRV_ADI_SetVSyncEarlierIndicator(BOOL fFlag);
  126. void DRV_ADI_SetInputConfig(DRV_ADI_INPUT_CONFIG *pConfig);
  127. void DRV_ADI_SetSourceSelect(DRV_ADI_SOURCE eSource);
  128. DRV_ADI_SOURCE DRV_ADI_GetSourceSelect(void);
  129. void DRV_ADI_SetInputWindow(DRV_ADI_WINDOW_DIRECTION eDirection, UINT16 Start, UINT16 End);
  130. void DRV_ADI_GetInputWindow(DRV_ADI_WINDOW_DIRECTION eDirection, UINT16 *pStart, UINT16 *pEnd);
  131. void DRV_ADI_SetCaptureWindow(DRV_ADI_WINDOW_DIRECTION eDirection, UINT16 Start, UINT16 End);
  132. void DRV_ADI_GetCaptureWindow(DRV_ADI_WINDOW_DIRECTION eDirection, UINT16 *pStart, UINT16 *pEnd);
  133. void DRV_ADI_SetCenteringWindow(DRV_ADI_WINDOW_DIRECTION eDirection, UINT16 Start, UINT16 End);
  134. void DRV_ADI_SetCenteringMethod(DRV_ADI_CENTERING_METHOD eMethod);
  135. void DRV_ADI_EnableCentering(BOOL fEnable);
  136. BOOL DRV_ADI_IsCenteringEnabled(void);
  137. void DRV_ADI_SetDoubleCenteringFieldSelection(DRV_ADI_DOUBLE_CENTERING_FIELD_TYPE eType);
  138. void DRV_ADI_SetTopFieldVerticalAdjustment(INT8 Value);
  139. void DRV_ADI_SetBottomFieldVerticalAdjustment(INT8 Value);
  140. void DRV_ADI_SetYUV422HorizontalSize(UINT16 Value);
  141. void DRV_ADI_SetPixelsPerLineToGFX(UINT32 Value);
  142. void DRV_ADI_EnableColorSearch(DRV_ADI_COLOR_SEARCH_TYPE eType);
  143. void DRV_ADI_DisableColorSearch(void);
  144. BOOL DRV_ADI_IsColorSearchEnabled(void);
  145. void DRV_ADI_EnableColorFill(UINT8 Red, UINT8 Green, UINT8 Blue);
  146. void DRV_ADI_DisableColorFill(void);
  147. void DRV_ADI_EnableColorFillingInPanningArea(BOOL fEnable);
  148. void DRV_ADI_EnableCaptureWindowVerticalEnd(BOOL fEnable);
  149. void DRV_ADI_SetEXTSHVSyncSourceSelect(DRV_ADI_EXTS_HV_SYNC_SOURCE_SELECT eSelect);
  150. void DRV_ADI_SetEXTSTopField(DRV_ADI_TOP_FIELD_TYPE eType);
  151. void DRV_ADI_SetEXTSInterlaceMode(BOOL fFlag);
  152. void DRV_ADI_SetEXTSSyncThreshold(DRV_ADI_SYNC_TYPE eType, UINT32 Value);
  153. void DRV_ADI_SetEXTSRGBYActiveDetectionThreshold(UINT32 Value);
  154. void DRV_ADI_SetEXTSDisplayData(DRV_ADI_WINDOW_DIRECTION eDirection, UINT16 Start, UINT16 End);
  155. void DRV_ADI_GetEXTSDisplayData(DRV_ADI_WINDOW_DIRECTION eDirection, UINT16 *pStart, UINT16 *pEnd);
  156. void DRV_ADI_SetEXTSOffsetCompensationDetectionMode(DRV_ADI_OFFSET_COMPENSATION_DETECTION_MODE eMode);
  157. void DRV_ADI_SetEXTSOffsetCompensationDetectionPixels(DRV_ADI_OFFSET_COMPENSATION_DETECTION_PIXELS eOddEven);
  158. void DRV_ADI_SetEXTSAutoOffsetAdjustmentWindow(DRV_ADI_WINDOW_DIRECTION eDirection, UINT32 Start, UINT32 End);
  159. void DRV_ADI_EnableEXTSAutoOffsetDetection(BOOL fEnable);
  160. BOOL DRV_ADI_IsEXTSAutoOffsetDetectionEnabled(void);
  161. void DRV_ADI_SetHDMITopField(DRV_ADI_TOP_FIELD_TYPE eType);
  162. void DRV_ADI_SetHDMIFramePackingInterlaceMode(BOOL fFlag);
  163. void DRV_ADI_EnableHDMIFramePacking(BOOL fEnable);
  164. void DRV_ADI_SetMPEGFieldInputPolarity(DRV_ADI_FIELD_POLARITY ePolarity);
  165. void DRV_ADI_GeneratePattern(DRV_ADI_PATTERN_PARAM *pPatternParam);
  166. void DRV_ADI_PatternEnable(BOOL ucEnable);
  167. void DRV_ADI_ENABLE_AutoPolarityControl(BOOL fEnable);
  168. void DRV_VDI_SetColorCross_Y_Address(UINT32 f0, UINT32 f1, UINT32 f2,UINT32 f3, UINT32 f4, UINT32 f5, UINT32 f6, UINT32 f7);
  169. void DRV_VDI_SetColorCross_UV_Address(UINT32 f0, UINT32 f1, UINT32 f2,UINT32 f3, UINT32 f4, UINT32 f5, UINT32 f6, UINT32 f7);
  170. #endif