xref: /utopia/UTPA2-700.0.x/modules/xc/hal/maxim/xc/include/mhal_frc.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 // Copyright (c) 2006-2007 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 MHAL_FRC_H
96*53ee8cc1Swenshuai.xi #define MHAL_FRC_H
97*53ee8cc1Swenshuai.xi 
98*53ee8cc1Swenshuai.xi #include "hwreg_frc_map.h"
99*53ee8cc1Swenshuai.xi #include "hwreg_frc.h"
100*53ee8cc1Swenshuai.xi #include "hwreg_sc.h"
101*53ee8cc1Swenshuai.xi 
102*53ee8cc1Swenshuai.xi #ifdef MHAL_FRC_C
103*53ee8cc1Swenshuai.xi #define INTERFACE
104*53ee8cc1Swenshuai.xi #else
105*53ee8cc1Swenshuai.xi #define INTERFACE extern
106*53ee8cc1Swenshuai.xi #endif
107*53ee8cc1Swenshuai.xi 
108*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
109*53ee8cc1Swenshuai.xi //  Macro and Define
110*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
111*53ee8cc1Swenshuai.xi #define FRC_MIU1_MEM_ADDR     0x20000000
112*53ee8cc1Swenshuai.xi #define CRYSTAL_CLOCK    12000000ul//24000000ul
113*53ee8cc1Swenshuai.xi #define MST_CLOCK_HZ    CRYSTAL_CLOCK
114*53ee8cc1Swenshuai.xi #define MST_CLOCK_KHZ    (MST_CLOCK_HZ / 1000)
115*53ee8cc1Swenshuai.xi #define MST_CLOCK_MHZ    (MST_CLOCK_KHZ / 1000)
116*53ee8cc1Swenshuai.xi #define FRC_MAP_REG(reg) (((reg)>>8)&0xFF), ((reg)&0xFF)
117*53ee8cc1Swenshuai.xi #define FRC_IP_ALL 0xff
118*53ee8cc1Swenshuai.xi #define FRC_IP_NULL 0xff
119*53ee8cc1Swenshuai.xi #define REG_ADDR_SIZE 2
120*53ee8cc1Swenshuai.xi #define REG_MASK_SIZE 1
121*53ee8cc1Swenshuai.xi //#define REG_TABLE_END          0xFFFF
122*53ee8cc1Swenshuai.xi #define _END_OF_TBL_        0xFFFF
123*53ee8cc1Swenshuai.xi #define  MS_ALG_CMD_LEN         16
124*53ee8cc1Swenshuai.xi #define FRC_BK_SWITCH(_x_)\
125*53ee8cc1Swenshuai.xi         MDrv_WriteByte(REG_FRC_BANK_BASE, _x_)
126*53ee8cc1Swenshuai.xi #define FRC_BK_CURRENT   \
127*53ee8cc1Swenshuai.xi         MDrv_ReadByte(REG_FRC_BANK_BASE)
128*53ee8cc1Swenshuai.xi 
129*53ee8cc1Swenshuai.xi #define VSTART_OFFSET 2
130*53ee8cc1Swenshuai.xi #define VSYNCSTART_OFFSET 14
131*53ee8cc1Swenshuai.xi #define VSYNC_FRONT_PORCH 11
132*53ee8cc1Swenshuai.xi 
133*53ee8cc1Swenshuai.xi #define FRC_Y_TRIGGER_DELAY 70
134*53ee8cc1Swenshuai.xi #define FRC_Y_TRIGGER_DELAY_RGB 10
135*53ee8cc1Swenshuai.xi 
136*53ee8cc1Swenshuai.xi #ifdef PATCH_TCON_BRING_UP
137*53ee8cc1Swenshuai.xi #define VSYNC_OFFSET_FOR_UD_VB1_8LANE_DRDEPI 65
138*53ee8cc1Swenshuai.xi #define FRC_Y_TRIGGER_START_OFFSET_YUV_FOR_UD_VB1_8LANE_DRDEPI 69
139*53ee8cc1Swenshuai.xi #define FRC_Y_TRIGGER_START_OFFSET_RGB_FOR_UD_VB1_8LANE_DRDEPI 10
140*53ee8cc1Swenshuai.xi #define FRC_TGEN_VSYNC_START_FOR_UD_VB1_8LANE_DRDEPI 1
141*53ee8cc1Swenshuai.xi #define FRC_TGEN_VSYNC_END_FOR_UD_VB1_8LANE_DRDEPI 3
142*53ee8cc1Swenshuai.xi #endif
143*53ee8cc1Swenshuai.xi 
144*53ee8cc1Swenshuai.xi #define FRCR2_MBX_QUEUESIZE 10
145*53ee8cc1Swenshuai.xi 
146*53ee8cc1Swenshuai.xi #define GOP_FSC_FHD_OFFSET_H    0x02
147*53ee8cc1Swenshuai.xi #define GOP_FSC_FHD_OFFSET_V    0x0C
148*53ee8cc1Swenshuai.xi #define GOP_FSC_4K_OFFSET_H     0x02
149*53ee8cc1Swenshuai.xi #define GOP_FSC_4K_OFFSET_V     0x0C
150*53ee8cc1Swenshuai.xi #define GOP_NO_FSC_OFFSET_H     0x00
151*53ee8cc1Swenshuai.xi #define GOP_NO_FSC_OFFSET_V     0x00
152*53ee8cc1Swenshuai.xi 
153*53ee8cc1Swenshuai.xi typedef struct
154*53ee8cc1Swenshuai.xi {
155*53ee8cc1Swenshuai.xi     MS_U8 *pIPTable;
156*53ee8cc1Swenshuai.xi     MS_U8 u8TabNums;
157*53ee8cc1Swenshuai.xi     MS_U8 u8TabIdx;
158*53ee8cc1Swenshuai.xi } EN_FRC_IP_Info;
159*53ee8cc1Swenshuai.xi 
160*53ee8cc1Swenshuai.xi typedef struct
161*53ee8cc1Swenshuai.xi {
162*53ee8cc1Swenshuai.xi     MS_U8 *pIPTable;
163*53ee8cc1Swenshuai.xi     MS_U8 u8TabNums;
164*53ee8cc1Swenshuai.xi } EN_FRC_IPTAB_INFO;
165*53ee8cc1Swenshuai.xi 
166*53ee8cc1Swenshuai.xi typedef struct  __attribute__((packed))
167*53ee8cc1Swenshuai.xi {
168*53ee8cc1Swenshuai.xi     MS_U8 u8FRC_InputType_Num;
169*53ee8cc1Swenshuai.xi     MS_U8 u8FRC_IP_Num;
170*53ee8cc1Swenshuai.xi }FRCTABLE_INFO;
171*53ee8cc1Swenshuai.xi 
172*53ee8cc1Swenshuai.xi 
173*53ee8cc1Swenshuai.xi typedef enum
174*53ee8cc1Swenshuai.xi {
175*53ee8cc1Swenshuai.xi     E_FRC_op2_gamma_table = 1,  // gamma table
176*53ee8cc1Swenshuai.xi     E_FRC_od_table                = 2, // OD table
177*53ee8cc1Swenshuai.xi     E_FRC_ld_table                 = 3, // Local diming table
178*53ee8cc1Swenshuai.xi } FRC_CLIENT_TABLE;
179*53ee8cc1Swenshuai.xi 
180*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
181*53ee8cc1Swenshuai.xi //  Structure enum
182*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
183*53ee8cc1Swenshuai.xi 
184*53ee8cc1Swenshuai.xi typedef enum
185*53ee8cc1Swenshuai.xi {
186*53ee8cc1Swenshuai.xi     FRC_IP_MEM_IP_YC_8              = 0x00,
187*53ee8cc1Swenshuai.xi     FRC_IP_MEM_IP_YC_10             = 0x01,
188*53ee8cc1Swenshuai.xi     FRC_IP_MEM_IP_RGB_8             = 0x02,
189*53ee8cc1Swenshuai.xi     FRC_IP_MEM_IP_RGB_10            = 0x03,
190*53ee8cc1Swenshuai.xi     FRC_IP_MEM_IP_YC_10_SPECIAL     = 0x04,
191*53ee8cc1Swenshuai.xi     FRC_IP_MEM_IP_YUV_8             = 0x05,
192*53ee8cc1Swenshuai.xi     FRC_IP_MEM_IP_RGB_10_SPECIAL    = 0x06,
193*53ee8cc1Swenshuai.xi     FRC_IP_MEM_IP_YUV_10_SPECIAL    = 0x07
194*53ee8cc1Swenshuai.xi 
195*53ee8cc1Swenshuai.xi } FRC_IP_MEM_MODE_e;
196*53ee8cc1Swenshuai.xi 
197*53ee8cc1Swenshuai.xi typedef enum
198*53ee8cc1Swenshuai.xi {
199*53ee8cc1Swenshuai.xi     FRC_MIRROR_OFF,
200*53ee8cc1Swenshuai.xi     FRC_MIRROR_H_MODE,
201*53ee8cc1Swenshuai.xi     FRC_MIRROR_V_MODE,
202*53ee8cc1Swenshuai.xi     FRC_MIRROR_HV_MODE
203*53ee8cc1Swenshuai.xi } FRC_MirrorModeType_e;
204*53ee8cc1Swenshuai.xi 
205*53ee8cc1Swenshuai.xi typedef struct MST_PANEL_INFO_s
206*53ee8cc1Swenshuai.xi {
207*53ee8cc1Swenshuai.xi     // Basic
208*53ee8cc1Swenshuai.xi     MS_U16 u16HStart; //ursa scaler
209*53ee8cc1Swenshuai.xi     MS_U16 u16VStart; //ursa scaler
210*53ee8cc1Swenshuai.xi     MS_U16 u16Width; //ursa scaler
211*53ee8cc1Swenshuai.xi     MS_U16 u16Height; //ursa scaler
212*53ee8cc1Swenshuai.xi     MS_U16 u16HTotal; //ursa scaler
213*53ee8cc1Swenshuai.xi     MS_U16 u16VTotal; //ursa scaler
214*53ee8cc1Swenshuai.xi 
215*53ee8cc1Swenshuai.xi     MS_U16 u16DE_VStart;
216*53ee8cc1Swenshuai.xi 
217*53ee8cc1Swenshuai.xi     MS_U16 u16DefaultVFreq;
218*53ee8cc1Swenshuai.xi 
219*53ee8cc1Swenshuai.xi     // LPLL
220*53ee8cc1Swenshuai.xi     MS_U16 u16LPLL_InputDiv;
221*53ee8cc1Swenshuai.xi     MS_U16 u16LPLL_LoopDiv;
222*53ee8cc1Swenshuai.xi     MS_U16 u16LPLL_OutputDiv;
223*53ee8cc1Swenshuai.xi 
224*53ee8cc1Swenshuai.xi     MS_U8  u8LPLL_Type;
225*53ee8cc1Swenshuai.xi     MS_U8  u8LPLL_Mode;
226*53ee8cc1Swenshuai.xi 
227*53ee8cc1Swenshuai.xi     // sync
228*53ee8cc1Swenshuai.xi     MS_U8  u8HSyncWidth;
229*53ee8cc1Swenshuai.xi     MS_BOOL bPnlDblVSync;
230*53ee8cc1Swenshuai.xi 
231*53ee8cc1Swenshuai.xi     // output control
232*53ee8cc1Swenshuai.xi     MS_U16 u16OCTRL;
233*53ee8cc1Swenshuai.xi     MS_U16 u16OSTRL;
234*53ee8cc1Swenshuai.xi     MS_U16 u16ODRV;
235*53ee8cc1Swenshuai.xi     MS_U16 u16DITHCTRL;
236*53ee8cc1Swenshuai.xi 
237*53ee8cc1Swenshuai.xi     // MOD
238*53ee8cc1Swenshuai.xi     MS_U16 u16MOD_CTRL0;  // BIT2: tiMode, BIT5: lvdsSwapPol, BIT6: lvdsSwapCh
239*53ee8cc1Swenshuai.xi     MS_U8  u8MOD_CTRL2;
240*53ee8cc1Swenshuai.xi     MS_U16 u16MOD_CTRL9;
241*53ee8cc1Swenshuai.xi     MS_U16 u16MOD_CTRLA;  // BIT2: invertDE, BIT3: invertVS, BIT12: invertHS
242*53ee8cc1Swenshuai.xi     MS_U8  u8MOD_CTRLB;   // BIT0~1: panelBitNums
243*53ee8cc1Swenshuai.xi 
244*53ee8cc1Swenshuai.xi     MS_U8  u8MOD_CTRL77;    //pre-emphasis level
245*53ee8cc1Swenshuai.xi     MS_U8  u8MOD_CTRL78;
246*53ee8cc1Swenshuai.xi     //LGE [vivakjh] 2008/11/12     Add for DVB PDP Panel
247*53ee8cc1Swenshuai.xi     //Additional Info.(V Total)
248*53ee8cc1Swenshuai.xi     MS_U16 u16VTotal60Hz; //ursa scaler
249*53ee8cc1Swenshuai.xi     MS_U16 u16VTotal50Hz; //ursa scaler
250*53ee8cc1Swenshuai.xi     MS_U16 u16VTotal48Hz; //ursa scaler
251*53ee8cc1Swenshuai.xi     //[vivakjh] 2008/12/23    Add for adjusting the MRE in PDP S6
252*53ee8cc1Swenshuai.xi     MS_U16 u16VStart60Hz;
253*53ee8cc1Swenshuai.xi     MS_U16 u16VStart50Hz;
254*53ee8cc1Swenshuai.xi     MS_U16 u16VStart48Hz;
255*53ee8cc1Swenshuai.xi     MS_U16 u16VBackPorch60Hz;
256*53ee8cc1Swenshuai.xi     MS_U16 u16VBackPorch50Hz;
257*53ee8cc1Swenshuai.xi     MS_U16 u16VBackPorch48Hz;
258*53ee8cc1Swenshuai.xi 
259*53ee8cc1Swenshuai.xi     /*Panel Option
260*53ee8cc1Swenshuai.xi     0: LCD
261*53ee8cc1Swenshuai.xi     1: PDP
262*53ee8cc1Swenshuai.xi     2: LCD_NO_FRC
263*53ee8cc1Swenshuai.xi     3: LCD_TCON
264*53ee8cc1Swenshuai.xi     */
265*53ee8cc1Swenshuai.xi     MS_U8    u8LCDorPDP;
266*53ee8cc1Swenshuai.xi 
267*53ee8cc1Swenshuai.xi     MS_U32 u32LimitD5d6d7; //thchen 20081216
268*53ee8cc1Swenshuai.xi     MS_U16 u16LimitOffset; //thchen 20081216
269*53ee8cc1Swenshuai.xi     MS_U8  u8LvdsSwingUp;
270*53ee8cc1Swenshuai.xi     MS_BOOL bTTL_10BIT;
271*53ee8cc1Swenshuai.xi     MS_BOOL bOD_DataPath;
272*53ee8cc1Swenshuai.xi 
273*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
274*53ee8cc1Swenshuai.xi // FRC Control
275*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
276*53ee8cc1Swenshuai.xi     MS_BOOL bFRC;
277*53ee8cc1Swenshuai.xi     MS_U16 u16MOD_SwingLevel;
278*53ee8cc1Swenshuai.xi     MS_U16 u16MOD_SwingCLK;
279*53ee8cc1Swenshuai.xi     MS_U16 u16output_cfg_10;
280*53ee8cc1Swenshuai.xi     MS_U16 u16output_cfg_11;
281*53ee8cc1Swenshuai.xi     MS_U16 u16output_cfg_12;
282*53ee8cc1Swenshuai.xi     MS_U8 u8output_cfg_13;
283*53ee8cc1Swenshuai.xi     MS_U8 u8PanelNoiseDith;
284*53ee8cc1Swenshuai.xi     MS_U8 u8lvdsSwapCh;
285*53ee8cc1Swenshuai.xi     MS_U8 u8FRC3DPanelType;
286*53ee8cc1Swenshuai.xi 
287*53ee8cc1Swenshuai.xi     MS_BOOL bdither6Bits;
288*53ee8cc1Swenshuai.xi     MS_BOOL blvdsShiftPair;
289*53ee8cc1Swenshuai.xi     MS_BOOL blvdsSwapPair;
290*53ee8cc1Swenshuai.xi 
291*53ee8cc1Swenshuai.xi // TGEN
292*53ee8cc1Swenshuai.xi     MS_U16  u16HSyncStart;
293*53ee8cc1Swenshuai.xi     MS_U16  u16HSyncEnd;
294*53ee8cc1Swenshuai.xi     MS_U16  u16VSyncStart;
295*53ee8cc1Swenshuai.xi     MS_U16  u16VSyncEnd;
296*53ee8cc1Swenshuai.xi     MS_U16 u16VTrigX;
297*53ee8cc1Swenshuai.xi     MS_U16 u16VTrigY;
298*53ee8cc1Swenshuai.xi 
299*53ee8cc1Swenshuai.xi // EPI
300*53ee8cc1Swenshuai.xi     MS_BOOL bepiLRSwap;
301*53ee8cc1Swenshuai.xi     MS_BOOL bepiLMirror;
302*53ee8cc1Swenshuai.xi     MS_BOOL bepiRMirror;
303*53ee8cc1Swenshuai.xi 
304*53ee8cc1Swenshuai.xi } MST_PANEL_INFO_t, *PMST_PANEL_INFO_t;
305*53ee8cc1Swenshuai.xi 
306*53ee8cc1Swenshuai.xi // for composer setting
307*53ee8cc1Swenshuai.xi typedef enum
308*53ee8cc1Swenshuai.xi {
309*53ee8cc1Swenshuai.xi     E_FRC_COMPOSER_SOURCE_MODE_VIP     = 0,  // only STGEN disable case use this!
310*53ee8cc1Swenshuai.xi     E_FRC_COMPOSER_SOURCE_MODE_FSC     = 1,
311*53ee8cc1Swenshuai.xi     E_FRC_COMPOSER_SOURCE_MODE_FRC     = 2,
312*53ee8cc1Swenshuai.xi     E_FRC_COMPOSER_SOURCE_MODE_VIP_FB  = 3,
313*53ee8cc1Swenshuai.xi } E_FRC_COMPOSER_SOURCE_MODE;
314*53ee8cc1Swenshuai.xi 
315*53ee8cc1Swenshuai.xi typedef enum
316*53ee8cc1Swenshuai.xi {
317*53ee8cc1Swenshuai.xi     E_FRC_PIPE_DELAY_MODE_FIXED     = 0,
318*53ee8cc1Swenshuai.xi     E_FRC_PIPE_DELAY_MODE_USER      = 1,
319*53ee8cc1Swenshuai.xi     E_FRC_PIPE_DELAY_MODE_AUTO      = 2,
320*53ee8cc1Swenshuai.xi } E_FRC_PIPE_DELAY_MODE;
321*53ee8cc1Swenshuai.xi 
322*53ee8cc1Swenshuai.xi typedef enum
323*53ee8cc1Swenshuai.xi {
324*53ee8cc1Swenshuai.xi     E_FRC_TGEN_LOCK_SOURCE_MODE_FROM_IP     = 0,  // with FRC case
325*53ee8cc1Swenshuai.xi     E_FRC_TGEN_LOCK_SOURCE_MODE_FROM_TGEN   = 1,  // no FRC case
326*53ee8cc1Swenshuai.xi } E_FRC_TGEN_LOCK_SOURCE_MODE;
327*53ee8cc1Swenshuai.xi 
328*53ee8cc1Swenshuai.xi typedef enum
329*53ee8cc1Swenshuai.xi {
330*53ee8cc1Swenshuai.xi     E_FRC_STGEN_ODCLK_1      = 0,  // ODLCK
331*53ee8cc1Swenshuai.xi     E_FRC_STGEN_ODCLK_N      = 1,  // ODLCK div N
332*53ee8cc1Swenshuai.xi     E_FRC_STGEN_ODCLK_2      = 2,  // ODLCK/2
333*53ee8cc1Swenshuai.xi     E_FRC_STGEN_ODCLK_4      = 3,  // ODCLK/4
334*53ee8cc1Swenshuai.xi } E_FRC_STGEN_ODCLK;
335*53ee8cc1Swenshuai.xi 
336*53ee8cc1Swenshuai.xi typedef enum
337*53ee8cc1Swenshuai.xi {
338*53ee8cc1Swenshuai.xi     E_FSC_IDCLK_1      = 0,  // ODLCK
339*53ee8cc1Swenshuai.xi     E_FSC_IDCLK_2      = 1,  // ODLCK/2
340*53ee8cc1Swenshuai.xi     E_FSC_IDCLK_4      = 2,  // ODCLK/4
341*53ee8cc1Swenshuai.xi } E_FSC_IDCLK;
342*53ee8cc1Swenshuai.xi 
343*53ee8cc1Swenshuai.xi typedef enum
344*53ee8cc1Swenshuai.xi {
345*53ee8cc1Swenshuai.xi     E_FRC_FSC_SOURCE_MODE_MDE     = 0, // vip to fsc's de selection use MDE
346*53ee8cc1Swenshuai.xi     E_FRC_FSC_SOURCE_MODE_FDE     = 1,
347*53ee8cc1Swenshuai.xi } E_FRC_FSC_SOURCE_MODE;
348*53ee8cc1Swenshuai.xi 
349*53ee8cc1Swenshuai.xi typedef enum
350*53ee8cc1Swenshuai.xi {
351*53ee8cc1Swenshuai.xi     E_FRC_MLOAD_TRIG_MODE_FROM_OP1     = 0,  // no FRC case, menuload trig form stgen(FSC is enabled)
352*53ee8cc1Swenshuai.xi     E_FRC_MLOAD_TRIG_MODE_FROM_OP2     = 1,  // 1. with FRC case 2. no FRC and no FSC case, menuload trig form tgen
353*53ee8cc1Swenshuai.xi } E_FRC_MLOAD_TRIG_MODE;
354*53ee8cc1Swenshuai.xi 
355*53ee8cc1Swenshuai.xi typedef enum
356*53ee8cc1Swenshuai.xi {
357*53ee8cc1Swenshuai.xi     ///  MEMC level off
358*53ee8cc1Swenshuai.xi     MEMC_LEVEL_OFF,
359*53ee8cc1Swenshuai.xi     ///  MEMC level low
360*53ee8cc1Swenshuai.xi     MEMC_LEVEL_LOW,
361*53ee8cc1Swenshuai.xi     ///  MEMC level middle
362*53ee8cc1Swenshuai.xi     MEMC_LEVEL_MID,
363*53ee8cc1Swenshuai.xi     ///  MEMC level high
364*53ee8cc1Swenshuai.xi     MEMC_LEVEL_HIGH,
365*53ee8cc1Swenshuai.xi     ///  MEMC level bypass, its same as bypass 64 mode
366*53ee8cc1Swenshuai.xi     MEMC_LEVEL_BYPASS,
367*53ee8cc1Swenshuai.xi     ///  MEMC level bypass 64, one kind framerate converter of bypass.
368*53ee8cc1Swenshuai.xi     MEMC_LEVEL_BYPASS_64 = MEMC_LEVEL_BYPASS,
369*53ee8cc1Swenshuai.xi     ///  MEMC level bypass 55, one kind framerate convertr of bypass.
370*53ee8cc1Swenshuai.xi     MEMC_LEVEL_BYPASS_55,
371*53ee8cc1Swenshuai.xi }E_MEMC_LEVEL;
372*53ee8cc1Swenshuai.xi 
373*53ee8cc1Swenshuai.xi #define PIP_DELAY_COUNTER_RESET    (BIT(3)) // BK68_50_L [3]
374*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
375*53ee8cc1Swenshuai.xi //  Function and Variable
376*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
377*53ee8cc1Swenshuai.xi #define MHal_FRC_IsRGB(args...) 0
378*53ee8cc1Swenshuai.xi 
379*53ee8cc1Swenshuai.xi #define MHal_FRC_TGEN_SWReset(args...)
380*53ee8cc1Swenshuai.xi INTERFACE void MHal_FRC_TGEN_DoubleBuf(void *pInstance, MS_BOOL bEnDis);
381*53ee8cc1Swenshuai.xi INTERFACE void MHal_FRC_TGEN_SetVTotal(void *pInstance, MS_U16 u16VTotal);
382*53ee8cc1Swenshuai.xi INTERFACE void MHal_FRC_TGEN_SetHTotal(void *pInstance, MS_U16 u16HTotal);
383*53ee8cc1Swenshuai.xi #define MHal_FRC_TGEN_SetVTrigY(args...)
384*53ee8cc1Swenshuai.xi #define MHal_FRC_TGEN_SetVTrigX(args...)
385*53ee8cc1Swenshuai.xi INTERFACE void MHal_FRC_TGEN_SetVSyncStartEndY(void *pInstance, MS_U16 u16Start, MS_U16 u16End);
386*53ee8cc1Swenshuai.xi INTERFACE void MHal_FRC_TGEN_SetHSyncStartEndX(void *pInstance, MS_U16 u16Start, MS_U16 u16End);
387*53ee8cc1Swenshuai.xi INTERFACE void MHal_FRC_TGEN_SetFdeStartEndY(void *pInstance, MS_U16 u16Start, MS_U16 u16End);
388*53ee8cc1Swenshuai.xi INTERFACE void MHal_FRC_TGEN_SetFdeStartEndX(void *pInstance, MS_U16 u16Start, MS_U16 u16End);
389*53ee8cc1Swenshuai.xi INTERFACE void MHal_FRC_TGEN_SetMdeStartEndY(void *pInstance, MS_U16 u16Start, MS_U16 u16End);
390*53ee8cc1Swenshuai.xi INTERFACE void MHal_FRC_TGEN_SetMdeStartEndX(void *pInstance, MS_U16 u16Start, MS_U16 u16End);
391*53ee8cc1Swenshuai.xi INTERFACE void MHal_FRC_TGEN_SetSubMdeStartEndY(void *pInstance, MS_U16 u16Start, MS_U16 u16End);
392*53ee8cc1Swenshuai.xi INTERFACE void MHal_FRC_TGEN_SetSubMdeStartEndX(void *pInstance, MS_U16 u16Start, MS_U16 u16End);
393*53ee8cc1Swenshuai.xi 
394*53ee8cc1Swenshuai.xi #define MHal_FRC_TGEN_FpllRefPointY(args...)
395*53ee8cc1Swenshuai.xi #define MHal_FRC_TGEN_1Clk2PixOut(args...)
396*53ee8cc1Swenshuai.xi #define MHal_FRC_TGEN_SetSyncHcnt(args...)
397*53ee8cc1Swenshuai.xi #define MHal_FRC_TGEN_SetClrSyncAhead(args...)
398*53ee8cc1Swenshuai.xi 
399*53ee8cc1Swenshuai.xi INTERFACE void MHal_FRC_TGEN_Init(void *pInstance);
400*53ee8cc1Swenshuai.xi INTERFACE void MHal_FRC_TGEN_Enable_LockMode(void *pInstance, MS_BOOL bEn);
401*53ee8cc1Swenshuai.xi INTERFACE void MHal_FRC_TGEN_Enable_Source_Select_Mode(void *pInstance, MS_BOOL bEn);
402*53ee8cc1Swenshuai.xi //INTERFACE void MHal_FRC_TGEN_Set_Lock_Source(void *pInstance, E_FRC_TGEN_LOCK_SOURCE_MODE eMode);
403*53ee8cc1Swenshuai.xi INTERFACE void MHal_FRC_TGEN_Enable_Lock_Source(void *pInstance, MS_BOOL bEn, E_FRC_TGEN_LOCK_SOURCE_MODE eMode, MS_BOOL bMenuload);
404*53ee8cc1Swenshuai.xi 
405*53ee8cc1Swenshuai.xi INTERFACE void MHal_FRC_SetYTrig(void *pInstance, MS_U16 u16Trig1, MS_U16 u16Trig2);
406*53ee8cc1Swenshuai.xi 
407*53ee8cc1Swenshuai.xi INTERFACE void MHal_FRC_Enable_MiuMask(void *pInstance);
408*53ee8cc1Swenshuai.xi INTERFACE void MHal_FRC_Disable_MiuMask(void *pInstance);
409*53ee8cc1Swenshuai.xi INTERFACE void MHal_FRC_set_miusel(void *pInstance, MS_U8 u8MIUSel);
410*53ee8cc1Swenshuai.xi 
411*53ee8cc1Swenshuai.xi #define MHal_FRC_IPM_SoftwareReset(args...)
412*53ee8cc1Swenshuai.xi #define MHal_FRC_IPM_RWEn(args...)
413*53ee8cc1Swenshuai.xi #define MHal_FRC_IPM_RW_CEN_Select(args...)
414*53ee8cc1Swenshuai.xi #define MHal_FRC_IPM_SetYuv10Bit(args...)
415*53ee8cc1Swenshuai.xi #define MHal_FRC_IPM_SetMr(args...)
416*53ee8cc1Swenshuai.xi #define MHal_FRC_IPM_SetMemoryMode(args...)
417*53ee8cc1Swenshuai.xi #define MHal_FRC_IPM_YC444To422Control(args...)
418*53ee8cc1Swenshuai.xi #define MHal_FRC_IPM_SetFrameBufferNum(args...)
419*53ee8cc1Swenshuai.xi #define MHal_FRC_IPM_CeLineCountEn(args...)
420*53ee8cc1Swenshuai.xi INTERFACE void MHal_FRC_IPM_SetBaseAddr(void *pInstance, MS_PHY addr, MS_U32 u32FrameYcout, MS_U16 u16FB_YcountLinePitch, MS_U8 u8MirrorMode );
421*53ee8cc1Swenshuai.xi INTERFACE void MHal_FRC_IPM_R_SetBaseAddr(void *pInstance, MS_PHY addr);
422*53ee8cc1Swenshuai.xi #define MHal_FRC_IPM_SetIp2Mc(args...)
423*53ee8cc1Swenshuai.xi #define MHal_FRC_IPM_SetYCoutLinePitch(args...)
424*53ee8cc1Swenshuai.xi #define MHal_FRC_IPM_SetReadFetchNumber(args...)
425*53ee8cc1Swenshuai.xi #define MHal_FRC_IPM_SetWriteFetchNumber(args...)
426*53ee8cc1Swenshuai.xi #define MHal_FRC_IPM_SetRfifoThr(args...)
427*53ee8cc1Swenshuai.xi #define MHal_FRC_IPM_SetWfifoThr(args...)
428*53ee8cc1Swenshuai.xi #define MHal_FRC_IPM_SetReadLength(args...)
429*53ee8cc1Swenshuai.xi #define MHal_FRC_IPM_SetWriteLength(args...)
430*53ee8cc1Swenshuai.xi #define MHal_FRC_IPM_SetHTotalPixellimit(args...)
431*53ee8cc1Swenshuai.xi #define MHal_FRC_IPM_SetVTotalPixellimit(args...)
432*53ee8cc1Swenshuai.xi #define MHal_FRC_IPM_SetRmaskNum(args...)
433*53ee8cc1Swenshuai.xi #define MHal_FRC_IPM_SetWmaskNum(args...)
434*53ee8cc1Swenshuai.xi #define MHal_FRC_IPM_SetMirrorMode(args...)
435*53ee8cc1Swenshuai.xi #define MHal_FRC_IPM_PacketInitCnt(args...)
436*53ee8cc1Swenshuai.xi #define MHal_FRC_IPM_SetLvdsInputMode(args...)
437*53ee8cc1Swenshuai.xi #define MHal_FRC_IPM_SetOsdWinIdx(args...)
438*53ee8cc1Swenshuai.xi #define MHal_FRC_IPM_SetVPulseLineRst(args...)
439*53ee8cc1Swenshuai.xi #define MHal_FRC_IPM_SetVPulseLoc(args...)
440*53ee8cc1Swenshuai.xi #define MHal_FRC_IPM_SetLockIntCtrl(args...)
441*53ee8cc1Swenshuai.xi #define MHal_FRC_IPM_SetBlankBoundary(args...)
442*53ee8cc1Swenshuai.xi #define MHal_FRC_IPM_GetHTotal(args...) 0
443*53ee8cc1Swenshuai.xi #define MHal_FRC_IPM_GetVTotal(args...) 0
444*53ee8cc1Swenshuai.xi #define MHal_FRC_IPM_GetHde(args...) 0
445*53ee8cc1Swenshuai.xi #define MHal_FRC_IPM_GetVde(args...) 0
446*53ee8cc1Swenshuai.xi #define MHal_FRC_IPM_Csc(args...)
447*53ee8cc1Swenshuai.xi #define MHal_FRC_IPM_CscDither(args...)
448*53ee8cc1Swenshuai.xi #define MHal_FRC_IPM_CscRound(args...)
449*53ee8cc1Swenshuai.xi #define MHal_FRC_IPM_CscSaturation(args...)
450*53ee8cc1Swenshuai.xi #define MHal_FRC_IPM_CheckBoardEn(args...)
451*53ee8cc1Swenshuai.xi #define MHal_FRC_IPM_SetIpCtrl(args...)
452*53ee8cc1Swenshuai.xi #define MHal_FRC_IPM_SetHRefLock(args...)
453*53ee8cc1Swenshuai.xi #define MHal_FRC_IPM_GetHdeCount(args...) 0
454*53ee8cc1Swenshuai.xi #define MHal_FRC_IPM_TestPattern(args...)
455*53ee8cc1Swenshuai.xi #define MHal_FRC_IPM_SetHTotal(args...)
456*53ee8cc1Swenshuai.xi #define MHal_FRC_IPM_SetVTotal(args...)
457*53ee8cc1Swenshuai.xi #define MHal_FRC_IPM_HActive(args...)
458*53ee8cc1Swenshuai.xi #define MHal_FRC_IPM_VActive(args...)
459*53ee8cc1Swenshuai.xi #define MHal_FRC_IPM_GetYcoutLinePitch(args...) 0
460*53ee8cc1Swenshuai.xi #define MHal_FRC_IPM_GetWriteFetchNum(args...) 0
461*53ee8cc1Swenshuai.xi #define MHal_FRC_IPM_GetReadFetchNum(args...) 0
462*53ee8cc1Swenshuai.xi #define MHal_FRC_IPM_GetLineLimit(args...) 0
463*53ee8cc1Swenshuai.xi #define MHal_FRC_IPM_SetPacketCount(args...)
464*53ee8cc1Swenshuai.xi #define MHal_FRC_IPM_GetFrameYcout(args...) 0
465*53ee8cc1Swenshuai.xi #define MHal_FRC_IPM_3DFlag_In_SWMode_En(args...)
466*53ee8cc1Swenshuai.xi #define MHal_FRC_IPM_3DFlag_In_SWMode_SetIdx(args...)
467*53ee8cc1Swenshuai.xi #define MHal_FRC_IPM_3DFlag_In_HWMode_SrcSel(args...)
468*53ee8cc1Swenshuai.xi #define MHal_FRC_IPM_GetIPVfreqX10(args...) 0
469*53ee8cc1Swenshuai.xi 
470*53ee8cc1Swenshuai.xi 
471*53ee8cc1Swenshuai.xi 
472*53ee8cc1Swenshuai.xi #define MHal_FRC_OPM_SetFbLineOffset_Data(args...)
473*53ee8cc1Swenshuai.xi #define MHal_FRC_OPM_SetFbLineOffset_Me3(args...)
474*53ee8cc1Swenshuai.xi #define MHal_FRC_OPM_SetSrcPixNum(args...)
475*53ee8cc1Swenshuai.xi #define MHal_FRC_OPM_SetSrcLineNum(args...)
476*53ee8cc1Swenshuai.xi #define MHal_FRC_OPM_CeLineCountEn(args...)
477*53ee8cc1Swenshuai.xi #define MHal_FRC_OPM_SetLbiSrcPixelNum_Left(args...)
478*53ee8cc1Swenshuai.xi #define MHal_FRC_OPM_SetLbiReadPixelNum_Left(args...)
479*53ee8cc1Swenshuai.xi #define MHal_FRC_OPM_SetLbiSkipEn(args...)
480*53ee8cc1Swenshuai.xi #define MHal_FRC_OPM_SetLbiSkipNum_Left(args...)
481*53ee8cc1Swenshuai.xi #define MHal_FRC_OPM_SetLbiSrcPixelNum_Right(args...)
482*53ee8cc1Swenshuai.xi #define MHal_FRC_OPM_SetLbiReadPixelNum_Right(args...)
483*53ee8cc1Swenshuai.xi #define MHal_FRC_OPM_SetLbiSkipEn3D(args...)
484*53ee8cc1Swenshuai.xi #define MHal_FRC_OPM_SetLbiSkipNum_Right(args...)
485*53ee8cc1Swenshuai.xi #define MHal_FRC_OPM_FuncEn(args...)
486*53ee8cc1Swenshuai.xi #define MHal_FRC_OPM_3dFuncEn(args...)
487*53ee8cc1Swenshuai.xi #define MHal_FRC_OPM_SetBaseOffset_Data0(args...)
488*53ee8cc1Swenshuai.xi #define MHal_FRC_OPM_SetBaseOffset_Data1(args...)
489*53ee8cc1Swenshuai.xi #define MHal_FRC_OPM_SetBaseOffset_Me0(args...)
490*53ee8cc1Swenshuai.xi #define MHal_FRC_OPM_SetBaseOffset_Me1(args...)
491*53ee8cc1Swenshuai.xi #define MHal_FRC_OPM_SetBaseOffset_Me3(args...)
492*53ee8cc1Swenshuai.xi #define MHal_FRC_OPM_SetBaseOffset_Da0_L(args...)
493*53ee8cc1Swenshuai.xi #define MHal_FRC_OPM_SetBaseOffset_Da1_L(args...)
494*53ee8cc1Swenshuai.xi #define MHal_FRC_OPM_SetBaseOffset_Me0_L(args...)
495*53ee8cc1Swenshuai.xi #define MHal_FRC_OPM_SetBaseOffset_Me1_L(args...)
496*53ee8cc1Swenshuai.xi #define MHal_FRC_OPM_SetBaseOffset_Me3_L(args...)
497*53ee8cc1Swenshuai.xi #define MHal_FRC_OPM_SetBaseOffset_Mr1_L(args...)
498*53ee8cc1Swenshuai.xi #define MHal_FRC_OPM_SetBaseOffset_Mr1(args...)
499*53ee8cc1Swenshuai.xi #define MHal_FRC_OPM_SetDebugMask(args...)
500*53ee8cc1Swenshuai.xi #define MHal_FRC_OPM_SwReset(args...)
501*53ee8cc1Swenshuai.xi #define MHal_FRC_OPM_enableBaseAdrMr(args...)
502*53ee8cc1Swenshuai.xi INTERFACE void MHal_FRC_OPM_SetBaseAddr(void *pInstance, MS_PHY addr, MS_U32 u32FrameYcout);
503*53ee8cc1Swenshuai.xi INTERFACE void MHal_FRC_OPM_R_SetBaseAddr(void *pInstance, MS_PHY addr);
504*53ee8cc1Swenshuai.xi #define MHal_FRC_OPM_SetMlbOutRstCycle(args...)
505*53ee8cc1Swenshuai.xi #define MHal_FRC_OPM_SetFifoTrigThr(args...)
506*53ee8cc1Swenshuai.xi #define MHal_FRC_OPM_SetFifoMaxReadReq(args...)
507*53ee8cc1Swenshuai.xi #define MHal_FRC_OPM_SetGatingClk(args...)
508*53ee8cc1Swenshuai.xi #define MHal_FRC_SetMemMode(args...)
509*53ee8cc1Swenshuai.xi 
510*53ee8cc1Swenshuai.xi #define MHal_FRC_OP2_ColorMatrixEn(args...)
511*53ee8cc1Swenshuai.xi #define MHal_FRC_OP2_CscDitherEn(args...)
512*53ee8cc1Swenshuai.xi #define MHal_FRC_OP2_DataPathEn(args...)
513*53ee8cc1Swenshuai.xi #define MHal_FRC_OP2_DebugFuncEn(args...)
514*53ee8cc1Swenshuai.xi #define MHal_FRC_OP2_SetGain_R(args...)
515*53ee8cc1Swenshuai.xi #define MHal_FRC_OP2_SetGain_G(args...)
516*53ee8cc1Swenshuai.xi #define MHal_FRC_OP2_SetGain_B(args...)
517*53ee8cc1Swenshuai.xi #define MHal_FRC_OP2_SetOffset_R(args...)
518*53ee8cc1Swenshuai.xi #define MHal_FRC_OP2_SetOffset_G(args...)
519*53ee8cc1Swenshuai.xi #define MHal_FRC_OP2_SetOffset_B(args...)
520*53ee8cc1Swenshuai.xi #define MHal_FRC_OP2_SetDither(args...)
521*53ee8cc1Swenshuai.xi #define MHal_FRC_OP2_PAFRC_FuncEn(args...)
522*53ee8cc1Swenshuai.xi #define MHal_FRC_OP2_PAFRC_FuncEn2(args...)
523*53ee8cc1Swenshuai.xi #define MHal_FRC_OP2_PAFRC_FuncEn3(args...)
524*53ee8cc1Swenshuai.xi #define MHal_FRC_OP2_PAFRC_Set2x2BlockRotDir(args...)
525*53ee8cc1Swenshuai.xi #define MHal_FRC_OP2_PAFRC_TopBoxFrSeq(args...)
526*53ee8cc1Swenshuai.xi #define MHal_FRC_OP2_PAFRC_TopBoxFrC2Seq(args...)
527*53ee8cc1Swenshuai.xi #define MHal_FRC_OP2_PAFRC_SetBoxRotDir(args...)
528*53ee8cc1Swenshuai.xi #define MHal_FRC_OP2_PAFRC_Set8x8BoxRotDir(args...)
529*53ee8cc1Swenshuai.xi #define MHal_FRC_OP2_PAFRC_SetBlockEntities(args...)
530*53ee8cc1Swenshuai.xi #define MHal_FRC_OP2_PAFRC_PolarityCtrl(args...)
531*53ee8cc1Swenshuai.xi #define MHal_FRC_OP2_PAFRC_SetBoxLsbValue(args...)
532*53ee8cc1Swenshuai.xi 
533*53ee8cc1Swenshuai.xi #define MHal_FRC_SCTOP_SCMI_Bypass_Enable(args...)
534*53ee8cc1Swenshuai.xi #define MHal_FRC_SCTOP_FRC_Bypass_Enable(args...)
535*53ee8cc1Swenshuai.xi 
536*53ee8cc1Swenshuai.xi #define MHal_FRC_SNR_SetPixelHorixontalNum(args...)
537*53ee8cc1Swenshuai.xi #define MHal_FRC_SNR_SetLineVerticalNum(args...)
538*53ee8cc1Swenshuai.xi 
539*53ee8cc1Swenshuai.xi #define MHal_FRC_SCP_HSU1_HSP(args...)
540*53ee8cc1Swenshuai.xi #define MHal_FRC_SCP_HSU1_Init_Position(args...)
541*53ee8cc1Swenshuai.xi #define MHal_FRC_SCP_HSU1_Scaling_Mode(args...)
542*53ee8cc1Swenshuai.xi #define MHal_FRC_SCP_HSU1_444to422_Mode(args...)
543*53ee8cc1Swenshuai.xi #define MHal_FRC_SCP_HSU1_VSU_Scaling_Mode(args...)
544*53ee8cc1Swenshuai.xi #define MHal_FRC_SCP_HSU1_VSU_Scaling_coef(args...)
545*53ee8cc1Swenshuai.xi #define MHal_FRC_SCP_HSU2_HSP(args...)
546*53ee8cc1Swenshuai.xi #define MHal_FRC_SCP_HSU2_Init_Position(args...)
547*53ee8cc1Swenshuai.xi #define MHal_FRC_SCP_HSU2_Scaling_Mode(args...)
548*53ee8cc1Swenshuai.xi 
549*53ee8cc1Swenshuai.xi #define MHal_FRC_OD_SetBaseAddr(args...)
550*53ee8cc1Swenshuai.xi #define MHal_FRC_LD_SetBaseAddr(args...)
551*53ee8cc1Swenshuai.xi #define MHal_FRC_LD_Edge2D_SetBaseAddr(args...)
552*53ee8cc1Swenshuai.xi INTERFACE void MHal_FRC_ME1_SetBaseAddr(void *pInstance, MS_PHY addr, MS_U32 u32Size);
553*53ee8cc1Swenshuai.xi INTERFACE void MHal_FRC_ME2_SetBaseAddr(void *pInstance, MS_PHY addr, MS_U32 u32Size);
554*53ee8cc1Swenshuai.xi #define MHal_FRC_2D3D_Render_SetBaseAddr(args...)
555*53ee8cc1Swenshuai.xi #define MHal_FRC_2D3D_Render_Detection_SetBaseAddr(args...)
556*53ee8cc1Swenshuai.xi INTERFACE void MHal_FRC_Halo_SetBaseAddr(void *pInstance, MS_PHY addr, MS_U32 u32Size);
557*53ee8cc1Swenshuai.xi #define MHal_FRC_OverDriverSwitch(args...)
558*53ee8cc1Swenshuai.xi #define MHal_FRC_OD_Init(args...)
559*53ee8cc1Swenshuai.xi 
560*53ee8cc1Swenshuai.xi // for FRC init
561*53ee8cc1Swenshuai.xi INTERFACE void MHal_FRC_Init(void *pInstance, PMST_PANEL_INFO_t pPanelInfo, PFRC_INFO_t pFRCInfo);
562*53ee8cc1Swenshuai.xi INTERFACE void MHal_FRC_ByPass_Enable(void *pInstance, MS_BOOL bEnable);
563*53ee8cc1Swenshuai.xi 
564*53ee8cc1Swenshuai.xi #define MHal_FRC_LoadTabelbySrcType(args...)
565*53ee8cc1Swenshuai.xi INTERFACE void MHal_FRC_Set_3D_QMap(void *pInstance, MS_U8 u8FRC3DPanelType, MS_U16 u16sc_in_3dformat, MS_U16 u16sc_out_3dformat, MS_U8 u83D_FI_out);
566*53ee8cc1Swenshuai.xi 
567*53ee8cc1Swenshuai.xi 
568*53ee8cc1Swenshuai.xi //FRC R2 Mail Box Control
569*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL MHal_XC_SendCmdToFRC(void *pInstance, MS_U8 u8Cmd, MS_U8 count, MS_U8 p1, MS_U8 p2, MS_U8 p3, MS_U8 p4, MS_U8 p5, MS_U8 p6, MS_U8 p7, MS_U8 p8);
570*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL MHal_XC_GetMsgFromFRC(void *pInstance, MS_U8* pu8Cmd, MS_U8* pu8ParaCount, MS_U8* pu8Para);
571*53ee8cc1Swenshuai.xi 
572*53ee8cc1Swenshuai.xi INTERFACE MS_U16 Hal_XC_FRC_R2_Get_SwVersion(void *pInstance);
573*53ee8cc1Swenshuai.xi INTERFACE MS_U16 Hal_XC_FRC_R2_Get_CmdVersion(void *pInstance);
574*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL Hal_XC_FRC_R2_Init(void *pInstance, MS_U8 u8Panel3DType, MS_U8 u8PanelMaxFreq, MS_U8 u8LocalDimingPanelType, MS_U8 u8ChipRevision);
575*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL Hal_XC_FRC_R2_Set_Timing(void *pInstance, MS_U8 u8InVFreq, MS_U8 u8OutVFreq);
576*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL Hal_XC_FRC_R2_Set_InputFrameSize(void *pInstance, MS_U16 u16HSize, MS_U16 u16VSize );
577*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL Hal_XC_FRC_R2_Set_OutputFrameSize(void *pInstance, MS_U16 u16HSize, MS_U16 u16VSize );
578*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL Hal_XC_FRC_R2_Set_FPLL_Lockdone(void *pInstance, MS_BOOL bLockDone);
579*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL Hal_XC_FRC_R2_Enable_MEMC(void *pInstance, MS_U16 u16MEMCLevel);
580*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL Hal_XC_FRC_R2_Set_Input3DFormat(void *pInstance, MS_U8 u8FrcInput3DType);
581*53ee8cc1Swenshuai.xi 
582*53ee8cc1Swenshuai.xi 
583*53ee8cc1Swenshuai.xi #define Hal_XC_FRC_R2_Set_MfcMode(args...)
584*53ee8cc1Swenshuai.xi #define Hal_XC_FRC_R2_Set_MfcDemoMode(args...)
585*53ee8cc1Swenshuai.xi #define Hal_XC_FRC_R2_Set_LocalDimmingMode(args...)
586*53ee8cc1Swenshuai.xi #define Hal_XC_FRC_R2_Set_2DTo3DMode(args...) 0
587*53ee8cc1Swenshuai.xi 
588*53ee8cc1Swenshuai.xi //FRC auto download
589*53ee8cc1Swenshuai.xi #define Hal_FRC_ADLG_set_base_addr(args...)
590*53ee8cc1Swenshuai.xi #define Hal_FRC_ADLG_set_depth(args...)
591*53ee8cc1Swenshuai.xi #define Hal_FRC_ADLG_set_dma(args...)
592*53ee8cc1Swenshuai.xi #define Hal_FRC_ADLG_set_on_off(args...)
593*53ee8cc1Swenshuai.xi 
594*53ee8cc1Swenshuai.xi #define Hal_FRC_get_table_idx(args...) FRC_NOTSUPPORT_MODE
595*53ee8cc1Swenshuai.xi 
596*53ee8cc1Swenshuai.xi #define MHal_XC_OC_set_HSyncStartEnd(args...)
597*53ee8cc1Swenshuai.xi #define MHal_XC_OC_set_VSyncStartEnd(args...)
598*53ee8cc1Swenshuai.xi #define MHal_XC_OC_set_HFdeStartEnd(args...)
599*53ee8cc1Swenshuai.xi #define MHal_XC_OC_set_VFdeStartEnd(args...)
600*53ee8cc1Swenshuai.xi #define MHal_XC_OC_set_HTotal(args...)
601*53ee8cc1Swenshuai.xi #define MHal_XC_OC_set_VTotal(args...)
602*53ee8cc1Swenshuai.xi 
603*53ee8cc1Swenshuai.xi #define MHal_FRC_IPM_SetOffset(args...)
604*53ee8cc1Swenshuai.xi #define MHal_FRC_IPM_SetFetchNum(args...)
605*53ee8cc1Swenshuai.xi #define MHal_FRC_OPM_SetOffset(args...)
606*53ee8cc1Swenshuai.xi #define MHal_FRC_OPM_SetFetchNum(args...)
607*53ee8cc1Swenshuai.xi #define MHal_FRC_HSU_SetScalingSize(args...)
608*53ee8cc1Swenshuai.xi #define MHal_FRC_VSU_SetScalingSize(args...)
609*53ee8cc1Swenshuai.xi #define MHal_FRC_CSC_SelectPath(args...)
610*53ee8cc1Swenshuai.xi 
611*53ee8cc1Swenshuai.xi #define MHal_FRC_interrupt_mask(args...)
612*53ee8cc1Swenshuai.xi #define MHal_FRC_Mute(args...)
613*53ee8cc1Swenshuai.xi #define MHal_FRC_3DLR_Select(args...)
614*53ee8cc1Swenshuai.xi 
615*53ee8cc1Swenshuai.xi INTERFACE void MHal_FRC_Composer_User_Mode_Enable(void *pInstance, MS_BOOL bEnable);
616*53ee8cc1Swenshuai.xi INTERFACE void MHal_FRC_Set_Composer_User_Mode(void *pInstance, E_FRC_COMPOSER_SOURCE_MODE eMode, MS_BOOL bMenuload);
617*53ee8cc1Swenshuai.xi 
618*53ee8cc1Swenshuai.xi INTERFACE void MHal_FRC_Set_Pipe_Delay_Mode(void *pInstance, E_FRC_PIPE_DELAY_MODE eMode);
619*53ee8cc1Swenshuai.xi INTERFACE void MHal_FRC_Set_Pipe_Delay_Value(void *pInstance, MS_U16 u16Hcnt, MS_U16 u16Vcnt);
620*53ee8cc1Swenshuai.xi INTERFACE void MHal_FRC_Set_Pipe_Delay_Reset(void *pInstance, MS_BOOL bEnable, MS_BOOL bMenuload);
621*53ee8cc1Swenshuai.xi 
622*53ee8cc1Swenshuai.xi INTERFACE void MHal_FRC_Set_STGEN_ODCLK(void *pInstance, E_FRC_STGEN_ODCLK eMode, MS_BOOL bMenuload);
623*53ee8cc1Swenshuai.xi INTERFACE void MHal_FRC_Set_FSC_DE_Selection(void *pInstance, E_FRC_FSC_SOURCE_MODE eMode);
624*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL MHal_FRC_IsFHDToFSC(void *pInstance, SCALER_WIN eWindow);
625*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL MHal_FRC_IsSupportFRC_byEfuse(void *pInstance);
626*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL MHal_FRC_Check_Condition(void *pInstance);
627*53ee8cc1Swenshuai.xi INTERFACE void MHal_FRC_AdjustGOPPosition(void *pInstance);
628*53ee8cc1Swenshuai.xi INTERFACE void MHal_FRC_GetGOPOffset(void *pInstance, MS_U16 *u16OffsetH, MS_U16 *u16OffsetV);
629*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL MHal_FRC_IsEnableFRC3D(void *pInstance, SCALER_WIN eWindow);
630*53ee8cc1Swenshuai.xi INTERFACE void MHal_FRC_Set_Mload_Trig_Mode(void *pInstance, E_FRC_MLOAD_TRIG_MODE eMode);
631*53ee8cc1Swenshuai.xi 
632*53ee8cc1Swenshuai.xi //----------------- Maserati new API, Maxim no need   ---------------------//
633*53ee8cc1Swenshuai.xi #define MHal_FRC_Set_FO_Path(args...)
634*53ee8cc1Swenshuai.xi #define MHal_FRC_Set_FO_VOP_H_Size(args...)
635*53ee8cc1Swenshuai.xi #define MHal_FRC_Set_FO_SPTP_Setting(args...)
636*53ee8cc1Swenshuai.xi #define MHal_FRC_Set_FO_2Line_Setting(args...)
637*53ee8cc1Swenshuai.xi #define MHal_FRC_Set_FO_OSDDS_Setting(args...)
638*53ee8cc1Swenshuai.xi 
639*53ee8cc1Swenshuai.xi #define MHal_FRC_FO_TGEN_SetVTotal(args...)
640*53ee8cc1Swenshuai.xi #define MHal_FRC_FO_TGEN_SetHTotal(args...)
641*53ee8cc1Swenshuai.xi #define MHal_FRC_FO_TGEN_SetVTrigY(args...)
642*53ee8cc1Swenshuai.xi #define MHal_FRC_FO_TGEN_SetVTrigX(args...)
643*53ee8cc1Swenshuai.xi #define MHal_FRC_FO_TGEN_SetVSyncStartEndY(args...)
644*53ee8cc1Swenshuai.xi #define MHal_FRC_FO_TGEN_SetHSyncStartEndX(args...)
645*53ee8cc1Swenshuai.xi #define MHal_FRC_FO_TGEN_SetFdeStartEndY(args...)
646*53ee8cc1Swenshuai.xi #define MHal_FRC_FO_TGEN_SetFdeStartEndX(args...)
647*53ee8cc1Swenshuai.xi #define MHal_FRC_FO_TGEN_SetMdeStartEndY(args...)
648*53ee8cc1Swenshuai.xi #define MHal_FRC_FO_TGEN_SetMdeStartEndX(args...)
649*53ee8cc1Swenshuai.xi #define MHal_FRC_FO_TGEN_SetMdeStartEndX_L(args...)
650*53ee8cc1Swenshuai.xi #define MHal_FRC_FO_TGEN_SetMdeStartEndX_R(args...)
651*53ee8cc1Swenshuai.xi 
652*53ee8cc1Swenshuai.xi #define MHal_FRC_Set_SC2_PLL_Vsync_Ref(args...)
653*53ee8cc1Swenshuai.xi //------------------------------------------------ --------------------//
654*53ee8cc1Swenshuai.xi 
655*53ee8cc1Swenshuai.xi INTERFACE void MHal_SWDS_AddTGENMdeStartEndY(void *pInstance, MS_U16 u16Start, MS_U16 u16End, SCALER_WIN eWindow);
656*53ee8cc1Swenshuai.xi INTERFACE void MHal_SWDS_AddTGENMdeStartEndX(void *pInstance, MS_U16 u16Start, MS_U16 u16End, SCALER_WIN eWindow);
657*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL Hal_XC_Get_Stgen_Lock_Ip_status(void *pInstance);
658*53ee8cc1Swenshuai.xi #undef INTERFACE
659*53ee8cc1Swenshuai.xi #endif /* MHAL_FRC_H */
660*53ee8cc1Swenshuai.xi 
661