xref: /utopia/UTPA2-700.0.x/modules/graphic/hal/manhattan/ge/regGE.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) 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 ///////////////////////////////////////////////////////////////////////////////////////////////////
96*53ee8cc1Swenshuai.xi ///
97*53ee8cc1Swenshuai.xi /// file    regGE.h
98*53ee8cc1Swenshuai.xi /// @brief  GE Module Register Definition
99*53ee8cc1Swenshuai.xi /// @author MStar Semiconductor Inc.
100*53ee8cc1Swenshuai.xi ///////////////////////////////////////////////////////////////////////////////////////////////////
101*53ee8cc1Swenshuai.xi 
102*53ee8cc1Swenshuai.xi #ifndef _REG_GE_H_
103*53ee8cc1Swenshuai.xi #define _REG_GE_H_
104*53ee8cc1Swenshuai.xi 
105*53ee8cc1Swenshuai.xi //#include "regCHIP.h"
106*53ee8cc1Swenshuai.xi 
107*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
108*53ee8cc1Swenshuai.xi //  Hardware Capability
109*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
110*53ee8cc1Swenshuai.xi 
111*53ee8cc1Swenshuai.xi #define EUCLID_BRINGUP 1        //[EUCLID] BRINGUP will remove after bringup
112*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
113*53ee8cc1Swenshuai.xi //  Macro and Define
114*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
115*53ee8cc1Swenshuai.xi #if defined (__aeon__)
116*53ee8cc1Swenshuai.xi #define RIU_MAP pGEHalLocal->va_mmio_base
117*53ee8cc1Swenshuai.xi #else
118*53ee8cc1Swenshuai.xi #define RIU_MAP pGEHalLocal->va_mmio_base
119*53ee8cc1Swenshuai.xi #endif
120*53ee8cc1Swenshuai.xi /* Chip Reversion*/
121*53ee8cc1Swenshuai.xi #define CHIP_REG_BASE               0x1E00UL  // 0x1E00 - 0x1EFF
122*53ee8cc1Swenshuai.xi #define CHIP_CLK_BASE               0x0B00UL  // 0x1E00 - 0x1EFF
123*53ee8cc1Swenshuai.xi #define GHIP_REVERSION              (0x02UL)
124*53ee8cc1Swenshuai.xi #define CHIP_GE_CLK                 (0x48UL)
125*53ee8cc1Swenshuai.xi #define MIU1_REG_BASE               0x0600UL
126*53ee8cc1Swenshuai.xi #define MIU_SELETE_OFFSET			31UL
127*53ee8cc1Swenshuai.xi 
128*53ee8cc1Swenshuai.xi #define RIU     ((unsigned short volatile *) RIU_MAP)
129*53ee8cc1Swenshuai.xi #define RIU8    ((unsigned char  volatile *) RIU_MAP)
130*53ee8cc1Swenshuai.xi 
131*53ee8cc1Swenshuai.xi #define REG8(a) RIU8[((a) * 2) - ((a) & 1)]
132*53ee8cc1Swenshuai.xi 
133*53ee8cc1Swenshuai.xi #define REG_GE_BASE                 (0xBF800000UL+(0x1400UL<<2)) // 0xbf805000
134*53ee8cc1Swenshuai.xi //#define GE_REG(addr)                (*((volatile MS_U16*)(REG_GE_BASE + ((addr)<<2))))
135*53ee8cc1Swenshuai.xi #define MIU1_GEGROUP                 0x7CUL
136*53ee8cc1Swenshuai.xi #define MIU1_GE_CLIENT             BIT(1)
137*53ee8cc1Swenshuai.xi #define MIU1_REG(addr)             RIU[ (((addr)*2) + 0x600UL)]
138*53ee8cc1Swenshuai.xi #define GE_REG(addr)                 RIU[ (((addr)*2) + 0x2800UL)]
139*53ee8cc1Swenshuai.xi #define CLK_REG(addr)                 RIU[ (((addr)*2) + 0x0B00UL)]
140*53ee8cc1Swenshuai.xi 
141*53ee8cc1Swenshuai.xi #define REG_GE_EN                   0x0000UL
142*53ee8cc1Swenshuai.xi     #define GE_EN_GE                            BIT(0)
143*53ee8cc1Swenshuai.xi     #define GE_EN_DITHER                        BIT(1)
144*53ee8cc1Swenshuai.xi     #define GE_EN_BLEND                         BIT(2)
145*53ee8cc1Swenshuai.xi #if (EUCLID_BRINGUP==1)
146*53ee8cc1Swenshuai.xi     #define GE_EN_ASCK                          BIT(3)
147*53ee8cc1Swenshuai.xi     #define GE_EN_DSCK                          BIT(4)
148*53ee8cc1Swenshuai.xi #endif
149*53ee8cc1Swenshuai.xi     #define GE_EN_ROP2                          BIT(5)
150*53ee8cc1Swenshuai.xi     #define GE_EN_SCK                           BIT(6)
151*53ee8cc1Swenshuai.xi     #define GE_EN_DCK                           BIT(7)
152*53ee8cc1Swenshuai.xi     #define GE_EN_LINEPAT                       BIT(8)
153*53ee8cc1Swenshuai.xi     #define GE_EN_DITHER_RAND                   BIT(9)                  //[OBERON]
154*53ee8cc1Swenshuai.xi     #define GE_EN_DFB_BLD                       BIT(10)
155*53ee8cc1Swenshuai.xi     #define GE_EN_ACMP                          BIT(11)
156*53ee8cc1Swenshuai.xi     #define GE_EN_ATEST                         BIT(12)                 //[OBERON]
157*53ee8cc1Swenshuai.xi     #define GE_EN_CALC_SRC_WH                   BIT(13)
158*53ee8cc1Swenshuai.xi #if (EUCLID_BRINGUP==1)
159*53ee8cc1Swenshuai.xi     #define GE_EN_TRAP_SUB_CORR                 BIT(14)                 //[Euclid]
160*53ee8cc1Swenshuai.xi #endif
161*53ee8cc1Swenshuai.xi     #define GE_EN_BURST                         BIT(14)
162*53ee8cc1Swenshuai.xi     #define GE_EN_ONE_PIXEL_MODE                BIT(15)                 //[OBERON]
163*53ee8cc1Swenshuai.xi #define REG_GE_CFG                  0x0001UL
164*53ee8cc1Swenshuai.xi     #define GE_CFG_CMDQ_MASK                    BMASK(3:0)
165*53ee8cc1Swenshuai.xi     #define GE_CFG_CMDQ                         BIT(0)
166*53ee8cc1Swenshuai.xi     #define GE_CFG_VCMDQ                        BIT(1)                  //[OBERON]
167*53ee8cc1Swenshuai.xi     #define GE_CFG_RPRIO                        BIT(2)
168*53ee8cc1Swenshuai.xi 
169*53ee8cc1Swenshuai.xi #if (EUCLID_BRINGUP==1)
170*53ee8cc1Swenshuai.xi     #define GE_CFG_DISABLE_MIU_ACS              BIT(3)                  //[Euclid]
171*53ee8cc1Swenshuai.xi #else
172*53ee8cc1Swenshuai.xi     #define GE_CFG_WPRIO                        BIT(3)
173*53ee8cc1Swenshuai.xi #endif
174*53ee8cc1Swenshuai.xi     #define GE_CFG_BLT_STRETCH                  BIT(4)
175*53ee8cc1Swenshuai.xi     #define GE_CFG_EN_CLIPCHK                   BIT(5)                  //[OBERON] hw patch for both start/end out of clipping window
176*53ee8cc1Swenshuai.xi     #define GE_CFG_BLT_ITALIC                   BIT(6)
177*53ee8cc1Swenshuai.xi     #define GE_CFG_LENGTH_LIMIT                 BIT(7)                  //[OBERON] burst length limit to 1
178*53ee8cc1Swenshuai.xi     #define GE_CFG_SRC_TILE                     BIT(8)                  //[OBERON] source buffer tile mode
179*53ee8cc1Swenshuai.xi     #define GE_CFG_DST_TILE                     BIT(9)                  //[OBERON] destination buffer tile mode
180*53ee8cc1Swenshuai.xi     #define GE_CFG_MIU0_PROT                    BIT(10)                 //[OBERON]
181*53ee8cc1Swenshuai.xi     #define GE_CFG_MIU1_PROT                    BIT(11)                 //[OBERON]
182*53ee8cc1Swenshuai.xi     #define GE_CFG_RW_SPLIT                     BIT(14)                 //[OBERON]
183*53ee8cc1Swenshuai.xi #if (EUCLID_BRINGUP==1)
184*53ee8cc1Swenshuai.xi     #define GE_CFG_CLR_MIU_FLG                  BIT(12)                 //[Euclid]
185*53ee8cc1Swenshuai.xi     #define GE_CFG_EN_DNY_CLK_GATE              BIT(15)                 //[Euclid]
186*53ee8cc1Swenshuai.xi #endif
187*53ee8cc1Swenshuai.xi #define REG_GE_DBG                  0x0002UL
188*53ee8cc1Swenshuai.xi #if (EUCLID_BRINGUP==1)
189*53ee8cc1Swenshuai.xi     #define GE_DBG_MIU_MAX_LEG                  BMASK(8:12)             //[Euclid]
190*53ee8cc1Swenshuai.xi     #define GE_DBG_POL_VAR_MODE                 BIT(14)                 //[Euclid]
191*53ee8cc1Swenshuai.xi     #define GE_DBG_LEG_MODE                     BIT(15)                 //[Euclid]
192*53ee8cc1Swenshuai.xi #endif
193*53ee8cc1Swenshuai.xi 
194*53ee8cc1Swenshuai.xi #define REG_GE_TH                   0x0003UL
195*53ee8cc1Swenshuai.xi     #define GE_TH_STBB_MASK                     BMASK(3:0)
196*53ee8cc1Swenshuai.xi     #define GE_TH_CMDQ_MASK                     BMASK(7:4)              //[OBERON]
197*53ee8cc1Swenshuai.xi     #define GE_TH_CMDQ2_MASK                    BMASK(11:8)             //[OBERON]
198*53ee8cc1Swenshuai.xi #define REG_GE_VCMDQ_STAT           0x0004UL
199*53ee8cc1Swenshuai.xi #define REG_GE_BIST_STAT            0x0005UL
200*53ee8cc1Swenshuai.xi     #define GE_VCMDQ_STAT_H_MASK                BMASK(0:0)              //[OBERON] virtual queue status [16]
201*53ee8cc1Swenshuai.xi     #define GE_STAT_VCMDQ_MAX                    131071UL
202*53ee8cc1Swenshuai.xi #define REG_GE_STAT                 0x0007UL
203*53ee8cc1Swenshuai.xi     #define GE_STAT_BUSY                        BIT(0)
204*53ee8cc1Swenshuai.xi     #define GE_STAT_CMDQ2_MASK                  BMASK(7:3)
205*53ee8cc1Swenshuai.xi     #define GE_STAT_CMDQ2_SHFT                  3UL
206*53ee8cc1Swenshuai.xi     #define GE_STAT_CMDQ2_MAX                   16UL
207*53ee8cc1Swenshuai.xi     #define GE_STAT_CMDQ_MASK                   BMASK(15:11)
208*53ee8cc1Swenshuai.xi     #define GE_STAT_CMDQ_SHFT                   11UL
209*53ee8cc1Swenshuai.xi     #define GE_STAT_CMDQ_MAX                    8UL
210*53ee8cc1Swenshuai.xi #define REG_GE_MIU_PROT_LTH_L(_miu) (0x0008UL+(_miu<<2))
211*53ee8cc1Swenshuai.xi #define REG_GE_MIU_PROT_LTH_H(_miu) (0x0009UL+(_miu<<2))
212*53ee8cc1Swenshuai.xi     #define GE_MIU_PROT_LTH_H_MASK              BMASK(10:0)
213*53ee8cc1Swenshuai.xi     #define GE_MIU_PROT_MODE_MASK               BIT(15)
214*53ee8cc1Swenshuai.xi     #define GE_MIU_PROT_MODE_SHFT               15UL
215*53ee8cc1Swenshuai.xi     #define GE_MIU_PROT_MODE_EQ                 BITS(15:15, 0)
216*53ee8cc1Swenshuai.xi     #define GE_MIU_PROT_MODE_NE                 BITS(15:15, 1)
217*53ee8cc1Swenshuai.xi #define REG_GE_MIU_PROT_HTH_L(_miu) (0x000A+(_miu<<2))
218*53ee8cc1Swenshuai.xi #define REG_GE_MIU_PROT_HTH_H(_miu) (0x000B+(_miu<<2))
219*53ee8cc1Swenshuai.xi #define REG_GE_ROP2                 0x0010UL
220*53ee8cc1Swenshuai.xi     #define GE_ROP2_MASK                        BMASK(3:0)
221*53ee8cc1Swenshuai.xi #define REG_GE_BLEND                0x0011UL // source coefficient of alpha blending
222*53ee8cc1Swenshuai.xi     #define GE_BLEND_MASK                       BMASK(3:0)
223*53ee8cc1Swenshuai.xi     #define GE_BLEND_ONE                        BITS(3:0, 0)
224*53ee8cc1Swenshuai.xi     #define GE_BLEND_CONST                      BITS(3:0, 1)
225*53ee8cc1Swenshuai.xi     #define GE_BLEND_ASRC                       BITS(3:0, 2)
226*53ee8cc1Swenshuai.xi     #define GE_BLEND_ADST                       BITS(3:0, 3)
227*53ee8cc1Swenshuai.xi     #define GE_BLEND_ROP8_ALPHA                 BITS(3:0, 4)            //[OBERON]
228*53ee8cc1Swenshuai.xi     #define GE_BLEND_ROP8_SRCOVER               BITS(3:0, 5)            //[OBERON]
229*53ee8cc1Swenshuai.xi     #define GE_BLEND_ROP8_DSTOVER               BITS(3:0, 6)            //[OBERON]
230*53ee8cc1Swenshuai.xi #if (EUCLID_BRINGUP==1)
231*53ee8cc1Swenshuai.xi     #define GE_BLEND_ROP8_DSTNEW                BITS(3:0, 7)            //[Euclid] Csrc*Aconst
232*53ee8cc1Swenshuai.xi #endif
233*53ee8cc1Swenshuai.xi     #define GE_BLEND_ZERO                       BITS(3:0, 8)
234*53ee8cc1Swenshuai.xi     #define GE_BLEND_CONST_INV                  BITS(3:0, 9)
235*53ee8cc1Swenshuai.xi     #define GE_BLEND_ASRC_INV                   BITS(3:0, 10)
236*53ee8cc1Swenshuai.xi     #define GE_BLEND_ADST_INV1                  BITS(3:0, 11)
237*53ee8cc1Swenshuai.xi     #define GE_BLEND_ADST_INV2                  BITS(3:0, 12)
238*53ee8cc1Swenshuai.xi     #define GE_BLEND_ADST_INV3                  BITS(3:0, 13)
239*53ee8cc1Swenshuai.xi #if (EUCLID_BRINGUP==1)
240*53ee8cc1Swenshuai.xi     #define GE_BLEND_ADST_INV4                  BITS(3:0, 14)           //[Euclid] Csrc*Aconst
241*53ee8cc1Swenshuai.xi     #define GE_BLEND_ADST_INV5                  BITS(3:0, 15)           //[Euclid] Csrc*Aconst
242*53ee8cc1Swenshuai.xi #endif
243*53ee8cc1Swenshuai.xi 
244*53ee8cc1Swenshuai.xi     #define GE_ALPHA_ARGB1555                   BMASK(15:8)             //[OBERON]
245*53ee8cc1Swenshuai.xi #define REG_GE_ALPHA                0x0012UL
246*53ee8cc1Swenshuai.xi     #define GE_ALPHA_MASK                       BMASK(12:8)
247*53ee8cc1Swenshuai.xi     #define GE_ALPHA_SHFT                       8UL
248*53ee8cc1Swenshuai.xi #define REG_GE_ALPHA_CONST          0x0013UL
249*53ee8cc1Swenshuai.xi     #define GE_ALPHA_CONST_MASK                 BMASK(7:0)
250*53ee8cc1Swenshuai.xi     #define GE_ALPHA_SRCMASK_MASK               BMASK(15:8)
251*53ee8cc1Swenshuai.xi 
252*53ee8cc1Swenshuai.xi #define REG_GE_SCK_HTH_L            0x0014UL      //ARGB8888(32), CrYCb, BLINK(16), I8(8)
253*53ee8cc1Swenshuai.xi #define REG_GE_SCK_HTH_H            0x0015UL      //
254*53ee8cc1Swenshuai.xi #define REG_GE_SCK_LTH_L            0x0016UL      //ARGB8888(32), CrYCb, BLINK(16), I8(8)
255*53ee8cc1Swenshuai.xi #define REG_GE_SCK_LTH_H            0x0017UL      //
256*53ee8cc1Swenshuai.xi #define REG_GE_DCK_HTH_L            0x0018UL      //ARGB8888(32), CrYCb, BLINK(16), I8(8)
257*53ee8cc1Swenshuai.xi #define REG_GE_DCK_HTH_H            0x0019UL      //
258*53ee8cc1Swenshuai.xi #define REG_GE_DCK_LTH_L            0x001AUL      //ARGB8888(32), CrYCb, BLINK(16), I8(8)
259*53ee8cc1Swenshuai.xi #define REG_GE_DCK_LTH_H            0x001BUL      //
260*53ee8cc1Swenshuai.xi #define REG_GE_OP_MODE              0x001CUL
261*53ee8cc1Swenshuai.xi     #define GE_OP_SCK_SHFT                      0UL
262*53ee8cc1Swenshuai.xi     #define GE_OP_SCK_NE                        BIT(0) //
263*53ee8cc1Swenshuai.xi     #define GE_OP_DCK_SHFT                      1UL
264*53ee8cc1Swenshuai.xi     #define GE_OP_DCK_NE                        BIT(1) //
265*53ee8cc1Swenshuai.xi     #define GE_OP_ACMP_SHFT                     4UL
266*53ee8cc1Swenshuai.xi     #define GE_OP_ACMP_MIN                      BIT(4) // MIN(Asrc,Adst)
267*53ee8cc1Swenshuai.xi     #define GE_OP_ATEST_SHFT                    5UL
268*53ee8cc1Swenshuai.xi     #define GE_OP_ATEST_NE                      BIT(5)
269*53ee8cc1Swenshuai.xi     #define GE_SRCCOLOR_MASK_B                  BMASK(15:8)
270*53ee8cc1Swenshuai.xi     #define GE_SRCCOLOR_MASK_B_SHIFT            8UL
271*53ee8cc1Swenshuai.xi #define REG_GE_ATEST_TH             0x001DUL
272*53ee8cc1Swenshuai.xi     #define GE_ATEST_HTH_MASK                   BMASK(7:0)
273*53ee8cc1Swenshuai.xi     #define GE_ATEST_LTH_MASK                   BMASK(15:8)
274*53ee8cc1Swenshuai.xi #define REG_GE_SRCMASK_GB           0x001EUL
275*53ee8cc1Swenshuai.xi     #define GE_SRCCOLOR_MASK_G                  BMASK(7:0)
276*53ee8cc1Swenshuai.xi     #define GE_SRCCOLOR_MASK_G_SHIFT            0UL
277*53ee8cc1Swenshuai.xi     #define GE_SRCCOLOR_MASK_R                  BMASK(15:8)
278*53ee8cc1Swenshuai.xi     #define GE_SRCCOLOR_MASK_R_SHIFT            8UL
279*53ee8cc1Swenshuai.xi #define REG_GE_YUV_MODE             0x001FUL      //[URANUS] write only
280*53ee8cc1Swenshuai.xi     #define GE_FMT_YVYU                         0UL
281*53ee8cc1Swenshuai.xi     #define GE_FMT_YUYV                         1UL
282*53ee8cc1Swenshuai.xi     #define GE_FMT_VYUY                         2UL
283*53ee8cc1Swenshuai.xi     #define GE_FMT_UYVY                         3UL
284*53ee8cc1Swenshuai.xi     #define GE_YUV_RGB2YUV_MASK                 BMASK(1:0)
285*53ee8cc1Swenshuai.xi     #define GE_YUV_RGB2YUV_SHFT                 0UL
286*53ee8cc1Swenshuai.xi     #define GE_YUV_RGB2YUV_PC                   BITS(1:0, 0)
287*53ee8cc1Swenshuai.xi     #define GE_YUV_RGB2YUV_255                  BITS(1:0, 1)
288*53ee8cc1Swenshuai.xi     #define GE_YUV_OUT_RANGE_MASK               BMASK(2)
289*53ee8cc1Swenshuai.xi     #define GE_YUV_OUT_RANGE_SHFT               2UL
290*53ee8cc1Swenshuai.xi     #define GE_YUV_OUT_255                      BITS(2:2, 0)
291*53ee8cc1Swenshuai.xi     #define GE_YUV_OUT_PC                       BITS(2:2, 1)
292*53ee8cc1Swenshuai.xi     #define GE_YUV_IN_RANGE_MASK                BMASK(3)
293*53ee8cc1Swenshuai.xi     #define GE_YUV_IN_RANGE_SHFT                3UL
294*53ee8cc1Swenshuai.xi     #define GE_YUV_IN_255                       BITS(3:3, 0)
295*53ee8cc1Swenshuai.xi     #define GE_YUV_IN_127                       BITS(3:3, 1)
296*53ee8cc1Swenshuai.xi     #define GE_YUV_SRC_YUV422_MASK              BMASK(5:4)
297*53ee8cc1Swenshuai.xi     #define GE_YUV_SRC_YUV422_SHFT              4UL
298*53ee8cc1Swenshuai.xi     #define GE_YUV_SRC_YVYU                     BITS(5:4, GE_FMT_YVYU) // CbY1CrY0
299*53ee8cc1Swenshuai.xi     #define GE_YUV_SRC_YUYV                     BITS(5:4, GE_FMT_YUYV) // CrY1CbY0 (ATI)
300*53ee8cc1Swenshuai.xi     #define GE_YUV_SRC_VYUY                     BITS(5:4, GE_FMT_VYUY) // Y1CbY0Cr
301*53ee8cc1Swenshuai.xi     #define GE_YUV_SRC_UYVY                     BITS(5:4, GE_FMT_UYVY) // Y1CrY0Cb
302*53ee8cc1Swenshuai.xi     #define GE_YUV_DST_YUV422_MASK              BMASK(7:6)
303*53ee8cc1Swenshuai.xi     #define GE_YUV_DST_YUV422_SHFT              6UL
304*53ee8cc1Swenshuai.xi     #define GE_YUV_DST_YVYU                     BITS(7:6, GE_FMT_YVYU)
305*53ee8cc1Swenshuai.xi     #define GE_YUV_DST_YUYV                     BITS(7:6, GE_FMT_YUYV)
306*53ee8cc1Swenshuai.xi     #define GE_YUV_DST_VYUY                     BITS(7:6, GE_FMT_VYUY)
307*53ee8cc1Swenshuai.xi     #define GE_YUV_DST_UYVY                     BITS(7:6, GE_FMT_UYVY)
308*53ee8cc1Swenshuai.xi     #define GE_YUV_CSC_MASK                     BMASK(7:0)
309*53ee8cc1Swenshuai.xi     #define GE_SRC_BUFFER_MIU_H_SHFT              13UL
310*53ee8cc1Swenshuai.xi     #define GE_DST_BUFFER_MIU_H_SHFT              14UL
311*53ee8cc1Swenshuai.xi #define REG_GE_SRC_BASE_L           0x0020UL
312*53ee8cc1Swenshuai.xi #define REG_GE_SRC_BASE_H           0x0021UL
313*53ee8cc1Swenshuai.xi #if (EUCLID_BRINGUP==1)
314*53ee8cc1Swenshuai.xi     #define GE_SB_MIU_SEL                       BIT(15) //[Euclid] Source Buffer MIU Selection
315*53ee8cc1Swenshuai.xi #endif
316*53ee8cc1Swenshuai.xi #define REG_GE_DST_BASE_L           0x0026UL
317*53ee8cc1Swenshuai.xi #define REG_GE_DST_BASE_H           0x0027UL
318*53ee8cc1Swenshuai.xi #if (EUCLID_BRINGUP==1)
319*53ee8cc1Swenshuai.xi     #define GE_DB_MIU_SEL                       BIT(15) //[Euclid] Destination Buffer MIU Selection
320*53ee8cc1Swenshuai.xi #endif
321*53ee8cc1Swenshuai.xi 
322*53ee8cc1Swenshuai.xi #define REG_GE_VCMDQ_BASE_L         0x0028UL
323*53ee8cc1Swenshuai.xi #define REG_GE_VCMDQ_BASE_H         0x0029UL
324*53ee8cc1Swenshuai.xi #if (EUCLID_BRINGUP==1)
325*53ee8cc1Swenshuai.xi     #define GE_VCMQ_MIU_SEL                     BIT(15) //[Euclid] Virtual Command Queue MIU Selection
326*53ee8cc1Swenshuai.xi #endif
327*53ee8cc1Swenshuai.xi 
328*53ee8cc1Swenshuai.xi #define REG_GE_VCMDQ_SIZE           0x002AUL
329*53ee8cc1Swenshuai.xi     #define GE_VCMDQ_SIZE_MASK                  BMASK(2:0)
330*53ee8cc1Swenshuai.xi     #define GE_VCMDQ_SIZE_MIN                   0x00001000UL // 4KB
331*53ee8cc1Swenshuai.xi     #define GE_VCMDQ_SIZE_MAX                   0x00080000UL // 512KB
332*53ee8cc1Swenshuai.xi     #define GE_VCMDQ_SIZE(_size)                ( (_size>>19) ? 7 :     \
333*53ee8cc1Swenshuai.xi                                                 (_size>>18) ? 6 :     \
334*53ee8cc1Swenshuai.xi                                                 (_size>>17) ? 5 :     \
335*53ee8cc1Swenshuai.xi                                                 (_size>>16) ? 4 :     \
336*53ee8cc1Swenshuai.xi                                                 (_size>>15) ? 3 :     \
337*53ee8cc1Swenshuai.xi                                                 (_size>>14) ? 2 :     \
338*53ee8cc1Swenshuai.xi                                                 (_size>>13) ? 1 : 0 )
339*53ee8cc1Swenshuai.xi #define REG_GE_DFB_BLD_OP            0x002AUL
340*53ee8cc1Swenshuai.xi     #define GE_DFB_SRC_COLORMASK                BIT(7)
341*53ee8cc1Swenshuai.xi     #define GE_DFB_SRC_COLORMASK_SHIFT          7UL
342*53ee8cc1Swenshuai.xi     #define GE_DFB_SRCBLD_OP_MASK               BMASK(11:8)
343*53ee8cc1Swenshuai.xi     #define GE_DFB_SRCBLD_OP_SHFT               8UL
344*53ee8cc1Swenshuai.xi     #define GE_DFB_SRCBLD_OP_ZERO               BITS(11:8, 0)
345*53ee8cc1Swenshuai.xi     #define GE_DFB_SRCBLD_OP_ONE                BITS(11:8, 1)
346*53ee8cc1Swenshuai.xi     #define GE_DFB_SRCBLD_OP_SRCCOLOR           BITS(11:8, 2)
347*53ee8cc1Swenshuai.xi     #define GE_DFB_SRCBLD_OP_INVSRCCOLOR        BITS(11:8, 3)
348*53ee8cc1Swenshuai.xi     #define GE_DFB_SRCBLD_OP_SRCALPHA           BITS(11:8, 4)
349*53ee8cc1Swenshuai.xi     #define GE_DFB_SRCBLD_OP_INVSRCALPHA        BITS(11:8, 5)
350*53ee8cc1Swenshuai.xi     #define GE_DFB_SRCBLD_OP_DESTALPHA          BITS(11:8, 6)
351*53ee8cc1Swenshuai.xi     #define GE_DFB_SRCBLD_OP_INVDESTALPHA       BITS(11:8, 7)
352*53ee8cc1Swenshuai.xi     #define GE_DFB_SRCBLD_OP_DESTCOLOR          BITS(11:8, 8)
353*53ee8cc1Swenshuai.xi     #define GE_DFB_SRCBLD_OP_INVDESTCOLOR       BITS(11:8, 9)
354*53ee8cc1Swenshuai.xi     #define GE_DFB_SRCBLD_OP_SRCALPHASAT        BITS(11:8, 10)
355*53ee8cc1Swenshuai.xi     #define GE_DFB_DSTBLD_OP_MASK               BMASK(15:12)
356*53ee8cc1Swenshuai.xi     #define GE_DFB_DSTBLD_OP_SHFT               12UL
357*53ee8cc1Swenshuai.xi     #define GE_DFB_DSTBLD_OP_ZERO               BITS(15:12, 0)
358*53ee8cc1Swenshuai.xi     #define GE_DFB_DSTBLD_OP_ONE                BITS(15:12, 1)
359*53ee8cc1Swenshuai.xi     #define GE_DFB_DSTBLD_OP_SRCCOLOR           BITS(15:12, 2)
360*53ee8cc1Swenshuai.xi     #define GE_DFB_DSTBLD_OP_INVSRCCOLOR        BITS(15:12, 3)
361*53ee8cc1Swenshuai.xi     #define GE_DFB_DSTBLD_OP_SRCALPHA           BITS(15:12, 4)
362*53ee8cc1Swenshuai.xi     #define GE_DFB_DSTBLD_OP_INVSRCALPHA        BITS(15:12, 5)
363*53ee8cc1Swenshuai.xi     #define GE_DFB_DSTBLD_OP_DESTALPHA          BITS(15:12, 6)
364*53ee8cc1Swenshuai.xi     #define GE_DFB_DSTBLD_OP_INVDESTALPHA       BITS(15:12, 7)
365*53ee8cc1Swenshuai.xi     #define GE_DFB_DSTBLD_OP_DESTCOLOR          BITS(15:12, 8)
366*53ee8cc1Swenshuai.xi     #define GE_DFB_DSTBLD_OP_INVDESTCOLOR       BITS(15:12, 9)
367*53ee8cc1Swenshuai.xi     #define GE_DFB_DSTBLD_OP_SRCALPHASAT        BITS(15:12, 10)
368*53ee8cc1Swenshuai.xi #define REG_GE_DFB_BLD_FLAGS        0x002BUL
369*53ee8cc1Swenshuai.xi     #define GE_DFB_BLD_FLAGS_MASK               BMASK(7:0)
370*53ee8cc1Swenshuai.xi     #define GE_DFB_BLD_FLAG_COLORALPHA          BIT(0)
371*53ee8cc1Swenshuai.xi     #define GE_DFB_BLD_FLAG_ALPHACHANNEL        BIT(1)
372*53ee8cc1Swenshuai.xi     #define GE_DFB_BLD_FLAG_COLORIZE            BIT(2)
373*53ee8cc1Swenshuai.xi     #define GE_DFB_BLD_FLAG_SRCPREMUL           BIT(3)
374*53ee8cc1Swenshuai.xi     #define GE_DFB_BLD_FLAG_SRCPREMULCOL        BIT(4)
375*53ee8cc1Swenshuai.xi     #define GE_DFB_BLD_FLAG_DSTPREMUL           BIT(5)
376*53ee8cc1Swenshuai.xi     #define GE_DFB_BLD_FLAG_XOR                 BIT(6)
377*53ee8cc1Swenshuai.xi     #define GE_DFB_BLD_FLAG_DEMULTIPLY          BIT(7)
378*53ee8cc1Swenshuai.xi #define REG_GE_B_CONST              0x002BUL
379*53ee8cc1Swenshuai.xi     #define GE_B_CONST_MASK                     BMASK(15:8)
380*53ee8cc1Swenshuai.xi     #define GE_B_CONST_SHIFT                    8UL
381*53ee8cc1Swenshuai.xi #define REG_GE_G_CONST              0x002CUL
382*53ee8cc1Swenshuai.xi     #define GE_G_CONST_MASK                     BMASK(7:0)
383*53ee8cc1Swenshuai.xi     #define GE_G_CONST_SHIFT                    0UL
384*53ee8cc1Swenshuai.xi #define REG_GE_R_CONST              0x002CUL
385*53ee8cc1Swenshuai.xi     #define GE_R_CONST_MASK                     BMASK(15:8)
386*53ee8cc1Swenshuai.xi     #define GE_R_CONST_SHIFT                    8UL
387*53ee8cc1Swenshuai.xi #define REG_GE_CLUT_L               0x002DUL
388*53ee8cc1Swenshuai.xi #define REG_GE_CLUT_H               0x002EUL
389*53ee8cc1Swenshuai.xi #define REG_GE_CLUT_CTRL            0x002FUL
390*53ee8cc1Swenshuai.xi     #define GE_CLUT_CTRL_IDX_MASK               BMASK(7:0)
391*53ee8cc1Swenshuai.xi     #define GE_CLUT_CTRL_RD                     BITS(8:8, 0)
392*53ee8cc1Swenshuai.xi     #define GE_CLUT_CTRL_WR                     BITS(8:8, 1)
393*53ee8cc1Swenshuai.xi #define REG_GE_SRC_PITCH            0x0030UL
394*53ee8cc1Swenshuai.xi #define REG_GE_TAG                  0x0032UL
395*53ee8cc1Swenshuai.xi #define REG_GE_DST_PITCH            0x0033UL
396*53ee8cc1Swenshuai.xi #define REG_GE_FMT                  0x0034UL
397*53ee8cc1Swenshuai.xi     #define GE_SRC_FMT_MASK                     BMASK(4:0)
398*53ee8cc1Swenshuai.xi     #define GE_SRC_FMT_SHFT                     0UL
399*53ee8cc1Swenshuai.xi     #define GE_DST_FMT_MASK                     BMASK(12:8)
400*53ee8cc1Swenshuai.xi     #define GE_DST_FMT_SHFT                     8UL
401*53ee8cc1Swenshuai.xi #define REG_GE_C_L(_idx)           (0x0035UL+(_idx<<1)) // [31:0]ARGB8888, [15:0]blink, [7:0]I8
402*53ee8cc1Swenshuai.xi #define REG_GE_C_H(_idx)           (0x0036UL+(_idx<<1))
403*53ee8cc1Swenshuai.xi #define REG_GE_CLIP_L               0x0055UL
404*53ee8cc1Swenshuai.xi #define REG_GE_CLIP_R               0x0056UL
405*53ee8cc1Swenshuai.xi #define REG_GE_CLIP_T               0x0057UL
406*53ee8cc1Swenshuai.xi #define REG_GE_CLIP_B               0x0058UL
407*53ee8cc1Swenshuai.xi #define REG_GE_ROT_MODE             0x0059UL
408*53ee8cc1Swenshuai.xi     #define REG_GE_ROT_MODE_MASK                BMASK(1:0)
409*53ee8cc1Swenshuai.xi     #define REG_GE_ROT_MODE_SHFT                0UL
410*53ee8cc1Swenshuai.xi     #define REG_GE_ROT_0                        BITS(1:0, 0)
411*53ee8cc1Swenshuai.xi     #define REG_GE_ROT_90                       BITS(1:0, 1)
412*53ee8cc1Swenshuai.xi     #define REG_GE_ROT_180                      BITS(1:0, 2)
413*53ee8cc1Swenshuai.xi     #define REG_GE_ROT_270                      BITS(1:0, 3)
414*53ee8cc1Swenshuai.xi #if (EUCLID_BRINGUP==1)
415*53ee8cc1Swenshuai.xi     #define GE_TRAP_DX1                         BMASK(15:0)
416*53ee8cc1Swenshuai.xi #define REG_GE_BLT_SCK_MODE         0x0059UL
417*53ee8cc1Swenshuai.xi     #define GE_BLT_SCK_MODE_MASK                BMASK(7:6)
418*53ee8cc1Swenshuai.xi     #define GE_BLT_SCK_BILINEAR                 BITS(7:6, 0) //[Euclid] Do nothing
419*53ee8cc1Swenshuai.xi     #define GE_BLT_SCK_NEAREST                  BITS(7:6, 1) //[Euclid] NEAREST WHEN THE COLOR KEY HAPPENED
420*53ee8cc1Swenshuai.xi     #define GE_BLT_SCK_CONST                    BITS(7:6, 2) //[Euclid] REPLACE THE KEY TO CUSTOM COLOR
421*53ee8cc1Swenshuai.xi     #define GE_TRAP_DX0_MSB                     BMASK(9:8)
422*53ee8cc1Swenshuai.xi     #define GE_TRAP_DX0_MSB_SHFT                   8UL
423*53ee8cc1Swenshuai.xi     #define GE_TRAP_DX1_MSB                     BMASK(13:12)
424*53ee8cc1Swenshuai.xi     #define GE_TRAP_DX1_MSB_SHFT                   12UL
425*53ee8cc1Swenshuai.xi 
426*53ee8cc1Swenshuai.xi #define REG_GE_TRAPEZOID_DX0        0x005AUL
427*53ee8cc1Swenshuai.xi     #define GE_TRAP_DX0                         BMASK(15:0)
428*53ee8cc1Swenshuai.xi #define REG_GE_TRAPEZOID_DX1        0x005BUL
429*53ee8cc1Swenshuai.xi     #define GE_TRAP_DX1                         BMASK(15:0)
430*53ee8cc1Swenshuai.xi #else
431*53ee8cc1Swenshuai.xi #define REG_GE_BLT_SCK_MODE         0x005BUL
432*53ee8cc1Swenshuai.xi     #define GE_BLT_SCK_MODE_MASK                BMASK(1:0)
433*53ee8cc1Swenshuai.xi     #define GE_BLT_SCK_BILINEAR                 BITS(1:0, 0)
434*53ee8cc1Swenshuai.xi     #define GE_BLT_SCK_NEAREST                  BITS(1:0, 1)
435*53ee8cc1Swenshuai.xi     #define GE_BLT_SCK_CONST                    BITS(1:0, 2) // replace to const color
436*53ee8cc1Swenshuai.xi #endif
437*53ee8cc1Swenshuai.xi #define REG_GE_BLT_SCK_CONST_L      0x005CUL // GB
438*53ee8cc1Swenshuai.xi #define REG_GE_BLT_SCK_CONST_H      0x005DUL // R, Uranus doesn't have alpha key
439*53ee8cc1Swenshuai.xi #define REG_GE_BLT_DST_X_OFST       0x005EUL // (s.12)
440*53ee8cc1Swenshuai.xi #if (EUCLID_BRINGUP==1)
441*53ee8cc1Swenshuai.xi     #define GE_STBB_DX_MSB                    BIT(15)
442*53ee8cc1Swenshuai.xi     #define GE_STBB_DX_MSB_SHFT                 15UL
443*53ee8cc1Swenshuai.xi #endif
444*53ee8cc1Swenshuai.xi #define REG_GE_BLT_DST_Y_OFST       0x005FUL // (s.12)
445*53ee8cc1Swenshuai.xi #if (EUCLID_BRINGUP==1)
446*53ee8cc1Swenshuai.xi     #define GE_STBB_DY_MSB                    BIT(15)
447*53ee8cc1Swenshuai.xi     #define GE_STBB_DY_MSB_SHFT                 15UL
448*53ee8cc1Swenshuai.xi #endif
449*53ee8cc1Swenshuai.xi #define REG_GE_CMD                  0x0060UL
450*53ee8cc1Swenshuai.xi     #define GE_PRIM_TYPE_MASK                   BMASK(6:4)
451*53ee8cc1Swenshuai.xi     #define GE_PRIM_LINE                        BITS(6:4, 1)
452*53ee8cc1Swenshuai.xi #if (EUCLID_BRINGUP==1)
453*53ee8cc1Swenshuai.xi     #define GE_PRIM_TRAPEZOID                   BITS(6:4, 2)
454*53ee8cc1Swenshuai.xi #endif
455*53ee8cc1Swenshuai.xi     #define GE_PRIM_RECT                        BITS(6:4, 3)
456*53ee8cc1Swenshuai.xi     #define GE_PRIM_BITBLT                      BITS(6:4, 4)
457*53ee8cc1Swenshuai.xi #if (EUCLID_BRINGUP==1)
458*53ee8cc1Swenshuai.xi     #define GE_PRIM_TRAPEZOID_BLT               BITS(6:4, 5)
459*53ee8cc1Swenshuai.xi #endif
460*53ee8cc1Swenshuai.xi     #define GE_SRC_DIR_X_INV                    BIT(7)
461*53ee8cc1Swenshuai.xi     #define GE_SRC_DIR_Y_INV                    BIT(8)
462*53ee8cc1Swenshuai.xi     #define GE_DST_DIR_X_INV                    BIT(9)
463*53ee8cc1Swenshuai.xi     #define GE_DST_DIR_Y_INV                    BIT(10)
464*53ee8cc1Swenshuai.xi     #define GE_LINE_GRADIENT                    BIT(11)
465*53ee8cc1Swenshuai.xi     #define GE_RECT_GRADIENT_H                  BIT(12)
466*53ee8cc1Swenshuai.xi     #define GE_RECT_GRADIENT_V                  BIT(13)
467*53ee8cc1Swenshuai.xi     #define GE_STRETCH_BILINEAR                 BITS(14:14, 0)
468*53ee8cc1Swenshuai.xi     #define GE_STRETCH_NEAREST                  BITS(14:14, 1)
469*53ee8cc1Swenshuai.xi     #define GE_STRETCH_CLAMP                    BIT(15)
470*53ee8cc1Swenshuai.xi #define REG_GE_LINE_DELTA           0x0061UL
471*53ee8cc1Swenshuai.xi     #define GE_LINE_DELTA_MASK                  BMASK(14:1) // (s1.12) minor direction delta value of line
472*53ee8cc1Swenshuai.xi     #define GE_LINE_DELTA_SHFT                  1UL
473*53ee8cc1Swenshuai.xi     #define GE_LINE_MAJOR_X                     BITS(15:15, 0)
474*53ee8cc1Swenshuai.xi     #define GE_LINE_MAJOR_Y                     BITS(15:15, 1)
475*53ee8cc1Swenshuai.xi #define REG_GE_LINE_STYLE           0x0062UL
476*53ee8cc1Swenshuai.xi     #define GE_LINEPAT_MASK                     BMASK(5:0)
477*53ee8cc1Swenshuai.xi     #define GE_LINEPAT_RST                      BIT(8)
478*53ee8cc1Swenshuai.xi     #define GE_LINE_LAST                        BIT(9)
479*53ee8cc1Swenshuai.xi     #define GE_LINEPAT_REP_MASK                 BMASK(7:6)
480*53ee8cc1Swenshuai.xi     #define GE_LINEPAT_REP_SHFT                 6UL
481*53ee8cc1Swenshuai.xi     #define GE_LINEPAT_REP1                     BITS(7:6, 0)
482*53ee8cc1Swenshuai.xi     #define GE_LINEPAT_REP2                     BITS(7:6, 1)
483*53ee8cc1Swenshuai.xi     #define GE_LINEPAT_REP3                     BITS(7:6, 2)
484*53ee8cc1Swenshuai.xi     #define GE_LINEPAT_REP4                     BITS(7:6, 3)
485*53ee8cc1Swenshuai.xi #define REG_GE_LINE_LENGTH          0x0063UL
486*53ee8cc1Swenshuai.xi     #define GE_LINE_LENGTH_MASK                 BMASK(11:0)
487*53ee8cc1Swenshuai.xi #define REG_GE_BLT_SRC_DX           0x0064UL  //[EUCLID] (5.12)
488*53ee8cc1Swenshuai.xi #define REG_GE_BLT_SRC_DY           0x0065UL  //[EUCLID] (5.12)
489*53ee8cc1Swenshuai.xi     #define GE_STBB_DXY_MASK                    BMASK(12:0)
490*53ee8cc1Swenshuai.xi #define REG_GE_ITALIC_OFFSET        0x0066UL
491*53ee8cc1Swenshuai.xi     #define GE_ITALIC_X_MASK                    BMASK(7:0)
492*53ee8cc1Swenshuai.xi     #define GE_ITALIC_X_SHFT                    0UL
493*53ee8cc1Swenshuai.xi     #define GE_ITALIC_Y_MASK                    BMASK(15:8)
494*53ee8cc1Swenshuai.xi     #define GE_ITALIC_Y_SHFT                    8UL
495*53ee8cc1Swenshuai.xi #define REG_GE_ITALIC_DELTA         0x0067UL
496*53ee8cc1Swenshuai.xi     #define GE_ITALIC_D_MASK                    BMASK(7:0) // (s1.3)
497*53ee8cc1Swenshuai.xi     #define GE_ITALIC_D_SHFT                    0UL
498*53ee8cc1Swenshuai.xi #define REG_GE_PRIM_V0_X            0x0068UL      //[EUCLID] COORDINATE X0 OF PRIMITIVE VERTEX 0
499*53ee8cc1Swenshuai.xi #define REG_GE_PRIM_V0_Y            0x0069UL      //[EUCLID] COORDINATE Y0 OF PRIMITIVE VERTEX 0
500*53ee8cc1Swenshuai.xi #define REG_GE_PRIM_V1_X            0x006AUL      //[EUCLID] COORDINATE X1 OF PRIMITIVE VERTEX 1
501*53ee8cc1Swenshuai.xi #define REG_GE_PRIM_V1_Y            0x006BUL      //[EUCLID] COORDINATE Y1 OF PRIMITIVE VERTEX 1
502*53ee8cc1Swenshuai.xi #define REG_GE_PRIM_V2_X            0x006CUL
503*53ee8cc1Swenshuai.xi #define REG_GE_PRIM_V2_Y            0x006DUL
504*53ee8cc1Swenshuai.xi #define REG_GE_BLT_SRC_W            0x006EUL
505*53ee8cc1Swenshuai.xi #define REG_GE_BLT_SRC_H            0x006FUL
506*53ee8cc1Swenshuai.xi #define REG_GE_PRIM_C_L             0x0070UL // [L]:B,Bg(AXFB2355,AAFB2266),I8, [H]:G,Fg(AXFB2355,AAFB2266)
507*53ee8cc1Swenshuai.xi #define REG_GE_PRIM_C_H             0x0071UL // [L]:R,AX(AXFB2355),Ba(AAFB2266), [H]:A,1(AXFB2355),Fa(AAFB2266)
508*53ee8cc1Swenshuai.xi #define REG_GE_PRIM_RDX_L           0x0072UL // (s7.12)
509*53ee8cc1Swenshuai.xi #define REG_GE_PRIM_RDX_H           0x0073UL
510*53ee8cc1Swenshuai.xi #define REG_GE_PRIM_RDY_L           0x0074UL
511*53ee8cc1Swenshuai.xi #define REG_GE_PRIM_RDY_H           0x0075UL
512*53ee8cc1Swenshuai.xi #define REG_GE_PRIM_GDX_L           0x0076UL
513*53ee8cc1Swenshuai.xi #define REG_GE_PRIM_GDX_H           0x0077UL
514*53ee8cc1Swenshuai.xi #define REG_GE_PRIM_GDY_L           0x0078UL
515*53ee8cc1Swenshuai.xi #define REG_GE_PRIM_GDY_H           0x0079UL
516*53ee8cc1Swenshuai.xi #define REG_GE_PRIM_BDX_L           0x007AUL
517*53ee8cc1Swenshuai.xi #define REG_GE_PRIM_BDX_H           0x007BUL
518*53ee8cc1Swenshuai.xi #define REG_GE_PRIM_BDY_L           0x007CUL
519*53ee8cc1Swenshuai.xi #define REG_GE_PRIM_BDY_H           0x007DUL
520*53ee8cc1Swenshuai.xi #define REG_GE_PRIM_ADX             0x007EUL // (s4.11)
521*53ee8cc1Swenshuai.xi #define REG_GE_PRIM_ADY             0x007FUL
522*53ee8cc1Swenshuai.xi 
523*53ee8cc1Swenshuai.xi #define REG_GE_TLB_TYPE_EN          0x0000UL
524*53ee8cc1Swenshuai.xi #define GE_TLB_MODE_MASK                BMASK(2:1)
525*53ee8cc1Swenshuai.xi     #define GE_TLB_SRC                  BIT(1)
526*53ee8cc1Swenshuai.xi     #define GE_TLB_DST                  BIT(2)
527*53ee8cc1Swenshuai.xi     #define GE_TLB_FLUSH                BIT(3)
528*53ee8cc1Swenshuai.xi 
529*53ee8cc1Swenshuai.xi #define REG_GE_TLB_EN               0x0001UL
530*53ee8cc1Swenshuai.xi     #define GE_TLB_EN                   BIT(0)
531*53ee8cc1Swenshuai.xi 
532*53ee8cc1Swenshuai.xi #define REG_GE_TLB_TAG              0x0010UL
533*53ee8cc1Swenshuai.xi     #define GE_TLB_TAG                  BMASK(5:0)
534*53ee8cc1Swenshuai.xi 
535*53ee8cc1Swenshuai.xi #define REG_GE_TLB_BASE_MIU_H       0x001FUL
536*53ee8cc1Swenshuai.xi     #define GE_SB_TLB_SRC_MIU_SEL_H     BIT(13)
537*53ee8cc1Swenshuai.xi     #define GE_SB_TLB_DST_MIU_SEL_H     BIT(14)
538*53ee8cc1Swenshuai.xi 
539*53ee8cc1Swenshuai.xi #define REG_GE_SRC_TLB_BASE_L       0x0020UL
540*53ee8cc1Swenshuai.xi #define REG_GE_SRC_TLB_BASE_H       0x0021UL
541*53ee8cc1Swenshuai.xi     #define GE_SB_TLB_MIU_SEL           BIT(15)
542*53ee8cc1Swenshuai.xi 
543*53ee8cc1Swenshuai.xi #define REG_GE_DST_TLB_BASE_L       0x0022UL
544*53ee8cc1Swenshuai.xi #define REG_GE_DST_TLB_BASE_H       0x0023UL
545*53ee8cc1Swenshuai.xi     #define GE_DB_TLB_MIU_SEL           BIT(15)
546*53ee8cc1Swenshuai.xi 
547*53ee8cc1Swenshuai.xi 
548*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
549*53ee8cc1Swenshuai.xi //  Type and Structure
550*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
551*53ee8cc1Swenshuai.xi 
552*53ee8cc1Swenshuai.xi 
553*53ee8cc1Swenshuai.xi #endif // _REG_GE_H_
554*53ee8cc1Swenshuai.xi 
555