xref: /utopia/UTPA2-700.0.x/modules/vd/hal/messi/avd/halAVD.h (revision 53ee8cc121a030b8d368113ac3e966b4705770ef)
1 //<MStar Software>
2 //******************************************************************************
3 // MStar Software
4 // Copyright (c) 2010 - 2012 MStar Semiconductor, Inc. All rights reserved.
5 // All software, firmware and related documentation herein ("MStar Software") are
6 // intellectual property of MStar Semiconductor, Inc. ("MStar") and protected by
7 // law, including, but not limited to, copyright law and international treaties.
8 // Any use, modification, reproduction, retransmission, or republication of all
9 // or part of MStar Software is expressly prohibited, unless prior written
10 // permission has been granted by MStar.
11 //
12 // By accessing, browsing and/or using MStar Software, you acknowledge that you
13 // have read, understood, and agree, to be bound by below terms ("Terms") and to
14 // comply with all applicable laws and regulations:
15 //
16 // 1. MStar shall retain any and all right, ownership and interest to MStar
17 //    Software and any modification/derivatives thereof.
18 //    No right, ownership, or interest to MStar Software and any
19 //    modification/derivatives thereof is transferred to you under Terms.
20 //
21 // 2. You understand that MStar Software might include, incorporate or be
22 //    supplied together with third party`s software and the use of MStar
23 //    Software may require additional licenses from third parties.
24 //    Therefore, you hereby agree it is your sole responsibility to separately
25 //    obtain any and all third party right and license necessary for your use of
26 //    such third party`s software.
27 //
28 // 3. MStar Software and any modification/derivatives thereof shall be deemed as
29 //    MStar`s confidential information and you agree to keep MStar`s
30 //    confidential information in strictest confidence and not disclose to any
31 //    third party.
32 //
33 // 4. MStar Software is provided on an "AS IS" basis without warranties of any
34 //    kind. Any warranties are hereby expressly disclaimed by MStar, including
35 //    without limitation, any warranties of merchantability, non-infringement of
36 //    intellectual property rights, fitness for a particular purpose, error free
37 //    and in conformity with any international standard.  You agree to waive any
38 //    claim against MStar for any loss, damage, cost or expense that you may
39 //    incur related to your use of MStar Software.
40 //    In no event shall MStar be liable for any direct, indirect, incidental or
41 //    consequential damages, including without limitation, lost of profit or
42 //    revenues, lost or damage of data, and unauthorized system use.
43 //    You agree that this Section 4 shall still apply without being affected
44 //    even if MStar Software has been modified by MStar in accordance with your
45 //    request or instruction for your use, except otherwise agreed by both
46 //    parties in writing.
47 //
48 // 5. If requested, MStar may from time to time provide technical supports or
49 //    services in relation with MStar Software to you for your use of
50 //    MStar Software in conjunction with your or your customer`s product
51 //    ("Services").
52 //    You understand and agree that, except otherwise agreed by both parties in
53 //    writing, Services are provided on an "AS IS" basis and the warranty
54 //    disclaimer set forth in Section 4 above shall apply.
55 //
56 // 6. Nothing contained herein shall be construed as by implication, estoppels
57 //    or otherwise:
58 //    (a) conferring any license or right to use MStar name, trademark, service
59 //        mark, symbol or any other identification;
60 //    (b) obligating MStar or any of its affiliates to furnish any person,
61 //        including without limitation, you and your customers, any assistance
62 //        of any kind whatsoever, or any information; or
63 //    (c) conferring any license or right under any intellectual property right.
64 //
65 // 7. These terms shall be governed by and construed in accordance with the laws
66 //    of Taiwan, R.O.C., excluding its conflict of law rules.
67 //    Any and all dispute arising out hereof or related hereto shall be finally
68 //    settled by arbitration referred to the Chinese Arbitration Association,
69 //    Taipei in accordance with the ROC Arbitration Law and the Arbitration
70 //    Rules of the Association by three (3) arbitrators appointed in accordance
71 //    with the said Rules.
72 //    The place of arbitration shall be in Taipei, Taiwan and the language shall
73 //    be English.
74 //    The arbitration award shall be final and binding to both parties.
75 //
76 //******************************************************************************
77 //<MStar Software>
78 ////////////////////////////////////////////////////////////////////////////////
79 //
80 // Copyright (c) 2008-2009 MStar Semiconductor, Inc.
81 // All rights reserved.
82 //
83 // Unless otherwise stipulated in writing, any and all information contained
84 // herein regardless in any format shall remain the sole proprietary of
85 // MStar Semiconductor Inc. and be kept in strict confidence
86 // ("MStar Confidential Information") by the recipient.
87 // Any unauthorized act including without limitation unauthorized disclosure,
88 // copying, use, reproduction, sale, distribution, modification, disassembling,
89 // reverse engineering and compiling of the contents of MStar Confidential
90 // Information is unlawful and strictly prohibited. MStar hereby reserves the
91 // rights to any and all damages, losses, costs and expenses resulting therefrom.
92 //
93 ////////////////////////////////////////////////////////////////////////////////
94 
95 #ifndef _HAL_AVD_H_
96 #define _HAL_AVD_H_
97 
98 #ifndef UNUSED
99 #define UNUSED(x) ((x)=(x))
100 #endif
101 
102 #define AVD_PAULO_1_A               0
103 #define AVD_PAULO_1_B               1   // Paulo1, Paulo2
104 #define AVD_PAULO_2_A               2
105 #define AVD_SATURN_A                10  // S1
106 #define AVD_LOLA_A                  20  // Lola, Lomeo, S2, S3, Neptune
107 #define AVD_LATTE_A                 21  // Latte, Laser
108 #define AVD_MOSES_A                 22  // Moses
109 #define AVD_ERIS_A                  23  // Eris,Pluto,T1,T2
110 #define AVD_EUCLID_A                24  // Euclid(13K code size with SPL2/DPL2)
111 // For New Version VD MCU below
112 #define AVD_LOPEZ_A                 30  // Lopez,Metis,Martina
113 #define AVD_MUSE_A                  31  // Maria5
114 #define AVD_RAPHAEL_A               32  // Rapfael
115 #define AVD_TITANIA3_A              33  // T3
116 #define AVD_METIS_A                 34  // Metis,Martina
117 #define AVD_TITANIA4_A              35  // T4,T7,Janus
118 #define AVD_AMBER1_A                36  // Amber1,Amber5
119 #define AVD_AMBER7_A                37//Amber7,Agate,Amethyst,Eagle
120 
121 #define VD_CHIP_VERSION             AVD_AMBER7_A
122 
123 // 20090812 turn off MID function temporarily because of COMB bug, 1
124 //#define AVD_COMB_3D_MID            1
125 #if((VD_CHIP_VERSION>=AVD_TITANIA3_A))
126 #define NEW_VD_MCU              1
127 #else
128 #define NEW_VD_MCU              0
129 #endif
130 #if((VD_CHIP_VERSION==AVD_AMBER1_A))
131 #define TWO_VD_DSP_CODE              1
132 #else
133 #define TWO_VD_DSP_CODE              0
134 #endif
135 #if ((VD_CHIP_VERSION==AVD_TITANIA4_A))
136 #define LOAD_CODE_BYTE_WRITE_ONLY 1
137 #else
138 #define LOAD_CODE_BYTE_WRITE_ONLY 0
139 #endif
140 #if ((VD_CHIP_VERSION==AVD_TITANIA3_A))
141 #define T3_LOAD_CODE 1
142 #else
143 #define T3_LOAD_CODE 0
144 #endif
145 //-------------------------------------------------------------------------------------------------
146 //  Macro and Define
147 //-------------------------------------------------------------------------------------------------
148 #define FSC_AUTO_DET_ENABLE                     0x00
149 #define FSC_AUTO_DET_DISABLE                    0x01
150 
151 #define FSC_MODE_PAL                            0x00
152 #define FSC_MODE_SECAM                          0x01
153 #define FSC_MODE_NTSC                           0x02
154 #define FSC_MODE_NTSC_443                       0x03
155 #define FSC_MODE_PAL_M                          0x04
156 #define FSC_MODE_PAL_60                         0x05
157 #define FSC_MODE_PAL_N                          0x06
158 
159 #define AVD_AGC_ENABLE                              0x00
160 #define AVD_AGC_DISABLE                             0x03
161 
162 #define AVD_DSP_CODE_TYPE_VIF 0
163 #define AVD_DSP_CODE_TYPE_ADC 1
164 
165 // Coarse Gain Define
166 #if (VD_CHIP_VERSION==AVD_AMBER1_A)      // Brian 20110428  A1 & A5 ADC gain mapping are different
167 #define VD_AGC_COARSE_GAIN  0xE // 4'b:1110    0.857
168 #else
169 #define VD_AGC_COARSE_GAIN  0xA // 4'b:1010    0.867
170 #endif
171 
172 //#define VD_AGC_COARSE_GAIN_X_0_5        0   // x0.5
173 //#define VD_AGC_COARSE_GAIN_X_1          1   // x1
174 //#define VD_AGC_COARSE_GAIN_X_2          2   // x2
175 //#define VD_AGC_COARSE_GAIN_X_4          3   // x4
176 
177 //-------------------------------------------------------------------------------------------------
178 //  Type and Structure
179 //-------------------------------------------------------------------------------------------------
180 //CLK_VDMCU clock setting
181 //[0]: disable clock
182 //[1]: invert clock
183 //[4:2]:
184 //     000: 170MHz (MPLL_DIV_BUF)
185 //     001: 160HMz
186 //     010: 144MHz
187 //     011: 123MHz
188 //     100: 108MHz
189 //     101: mem_clock
190 //     110: mem_clock div 2
191 //     111: select XTAL
192 
193 typedef enum
194 {
195     AVD_VDMCU_CLOCK_170Mhz,
196     AVD_VDMCU_CLOCK_160Mhz,
197     AVD_VDMCU_CLOCK_144Mhz,
198     AVD_VDMCU_CLOCK_123Mhz,
199     AVD_VDMCU_CLOCK_108Mhz,
200     AVD_VDMCU_CLOCK_MEM,
201     AVD_VDMCU_CLOCK_MEM_DIV2,
202     AVD_VDMCU_CLOCK_XTAL,
203     AVD_VDMCU_CLOCK_54Mhz, // for drvavd.c compatibility, will set to 108Mhz
204     AVD_VDMCU_CLOCK_86Mhz, // for drvavd.c compatibility, will set to 108Mhz
205 } AVD_VDMCUClockSpeed;
206 
207 typedef enum
208 {
209     AVD_VDMCU_CLOCK_NORMAL,
210     AVD_VDMCU_CLOCK_INV,
211 } AVD_VDMCUClockInverse;
212 
213 //-------------------------------------------------------------------------------------------------
214 //  Function and Variable
215 //-------------------------------------------------------------------------------------------------
216 extern const MS_U8 _u8VdDecInitialize[];
217 extern void HAL_AVD_ADC_SetGMC(MS_U8 u8Value);
218 extern void HAL_AVD_VDMCU_SoftStop (void);
219 extern void HAL_AVD_VDMCU_SetFreeze (MS_BOOL bEnable);
220 extern void HAL_AVD_VDMCU_SetClock (AVD_VDMCUClockSpeed eClock, AVD_VDMCUClockInverse eInverse);
221 extern void HAL_AVD_AFEC_SetClockSource(MS_BOOL bSource);
222 extern void HAL_AVD_VDMCU_LoadDSP(const  MS_U8 *pu8VD_DSP, MS_U32 len);
223 extern void HAL_AVD_RegInit (void);
224 extern void HAL_AVD_RegInitExt(MS_U8 *_u8VdDecInitializeExt);
225 extern MS_U16 HAL_AVD_AFEC_GetStatus(void);
226 extern MS_BOOL HAL_AVD_AFEC_GetHWHsync(void);
227 extern MS_BOOL HAL_AVD_AFEC_GetBurstOn(void);
228 extern MS_BOOL HAL_AVD_AFEC_GetCoChannelOn(void);
229 extern MS_U16 HAL_AVD_AFEC_GetVTotal(void);
230 extern MS_U16 HAL_AVD_AFEC_GetHTotal(void);
231 extern MS_U8 HAL_AVD_AFEC_GetNoiseMag(void);
232 extern void HAL_AVD_AFEC_McuReset(void);
233 extern void HAL_AVD_AFEC_SetClock(MS_BOOL bEnable);
234 extern void HAL_AVD_AFEC_SetPatchFlag(MS_U32 u32VDPatchFlag);
235 extern void HAL_AVD_AFEC_SetInput(AVD_InputSourceType eSource, MS_U8 u8ScartFB, AVD_DemodType eDemodType, MS_U32 u32XTAL_Clock);
236 extern void HAL_AVD_AFEC_SetRegFromDSP (void);
237 extern void HAL_AVD_AFEC_SetHTotal (MS_U32 u32HTotal);
238 extern void HAL_AVD_AFEC_SetVtotal (MS_U8 u8Mode);
239 extern void HAL_AVD_AFEC_SetBT656Width (MS_U8 u8BT656Width);
240 extern void HAL_AVD_AFEC_EnableForceMode (MS_BOOL bEnable);
241 extern void HAL_AVD_AFEC_SetFSCMode (MS_U8 u8FSCMode);
242 extern void HAL_AVD_AFEC_EnableCVBSLPF(MS_BOOL bEnable);
243 extern void HAL_AVD_AFEC_EnableBottomAverage(MS_BOOL bEnable);
244 extern void HAL_AVD_AFEC_EnableVBIDPLSpeedup(MS_BOOL bEnable);
245 extern void HAL_AVD_AFEC_AGCSetMode (MS_U8 u8AgcMode);
246 extern void HAL_AVD_AFEC_AGCSetCoarseGain (MS_U8 u8AgcCoarseGain);
247 extern void HAL_AVD_AFEC_AGCSetFineGain (MS_U8 u8AgcFineGain);
248 extern void HAL_AVD_AFEC_SetColorKillLevel (MS_U8 u8ColorKillLevel);
249 extern void HAL_AVD_AFEC_SetHsyncSensitivity(VD_HSYNC_SENSITIVITY eVDHsyncSensitivityTuning);
250 extern void HAL_AVD_AFEC_SetSwingLimit(MS_U8 u8Limit);
251 extern void HAL_AVD_AFEC_SetChannelChange (void);
252 extern void HAL_AVD_AFEC_SetColorStripe(MS_U8 u8Value);
253 extern MS_BOOL HAL_AVD_COMB_Get3dCombTimingCheck(void);
254 extern void HAL_AVD_COMB_SetMemoryProtect (MS_PHY u32COMB_3D_Addr, MS_U32 u32COMB_3D_Len);
255 #ifdef AVD_COMB_3D_MID
256 extern void HAL_AVD_COMB_Set3dCombMid(MS_BOOL bEnable);
257 #endif
258 extern void HAL_AVD_COMB_Set3dComb(MS_BOOL bEnable);
259 extern void HAL_AVD_COMB_Set3dCombSpeed(MS_U8 u8COMB57, MS_U8 u8COMB58, MS_U8 u8COMB5F);
260 extern void HAL_AVD_COMB_Set3dDetectionTolerance(MS_U8 u8Threshold);
261 extern void HAL_AVD_COMB_Set3dFineTune(MS_BOOL bEnable);
262 extern void HAL_AVD_COMB_SetF2(MS_U8 u8Value);
263 extern void HAL_AVD_COMB_SetNonStandardFSC(MS_BOOL bIsPAL,MS_BOOL bIsNonstandard);
264 extern void HAL_AVD_COMB_SetYCPipe(MS_U8 u8YCPipe);
265 extern void HAL_AVD_COMB_SetCbCrInverse(MS_U8 u8CbCrInverse);
266 extern void HAL_AVD_COMB_SetVerticalTimingDetectMode(MS_U8 u8Mode);
267 extern void HAL_AVD_COMB_SetLineBufferMode(MS_U8 u8Mode);
268 extern void HAL_AVD_COMB_SetNonStandardHtotal(MS_BOOL bEnable);
269 extern void HAL_AVD_COMB_SetHtotal(MS_U16 u16Htotal);
270 extern void HAL_AVD_COMB_SetHsyncTolerance(MS_U8 u8Tolerance);
271 extern void HAL_AVD_COMB_SetMemoryRequest(MS_BOOL bEnable);
272 extern void HAL_AVD_VBI_SetTTSigDetSel(MS_BOOL bEnable);
273 extern void HAL_AVD_VBI_SetVPSPhaseAcc(MS_U16 u16Parameter);
274 extern MS_U8 HAL_AVD_GetReg(MS_U16 u16Addr);
275 extern void HAL_AVD_SetReg(MS_U16 u16Addr, MS_U8 u8Value);
276 extern void HAL_AVD_SetPQFineTune(void);
277 extern MS_U8 HAL_AVD_GetHsyncEdge(void);
278 extern void HAL_AVD_Set2D3DPatchOnOff(MS_BOOL bEnable);
279 extern void HAL_AVD_AFEC_BackPorchWindowPosition(MS_BOOL bEnable ,MS_U8 u8Value);
280 extern void HAL_AVD_SetDSPCodeType(MS_BOOL bEnable);
281 extern void HAL_AVD_ShiftClk(AVD_ATV_CLK_TYPE eShiftMode, AVD_VideoStandardType eStandard,MS_U32 u32XTAL_Clock);
282 extern MS_BOOL HAL_AVD_AFEC_GetMacroVisionDetect(void);
283 extern MS_BOOL HAL_AVD_VBI_GetCGMSDetect(void);
284 #endif // _HAL_AVD_H_
285 
286