SemiDrive SSDK Appication Program Interface PTG3.0
g2dlite_reg.h
Go to the documentation of this file.
1
9#ifndef G2DLITE_REG_H__
10#define G2DLITE_REG_H__
11
12#define REG(x) (x)
13
14#define G2DLITE_CTRL REG(0x0)
15#define G2DLITE_SW_RST_SHIFT 31
16#define G2DLITE_SW_RST_MASK 1UL << G2DLITE_SW_RST_SHIFT
17#define G2DLITE_EN_SHIFT 0
18#define G2DLITE_EN_MASK 1 << G2DLITE_EN_SHIFT
19
20#define G2DLITE_FLC_CTRL REG(0x4)
21#define G2DLITE_FLC_TRIG_SHIFT 0
22#define G2DLITE_FLC_TRIG_MASK 1 << G2DLITE_FLC_TRIG_SHIFT
23
24#define G2DLITE_SIZE_SIZE REG(0xc)
25#define G2DLITE_SIZE_V_SHIFT 16
26#define G2DLITE_SIZE_V_MASK 0xFFFFUL << G2DLITE_SIZE_V_SHIFT
27#define G2DLITE_SIZE_H_SHIFT 0
28#define G2DLITE_SIZE_H_MASK 0xFFFF << G2DLITE_SIZE_H_SHIFT
29
30#define G2DLITE_CMDFILE_ADDR_L_L REG(0x10)
31#define G2DLITE_CMDFILE_ADDR_L_ADDR_SHIFT 2
32#define G2DLITE_CMDFILE_ADDR_L_ADDR_MASK \
33 0x3FFFFFFF << G2DLITE_CMDFILE_ADDR_L_ADDR_SHIFT
34
35#define G2DLITE_CMDFILE_ADDR_H_H REG(0x14)
36#define G2DLITE_CMDFILE_ADDR_H_ADDR_SHIFT 0
37#define G2DLITE_CMDFILE_ADDR_H_ADDR_MASK \
38 0xFF << G2DLITE_CMDFILE_ADDR_H_ADDR_SHIFT
39
40#define G2DLITE_CMDFILE_LEN_LEN REG(0x18)
41#define G2DLITE_CMDFILE_LEN_FILE_LEN_SHIFT 0
42#define G2DLITE_CMDFILE_LEN_FILE_LEN_MASK \
43 0xFFFF << G2DLITE_CMDFILE_LEN_FILE_LEN_SHIFT
44
45#define G2DLITE_CMDFILE_CFG_CFG REG(0x1c)
46#define G2DLITE_CMDFILE_CFG_CMD_DMA_EN_SHIFT 3
47#define G2DLITE_CMDFILE_CFG_CMD_DMA_EN_MASK \
48 1 << G2DLITE_CMDFILE_CFG_CMD_DMA_EN_SHIFT
49#define G2DLITE_CMDFILE_CFG_ENDIAN_CTRL_SHIFT 0
50#define G2DLITE_CMDFILE_CFG_ENDIAN_CTRL_MASK \
51 0x7 << G2DLITE_CMDFILE_CFG_ENDIAN_CTRL_SHIFT
52
53#define G2DLITE_INT_MASK_MASK REG(0x20)
54#define G2DLITE_INT_STATUS REG(0x24)
55#define G2DLITE_INT_MASK_FRM_DONE_SHIFT 6
56#define G2DLITE_INT_MASK_FRM_DONE_MASK 1 << G2DLITE_INT_MASK_FRM_DONE_SHIFT
57#define G2DLITE_INT_MASK_TASK_DONE_SHIFT 5
58#define G2DLITE_INT_MASK_TASK_DONE_MASK 1 << G2DLITE_INT_MASK_TASK_DONE_SHIFT
59#define G2DLITE_INT_MASK_WDMA_SHIFT 4
60#define G2DLITE_INT_MASK_WDMA_MASK 1 << G2DLITE_INT_MASK_WDMA_SHIFT
61#define G2DLITE_INT_MASK_RLE_1_SHIFT 3
62#define G2DLITE_INT_MASK_RLE_1_MASK 1 << G2DLITE_INT_MASK_RLE_1_SHIFT
63#define G2DLITE_INT_MASK_MLC_SHIFT 2
64#define G2DLITE_INT_MASK_MLC_MASK 1 << G2DLITE_INT_MASK_MLC_SHIFT
65#define G2DLITE_INT_MASK_RLE_0_SHIFT 1
66#define G2DLITE_INT_MASK_RLE_0_MASK 1 << G2DLITE_INT_MASK_RLE_0_SHIFT
67#define G2DLITE_INT_MASK_RDMA_SHIFT 0
68#define G2DLITE_INT_MASK_RDMA_MASK 1 << G2DLITE_INT_MASK_RDMA_SHIFT
69
70#define G2DLITE_SPEED_ADJ_ADJ REG(0x30)
71#define G2DLITE_SPEED_ADJ_EN_SHIFT 31
72#define G2DLITE_SPEED_ADJ_EN_MASK 1 << G2DLITE_SPEED_ADJ_EN_SHIFT
73#define G2DLITE_SPEED_ADJ_INC_SHIFT 0
74#define G2DLITE_SPEED_ADJ_INC_MASK 0x3FF << G2DLITE_SPEED_ADJ_INC_SHIFT
75
76/* RDMA */
77#define CHN_JMP 0x20
78#define CHN_COUNT 5
79#define RDMA_DFIFO_WML_WML_(i) (REG(0x1000) + CHN_JMP * i)
80#define RDMA_DFIFO_WML_SHIFT 0
81#define RDMA_DFIFO_WML_MASK (0xFFFF << RDMA_DFIFO_WML_SHIFT)
82
83#define RDMA_DFIFO_DEPTH_DEPTH_(i) (REG(0x1004) + CHN_JMP * i)
84#define RDMA_DFIFO_DEPTH_SHIFT 0
85#define RDMA_DFIFO_DEPTH_MASK (0xFFFF << RDMA_DFIFO_DEPTH_SHIFT)
86
87#define RDMA_CFIFO_DEPTH_DEPTH_(i) (REG(0x1008) + CHN_JMP * i)
88#define RDMA_CFIFO_DEPTH_SHIFT 0
89#define RDMA_CFIFO_DEPTH_MASK (0xFFFF << RDMA_CFIFO_DEPTH_SHIFT)
90
91#define RDMA_CH_PRIO_PRIO_(i) (REG(0x100c) + CHN_JMP * i)
92#define RDMA_CH_PRIO_SCHE_SHIFT 16
93#define RDMA_CH_PRIO_SCHE_MASK 0x3f << RDMA_CH_PRIO_SCHE_SHIFT
94#define RDMA_CH_PRIO_P1_SHIFT 8
95#define RDMA_CH_PRIO_P1_MASK 0x3f << RDMA_CH_PRIO_P1_SHIFT
96#define RDMA_CH_PRIO_P0_SHIFT 0
97#define RDMA_CH_PRIO_P0_MASK 0x3f << RDMA_CH_PRIO_P0_SHIFT
98
99#define RDMA_BURST_BURST_(i) (REG(0x1010) + CHN_JMP * i)
100#define RDMA_BURST_MODE_SHIFT 3
101#define RDMA_BURST_MODE_MASK 1 << RDMA_BURST_MODE_SHIFT
102#define RDMA_BURST_LEN_SHIFT 0
103#define RDMA_BURST_LEN_MASK 0x7 << RDMA_BURST_LEN_SHIFT
104
105#define RDMA_AXI_USER_USER_(i) (REG(0x1014) + CHN_JMP * i)
106#define RDMA_AXI_USER_SHIFT 0
107#define RDMA_AXI_USER_MASK 0xFFFFF << RDMA_AXI_USER_SHIFT
108
109#define RDMA_AXI_CTRL_CTRL_(i) (REG(0x1018) + CHN_JMP * i)
110#define RDMA_AXI_CTRL_PORT_SHIFT 4
111#define RDMA_AXI_CTRL_PORT_MASK 0x3 << RDMA_AXI_CTRL_PORT_SHIFT
112#define RDMA_AXI_CTRL_CACHE_SHIFT 0
113#define RDMA_AXI_CTRL_CACHE_MASK 0xF << RDMA_AXI_CTRL_CACHE_SHIFT
114
115#define RDMA_CTRL_CTRL REG(0x1400)
116#define RDMA_CTRL_CFG_LOAD_SHIFT 1
117#define RDMA_CTRL_CFG_LOAD_MASK 1 << RDMA_CTRL_CFG_LOAD_SHIFT
118#define RDMA_CTRL_ARB_SEL_SHIFT 0
119#define RDMA_CTRL_ARB_SEL_MASK 1 << RDMA_CTRL_ARB_SEL_SHIFT
120
121#define RDMA_DFIFO_FULL REG(0x1500)
122#define RDMA_DFIFO_EMPTY REG(0x1504)
123#define RDMA_CFIFO_FULL REG(0x1508)
124#define RDMA_CFIFO_EMPTY REG(0x150c)
125#define RDMA_CH_IDLE REG(0x1510)
126#define RDMA_INT_MASK REG(0x1520)
127#define RDMA_INT_STATUS REG(0x1524)
128#define RDMA_CH_4_SHIFT 4
129#define RDMA_CH_4_MASK 1UL << RDMA_CH_4_SHIFT
130#define RDMA_CH_3_SHIFT 3
131#define RDMA_CH_3_MASK 1UL << RDMA_CH_3_SHIFT
132#define RDMA_CH_2_SHIFT 2
133#define RDMA_CH_2_MASK 1UL << RDMA_CH_2_SHIFT
134#define RDMA_CH_1_SHIFT 1
135#define RDMA_CH_1_MASK 1UL << RDMA_CH_1_SHIFT
136#define RDMA_CH_0_SHIFT 0
137#define RDMA_CH_0_MASK 1UL << RDMA_CH_0_SHIFT
138
139#define RDMA_DEBUG_CTRL REG(0x1540)
140#define RDMA_SEL_SHIFT 0
141#define RDMA_SEL_MASK 0x1F << RDMA_SEL_SHIFT
142
143#define RDMA_DEBUG_STA REG(0x1544)
144#define RDMA_CFIFO_DEP_SHIFT 16
145#define RDMA_CFIFO_DEP_MASK 0xFFFF << RDMA_CFIFO_DEP_SHIFT
146#define RDMA_DFIFO_DEP_SHIFT 0
147#define RDMA_DFIFO_DEP_MASK 0xFFFF << RDMA_DFIFO_DEP_SHIFT
148
149/* GP */
150#define G2DLITE_GP_PIX_COMP REG(0x2000)
151#define BPV_SHIFT 24
152#define BPV_MASK 0xF << BPV_SHIFT
153#define BPU_SHIFT 16
154#define BPU_MASK 0xF << BPU_SHIFT
155#define BPY_SHIFT 8
156#define BPY_MASK 0x1F << BPY_SHIFT
157#define BPA_SHIFT 0
158#define BPA_MASK 0xF << BPA_SHIFT
159
160#define G2DLITE_GP_FRM_CTRL REG(0x2004)
161#define PIPE_ENDIAN_CTRL_SHIFT 16
162#define PIPE_ENDIAN_CTRL_MASK 0x7 << PIPE_ENDIAN_CTRL_SHIFT
163#define PIPE_COMP_SWAP_SHIFT 12
164#define PIPE_COMP_SWAP_MASK 0xF << PIPE_COMP_SWAP_SHIFT
165#define PIPE_ROT_SHIFT 9
166#define PIPE_ROT_MASK 0x7 << PIPE_ROT_SHIFT
167#define PIPE_RGB_YUV_SHIFT 8
168#define PIPE_RGB_YUV_MASK 1 << PIPE_RGB_YUV_SHIFT
169#define PIPE_UV_SWAP_SHIFT 7
170#define PIPE_UV_SWAP_MASK 1 << PIPE_UV_SWAP_SHIFT
171#define PIPE_UV_MODE_SHIFT 5
172#define PIPE_UV_MODE_MASK 0x3 << PIPE_UV_MODE_SHIFT
173#define PIPE_MODE_SHIFT 2
174#define PIPE_MODE_MASK 0x7 << PIPE_MODE_SHIFT
175#define PIPE_FMT_SHIFT 0
176#define PIPE_FMT_MASK 0x3 << PIPE_FMT_SHIFT
177
178#define G2DLITE_GP_FRM_SIZE REG(0x2008)
179#define FRM_HEIGHT_SHIFT 16
180#define FRM_HEIGHT_MASK 0xFFFFUL << FRM_HEIGHT_SHIFT
181#define FRM_WIDTH_SHIFT 0
182#define FRM_WIDTH_MASK 0xFFFF << FRM_WIDTH_SHIFT
183
184#define G2DLITE_GP_Y_BADDR_L REG(0x200c)
185#define BADDR_L_Y_SHIFT 0
186#define BADDR_L_Y_MASK 0xFFFFFFFF << BADDR_L_Y_SHIFT
187
188#define G2DLITE_GP_Y_BADDR_H REG(0x2010)
189#define BADDR_H_Y_SHIFT 0
190#define BADDR_H_Y_MASK 0xFF << BADDR_H_Y_SHIFT
191
192#define G2DLITE_GP_U_BADDR_L REG(0x2014)
193#define BADDR_L_U_SHIFT 0
194#define BADDR_L_U_MASK 0xFFFFFFFF << BADDR_L_U_SHIFT
195
196#define G2DLITE_GP_U_BADDR_H REG(0x2018)
197#define BADDR_H_U_SHIFT 0
198#define BADDR_H_U_MASK 0xFF << BADDR_H_U_SHIFT
199
200#define G2DLITE_GP_V_BADDR_L REG(0x201c)
201#define BADDR_L_V_SHIFT 0
202#define BADDR_L_V_MASK 0xFFFFFFFF << BADDR_L_V_SHIFT
203
204#define G2DLITE_GP_V_BADDR_H REG(0x2020)
205#define BADDR_H_V_SHIFT 0
206#define BADDR_H_V_MASK 0xFF << BADDR_H_V_SHIFT
207
208#define G2DLITE_GP_Y_STRIDE REG(0x202c)
209#define STRIDE_Y_SHIFT 0
210#define STRIDE_Y_MASK 0x3FFFFUL << STRIDE_Y_SHIFT
211
212#define G2DLITE_GP_U_STRIDE REG(0x2030)
213#define STRIDE_U_SHIFT 0
214#define STRIDE_U_MASK 0x3FFFFUL << STRIDE_U_SHIFT
215
216#define G2DLITE_GP_V_STRIDE REG(0x2034)
217#define STRIDE_V_SHIFT 0
218#define STRIDE_V_MASK 0x3FFFFUL << STRIDE_V_SHIFT
219
220#define G2DLITE_GP_FRM_OFFSET REG(0x2040)
221#define FRM_Y_SHIFT 16
222#define FRM_Y_MASK 0xFFFFUL << FRM_Y_SHIFT
223#define FRM_X_SHIFT 0
224#define FRM_X_MASK 0xFFFFUL << FRM_X_SHIFT
225
226#define G2DLITE_GP_YUVUP_CTRL REG(0x2044)
227#define G2DLITE_GP_YUVUP_EN_SHIFT 31
228#define G2DLITE_GP_YUVUP_EN_MASK 0x1UL << G2DLITE_GP_YUVUP_EN_SHIFT
229#define G2DLITE_GP_YUVUP_VOFSET_SHIFT 6
230#define G2DLITE_GP_YUVUP_VOFSET_MASK 0x3 << G2DLITE_GP_YUVUP_VOFSET_SHIFT
231#define G2DLITE_GP_YUVUP_HOFSET_SHIFT 4
232#define G2DLITE_GP_YUVUP_HOFSET_MASK 0x3 << G2DLITE_GP_YUVUP_HOFSET_SHIFT
233#define G2DLITE_GP_YUVUP_FILTER_MODE_SHIFT 3
234#define G2DLITE_GP_YUVUP_FILTER_MODE_MASK \
235 0x1 << G2DLITE_GP_YUVUP_FILTER_MODE_SHIFT
236#define G2DLITE_GP_YUVUP_UPV_BYPASS_SHIFT 2
237#define G2DLITE_GP_YUVUP_UPV_BYPASS_MASK \
238 0x1 << G2DLITE_GP_YUVUP_UPV_BYPASS_SHIFT
239#define G2DLITE_GP_YUVUP_UPH_BYPASS_SHIFT 1
240#define G2DLITE_GP_YUVUP_UPH_BYPASS_MASK \
241 0x1 << G2DLITE_GP_YUVUP_UPH_BYPASS_SHIFT
242#define G2DLITE_GP_YUVUP_BYPASS_SHIFT 0
243#define G2DLITE_GP_YUVUP_BYPASS_MASK 0x1 << G2DLITE_GP_YUVUP_BYPASS_SHIFT
244
245#define G2DLITE_GP_CROP_CTRL REG(0x2100)
246#define G2DLITE_GP_CROP_BYPASS_SHIFT 0
247#define G2DLITE_GP_CROP_BYPASS_MASK 0x1 << G2DLITE_GP_CROP_BYPASS_SHIFT
248
249#define G2DLITE_GP_CROP_UL_POS_POS REG(0x2104)
250#define G2DLITE_GP_CROP_UL_POS_Y_SHIFT 16
251#define G2DLITE_GP_CROP_UL_POS_Y_MASK 0xFFFF << G2DLITE_GP_CROP_UL_POS_Y_SHIFT
252#define G2DLITE_GP_CROP_UL_POS_X_SHIFT 0
253#define G2DLITE_GP_CROP_UL_POS_X_MASK 0xFFFF << G2DLITE_GP_CROP_UL_POS_X_SHIFT
254
255#define G2DLITE_GP_CROP_SIZE_SIZE REG(0x2108)
256#define G2DLITE_GP_CROP_SIZE_V_SHIFT 16
257#define G2DLITE_GP_CROP_SIZE_V_MASK 0xFFFFUL << G2DLITE_GP_CROP_SIZE_V_SHIFT
258#define G2DLITE_GP_CROP_SIZE_H_SHIFT 0
259#define G2DLITE_GP_CROP_SIZE_H_MASK 0xFFFF << G2DLITE_GP_CROP_SIZE_H_SHIFT
260
261#define G2DLITE_GP_CROP_PAR_ERR REG(0x2120)
262#define G2DLITE_GP_CROP_PAR_STATUS_SHIFT 0
263#define G2DLITE_GP_CROP_PAR_STATUS_MASK 0x1 << G2DLITE_GP_CROP_PAR_STATUS_SHIFT
264
265/*GP CSC*/
266#define GP_CSC_CTRL REG(0x2200)
267#define GP_CSC_ALPHA_SHIFT 2
268#define GP_CSC_ALPHA_MASK 0x1 << GP_CSC_ALPHA_SHIFT
269#define GP_CSC_SBUP_CONV_SHIFT 1
270#define GP_CSC_SBUP_CONV_MASK 0x1 << GP_CSC_SBUP_CONV_SHIFT
271#define GP_CSC_BYPASS_SHIFT 0
272#define GP_CSC_BYPASS_MASK 0x1 << GP_CSC_BYPASS_SHIFT
273
274#define GP_CSC_COEF_COEF1 REG(0x2204)
275#define GP_CSC_COEF1_A01_SHIFT 16
276#define GP_CSC_COEF1_A01_MASK 0x3FFF << GP_CSC_COEF1_A01_SHIFT
277#define GP_CSC_COEF1_A00_SHIFT 0
278#define GP_CSC_COEF1_A00_MASK 0x3FFF << GP_CSC_COEF1_A00_SHIFT
279
280#define GP_CSC_COEF_COEF2 REG(0x2208)
281#define GP_CSC_COEF2_A10_SHIFT 16
282#define GP_CSC_COEF2_A10_MASK 0x3FFF << GP_CSC_COEF2_A10_SHIFT
283#define GP_CSC_COEF2_A02_SHIFT 0
284#define GP_CSC_COEF2_A02_MASK 0x3FFF << GP_CSC_COEF2_A02_SHIFT
285
286#define GP_CSC_COEF_COEF3 REG(0x220c)
287#define GP_CSC_COEF3_A12_SHIFT 16
288#define GP_CSC_COEF3_A12_MASK 0x3FFF << GP_CSC_COEF3_A12_SHIFT
289#define GP_CSC_COEF3_A11_SHIFT 0
290#define GP_CSC_COEF3_A11_MASK 0x3FFF << GP_CSC_COEF3_A11_SHIFT
291
292#define GP_CSC_COEF_COEF4 REG(0x2210)
293#define GP_CSC_COEF4_A21_SHIFT 16
294#define GP_CSC_COEF4_A21_MASK 0x3FFF << GP_CSC_COEF4_A21_SHIFT
295#define GP_CSC_COEF4_A20_SHIFT 0
296#define GP_CSC_COEF4_A20_MASK 0x3FFF << GP_CSC_COEF4_A20_SHIFT
297
298#define GP_CSC_COEF_COEF5 REG(0x2214)
299#define GP_CSC_COEF5_B0_SHIFT 16
300#define GP_CSC_COEF5_B0_MASK 0x3FFF << GP_CSC_COEF5_B0_SHIFT
301#define GP_CSC_COEF5_A22_SHIFT 0
302#define GP_CSC_COEF5_A22_MASK 0x3FFF << GP_CSC_COEF5_A22_SHIFT
303
304#define GP_CSC_COEF_COEF6 REG(0x2218)
305#define GP_CSC_COEF6_B2_SHIFT 16
306#define GP_CSC_COEF6_B2_MASK 0x3FFF << GP_CSC_COEF6_B2_SHIFT
307#define GP_CSC_COEF6_B1_SHIFT 0
308#define GP_CSC_COEF6_B1_MASK 0x3FFF << GP_CSC_COEF6_B1_SHIFT
309
310#define GP_CSC_COEF_COEF7 REG(0x221c)
311#define GP_CSC_COEF7_C1_SHIFT 16
312#define GP_CSC_COEF7_C1_MASK 0x3FF << GP_CSC_COEF7_C1_SHIFT
313#define GP_CSC_COEF7_C0_SHIFT 0
314#define GP_CSC_COEF7_C0_MASK 0x3FF << GP_CSC_COEF7_C0_SHIFT
315
316#define GP_CSC_COEF_COEF8 REG(0x2220)
317#define GP_CSC_COEF8_C2_SHIFT 0
318#define GP_CSC_COEF8_C2_MASK 0x3FF << GP_CSC_COEF8_C2_SHIFT
319
320#define GP_HS_HS_CTRL REG(0x2300)
321#define GP_HS_CTRL_NOR_PARA_SHIFT 8
322#define GP_HS_CTRL_NOR_PARA_MASK 0xF << GP_HS_CTRL_NOR_PARA_SHIFT
323#define GP_HS_CTRL_APB_RD_SHIFT 4
324#define GP_HS_CTRL_APB_RD_MASK 1 << GP_HS_CTRL_APB_RD_SHIFT
325#define GP_HS_CTRL_FILTER_EN_V_SHIFT 3
326#define GP_HS_CTRL_FILTER_EN_V_MASK 1 << GP_HS_CTRL_FILTER_EN_V_SHIFT
327#define GP_HS_CTRL_FILTER_EN_U_SHIFT 2
328#define GP_HS_CTRL_FILTER_EN_U_MASK 1 << GP_HS_CTRL_FILTER_EN_U_SHIFT
329#define GP_HS_CTRL_FILTER_EN_Y_SHIFT 1
330#define GP_HS_CTRL_FILTER_EN_Y_MASK 1 << GP_HS_CTRL_FILTER_EN_Y_SHIFT
331#define GP_HS_CTRL_FILTER_EN_A_SHIFT 0
332#define GP_HS_CTRL_FILTER_EN_A_MASK 1 << GP_HS_CTRL_FILTER_EN_A_SHIFT
333
334#define GP_HS_HS_INI REG(0x2304)
335#define GP_HS_INI_POLA_SHIFT 19
336#define GP_HS_INI_POLA_MASK 1 << GP_HS_INI_POLA_SHIFT
337#define GP_HS_INI_FRA_SHIFT 0
338#define GP_HS_INI_FRA_MASK 0x7FFFF << GP_HS_INI_FRA_SHIFT
339
340#define GP_HS_HS_RATIO REG(0x2308)
341#define GP_HS_RATIO_INT_SHIFT 19
342#define GP_HS_RATIO_INT_MASK 0x7 << GP_HS_RATIO_INT_SHIFT
343#define GP_HS_RATIO_FRA_SHIFT 0
344#define GP_HS_RATIO_FRA_MASK 0x7FFFF << GP_HS_RATIO_FRA_SHIFT
345
346#define GP_HS_HS_WIDTH REG(0x230c)
347#define GP_HS_WIDTH_OUT_SHIFT 0
348#define GP_HS_WIDTH_OUT_MASK 0xFFFF << GP_HS_WIDTH_OUT_SHIFT
349
350#define GP_VS_VS_CTRL REG(0x2400)
351#define GP_VS_CTRL_NORM_SHIFT 4
352#define GP_VS_CTRL_NORM_MASK 0xF << GP_VS_CTRL_NORM_SHIFT
353#define GP_VS_CTRL_PARITY_SHIFT 3
354#define GP_VS_CTRL_PARITY_MASK 1 << GP_VS_CTRL_PARITY_SHIFT
355#define GP_VS_CTRL_PXL_MODE_SHIFT 2
356#define GP_VS_CTRL_PXL_MODE_MASK 1 << GP_VS_CTRL_PXL_MODE_SHIFT
357#define GP_VS_CTRL_VS_MODE_SHIFT 0
358#define GP_VS_CTRL_VS_MODE_MASK 0x3 << GP_VS_CTRL_VS_MODE_SHIFT
359
360#define GP_VS_VS_RESV REG(0x2404)
361#define GP_VS_RESV_VSIZE_SHIFT 0
362#define GP_VS_RESV_VSIZE_MASK 0xFFFF << GP_VS_RESV_VSIZE_SHIFT
363
364#define GP_VS_VS_INC REG(0x2408)
365#define GP_VS_INC_INC_SHIFT 0
366#define GP_VS_INC_INC_MASK 0x1FFFFF << GP_VS_INC_INC_SHIFT
367
368#define GP_VS_VS_INC_INC_E REG(0x240c)
369#define GP_VS_VS_INC_INC_O REG(0x2410)
370#define GP_VS_INC_INC_E_INIT_POS_SHIFT 18
371#define GP_VS_INC_INC_E_INIT_POS_MASK 0x3 << GP_VS_INC_INC_E_INIT_POS_SHIFT
372#define GP_VS_INC_INC_E_INIT_PHASE_SHIFT 0
373#define GP_VS_INC_INC_E_INIT_PHASE_MASK \
374 0X3FFFF << GP_VS_INC_INC_E_INIT_PHASE_SHIFT
375
376#define GP_RE_RE_STATUS REG(0x2414)
377#define GP_RE_STATUS_V_FRAME_END_SHIFT 2
378#define GP_RE_STATUS_V_FRAME_END_MASK 1 << GP_RE_STATUS_V_FRAME_END_SHIFT
379#define GP_RE_STATUS_U_FRAME_END_SHIFT 1
380#define GP_RE_STATUS_U_FRAME_END_MASK 1 << GP_RE_STATUS_U_FRAME_END_SHIFT
381#define GP_RE_STATUS_Y_FRAME_END_SHIFT 0
382#define GP_RE_STATUS_Y_FRAME_END_MASK 1 << GP_RE_STATUS_Y_FRAME_END_SHIFT
383
384#define GP_SDW_CTRL_CTRL REG(0x2f00)
385#define GP_SDW_CTRL_TRIG_SHIFT 0
386#define GP_SDW_CTRL_TRIG_MASK 1 << GP_SDW_CTRL_TRIG_SHIFT
387
388/* SP */
389#define G2DLITE_SP_PIX_COMP REG(0x5000)
390/* SHIFT MASK define see G2D_GP_XX area */
391
392#define G2DLITE_SP_FRM_CTRL REG(0x5004)
393#define G2DLITE_SP_FRM_SIZE REG(0x5008)
394#define G2DLITE_SP_Y_BADDR_L REG(0x500c)
395#define G2DLITE_SP_Y_BADDR_H REG(0x5010)
396#define G2DLITE_SP_Y_STRIDE REG(0x502c)
397#define G2DLITE_SP_FRM_OFFSET REG(0x5040)
398/* SHIFT MASK define see G2D_GP_XX area */
399
400/* RLE */
401#define RLE_Y_Y_LEN REG(0x5100)
402#define RLE_Y_LEN_Y_SHIFT 0
403#define RLE_Y_LEN_Y_MASK 0xFFFFFF << RLE_Y_LEN_Y_SHIFT
404
405#define RLE_Y_Y_CHECK_SUM REG(0x5110)
406#define RLE_Y_CHECK_SUM_Y_SHIFT 0
407#define RLE_Y_CHECK_SUM_Y_MASK 0xFFFFFFFF << RLE_Y_CHECK_SUM_Y_SHIFT
408
409#define RLE_CTRL REG(0x5120)
410#define RLE_DATA_SIZE_SHIFT 1
411#define RLE_DATA_SIZE_MASK 0x3 << RLE_DATA_SIZE_SHIFT
412#define RLE_EN_SHIFT 0
413#define RLE_EN_MASK 0x1 << RLE_EN_SHIFT
414
415#define RLE_Y_CHECK_SUM_ST REG(0x5130)
416#define RLE_U_CHECK_SUM_ST REG(0x5134)
417#define RLE_V_CHECK_SUM_ST REG(0x5138)
418#define RLE_A_CHECK_SUM_ST REG(0x513c)
419
420#define RLE_INT_MASK REG(0x5140)
421#define RLE_INT_STATUS REG(0x5144)
422#define RLE_INT_V_ERR_SHIFT 3
423#define RLE_INT_V_ERR_MASK 0x1 << RLE_INT_V_ERR_SHIFT
424#define RLE_INT_U_ERR_SHIFT 2
425#define RLE_INT_U_ERR_MASK 0x1 << RLE_INT_U_ERR_SHIFT
426#define RLE_INT_Y_ERR_SHIFT 1
427#define RLE_INT_Y_ERR_MASK 0x1 << RLE_INT_Y_ERR_SHIFT
428#define RLE_INT_A_ERR_SHIFT 0
429#define RLE_INT_A_ERR_MASK 0x1 << RLE_INT_A_ERR_SHIFT
430
431/* CLUT */
432#define CLUT_A_CTRL REG(0x5200)
433#define CLUT_A_HAS_ALPHA_SHIFT 18
434#define CLUT_A_HAS_ALPHA_MASK 0x1 << CLUT_A_HAS_ALPHA_SHIFT
435#define CLUT_A_Y_SEL_SHIFT 17
436#define CLUT_A_Y_SEL_MASK 0x1 << CLUT_A_Y_SEL_SHIFT
437#define CLUT_A_BYPASS_SHIFT 16
438#define CLUT_A_BYPASS_MASK 0x1 << CLUT_A_BYPASS_SHIFT
439#define CLUT_A_OFFSET_SHIFT 8
440#define CLUT_A_OFFSET_MASK 0xFF << CLUT_A_OFFSET_SHIFT
441#define CLUT_A_DEPTH_SHIFT 0
442#define CLUT_A_DEPTH_MASK 0xF << CLUT_A_DEPTH_SHIFT
443
444#define CLUT_Y_CTRL REG(0x5204)
445#define CLUT_Y_BYPASS_SHIFT 16
446#define CLUT_Y_BYPASS_MASK 0x1 << CLUT_Y_BYPASS_SHIFT
447#define CLUT_Y_OFFSET_SHIFT 8
448#define CLUT_Y_OFFSET_MASK 0xFF << CLUT_Y_OFFSET_SHIFT
449#define CLUT_Y_DEPTH_SHIFT 0
450#define CLUT_Y_DEPTH_MASK 0xF << CLUT_Y_DEPTH_SHIFT
451
452#define CLUT_U_CTRL REG(0x5208)
453#define CLUT_U_Y_SEL_SHIFT 17
454#define CLUT_U_Y_SEL_MASK 0x1 << CLUT_U_Y_SEL_SHIFT
455#define CLUT_U_BYPASS_SHIFT 16
456#define CLUT_U_BYPASS_MASK 0x1 << CLUT_U_BYPASS_SHIFT
457#define CLUT_U_OFFSET_SHIFT 8
458#define CLUT_U_OFFSET_MASK 0xFF << CLUT_U_OFFSET_SHIFT
459#define CLUT_U_DEPTH_SHIFT 0
460#define CLUT_U_DEPTH_MASK 0xF << CLUT_U_DEPTH_SHIFT
461
462#define CLUT_V_CTRL REG(0x520c)
463#define CLUT_V_Y_SEL_SHIFT 17
464#define CLUT_V_Y_SEL_MASK 0x1 << CLUT_V_Y_SEL_SHIFT
465#define CLUT_V_BYPASS_SHIFT 16
466#define CLUT_V_BYPASS_MASK 0x1 << CLUT_V_BYPASS_SHIFT
467#define CLUT_V_OFFSET_SHIFT 8
468#define CLUT_V_OFFSET_MASK 0xFF << CLUT_V_OFFSET_SHIFT
469#define CLUT_V_DEPTH_SHIFT 0
470#define CLUT_V_DEPTH_MASK 0xF << CLUT_V_DEPTH_SHIFT
471
472#define CLUT_READ_CTRL REG(0x5210)
473#define CLUT_V_SEL_SHIFT 3
474#define CLUT_V_SEL_MASK 0x1 << CLUT_V_SEL_SHIFT
475#define CLUT_U_SEL_SHIFT 2
476#define CLUT_U_SEL_MASK 0x1 << CLUT_U_SEL_SHIFT
477#define CLUT_Y_SEL_SHIFT 1
478#define CLUT_Y_SEL_MASK 0x1 << CLUT_Y_SEL_SHIFT
479#define CLUT_A_SEL_SHIFT 0
480#define CLUT_A_SEL_MASK 0x1 << CLUT_A_SEL_SHIFT
481
482/* SP_SDW_CTRL */
483#define SP_SDW_CTRL_CTRL REG(0x5f00)
484#define SP_SDW_CTRL_TRIG_SHIFT 0
485#define SP_SDW_CTRL_TRIG_MASK 0x1 << SP_SDW_CTRL_TRIG_SHIFT
486
487/*MLC*/
488#define MLC_LAYER_JMP 0x30
489#define MLC_LAYER_COUNT 2
490#define MLC_PATH_JMP 0x4
491#define MLC_PATH_COUNT 3
492
493#define MLC_SF_CTRL_(i) (REG(0x7000) + MLC_LAYER_JMP * i)
494#define MLC_SF_PROT_VAL_SHIFT 8
495#define MLC_SF_PROT_VAL_MASK 0x3F << MLC_SF_PROT_VAL_SHIFT
496#define MLC_SF_VPOS_PROT_EN_SHIFT 7
497#define MLC_SF_VPOS_PROT_EN_MASK 0x1 << MLC_SF_VPOS_PROT_EN_SHIFT
498#define MLC_SF_SLOWDOWN_EN_SHIFT 6
499#define MLC_SF_SLOWDOWN_EN_MASK 0x1 << MLC_SF_SLOWDOWN_EN_SHIFT
500#define MLC_SF_AFLU_PSEL_SHIFT 5
501#define MLC_SF_AFLU_PSEL_MASK 0x1 << MLC_SF_AFLU_PSEL_SHIFT
502#define MLC_SF_AFLU_EN_SHIFT 4
503#define MLC_SF_AFLU_EN_MASK 0x1 << MLC_SF_AFLU_EN_SHIFT
504#define MLC_SF_CKEY_EN_SHIFT 3
505#define MLC_SF_CKEY_EN_MASK 0x1 << MLC_SF_CKEY_EN_SHIFT
506#define MLC_SF_G_ALPHA_EN_SHIFT 2
507#define MLC_SF_G_ALPHA_EN_MASK 0x1 << MLC_SF_G_ALPHA_EN_SHIFT
508#define MLC_SF_CROP_EN_SHIFT 1
509#define MLC_SF_CROP_EN_MASK 0x1 << MLC_SF_CROP_EN_SHIFT
510#define MLC_SF_EN_SHIFT 0
511#define MLC_SF_EN_MASK 0x1 << MLC_SF_EN_SHIFT
512
513#define MLC_SF_H_H_SPOS_(i) (REG(0x7004) + MLC_LAYER_JMP * i)
514#define MLC_SF_H_SPOS_H_SHIFT 0
515#define MLC_SF_H_SPOS_H_MASK 0x1FFFF << MLC_SF_H_SPOS_H_SHIFT
516
517#define MLC_SF_V_V_SPOS_(i) (REG(0x7008) + MLC_LAYER_JMP * i)
518#define MLC_SF_V_SPOS_V_SHIFT 0
519#define MLC_SF_V_SPOS_V_MASK 0x1FFFF << MLC_SF_V_SPOS_V_SHIFT
520
521#define MLC_SF_SF_SIZE_(i) (REG(0x700c) + MLC_LAYER_JMP * i)
522#define MLC_SF_SIZE_V_SHIFT 16
523#define MLC_SF_SIZE_V_MASK 0xFFFFUL << MLC_SF_SIZE_V_SHIFT
524#define MLC_SF_SIZE_H_SHIFT 0
525#define MLC_SF_SIZE_H_MASK 0xFFFF << MLC_SF_SIZE_H_SHIFT
526
527#define MLC_SF_CROP_H_POS_(i) (REG(0x7010) + MLC_LAYER_JMP * i)
528#define MLC_SF_CROP_V_POS_(i) (REG(0x7014) + MLC_LAYER_JMP * i)
529#define MLC_SF_CROP_END_SHIFT 16
530#define MLC_SF_CROP_END_MASK 0xFFFF << MLC_SF_CROP_END_SHIFT
531#define MLC_SF_CROP_START_SHIFT 0
532#define MLC_SF_CROP_START_MASK 0xFFFF << MLC_SF_CROP_START_SHIFT
533
534#define MLC_SF_G_G_ALPHA_(i) (REG(0x7018) + MLC_LAYER_JMP * i)
535#define MLC_SF_G_ALPHA_A_SHIFT 0
536#define MLC_SF_G_ALPHA_A_MASK 0xFF << MLC_SF_G_ALPHA_A_SHIFT
537
538#define MLC_SF_CKEY_CKEY_ALPHA_(i) (REG(0x701c) + MLC_LAYER_JMP * i)
539#define MLC_SF_CKEY_ALPHA_A_SHIFT 0
540#define MLC_SF_CKEY_ALPHA_A_MASK 0xFF << MLC_SF_CKEY_ALPHA_A_SHIFT
541
542#define MLC_SF_CKEY_R_LV_(i) (REG(0x7020) + MLC_LAYER_JMP * i)
543#define MLC_SF_CKEY_G_LV_(i) (REG(0x7024) + MLC_LAYER_JMP * i)
544#define MLC_SF_CKEY_B_LV_(i) (REG(0x7028) + MLC_LAYER_JMP * i)
545#define MLC_SF_CKEY_LV_UP_SHIFT 16
546#define MLC_SF_CKEY_LV_UP_MASK 0x3FF << MLC_SF_CKEY_LV_UP_SHIFT
547#define MLC_SF_CKEY_LV_DN_SHIFT 0
548#define MLC_SF_CKEY_LV_DN_MASK 0x3FF << MLC_SF_CKEY_LV_DN_SHIFT
549
550#define MLC_SF_AFLU_AFLU_TIME_(i) (REG(0x702c) + MLC_LAYER_JMP * i)
551#define MLC_SF_AFLU_TIMER_SHIFT 0
552#define MLC_SF_AFLU_TIMER_MASK 0xFFFFFFFF << MLC_SF_AFLU_TIMER_SHIFT
553
554#define MLC_PATH_CTRL_(i) (REG(0x7200) + MLC_PATH_JMP * i)
555#define PMA_EN_SHIFT 29
556#define PMA_EN_MASK 0x1 << PMA_EN_SHIFT
557#define PD_OUT_SEL_SHIFT 28
558#define PD_OUT_SEL_MASK 0x1 << PD_OUT_SEL_SHIFT
559#define PD_MODE_SHIFT 20
560#define PD_MODE_MASK 0x1F << PD_MODE_SHIFT
561#define ALPHA_BLD_IDX_SHIFT 16
562#define ALPHA_BLD_IDX_MASK 0xF << ALPHA_BLD_IDX_SHIFT
563#define PD_OUT_IDX_SHIFT 12
564#define PD_OUT_IDX_MASK 0x7 << PD_OUT_IDX_SHIFT
565#define PD_DES_IDX_SHIFT 8
566#define PD_DES_IDX_MASK 0x7 << PD_DES_IDX_SHIFT
567#define PD_SRC_IDX_SHIFT 4
568#define PD_SRC_IDX_MASK 0x7 << PD_SRC_IDX_SHIFT
569#define LAYER_OUT_IDX_SHIFT 0
570#define LAYER_OUT_IDX_MASK 0xF << LAYER_OUT_IDX_SHIFT
571
572#define MLC_BG_CTRL REG(0x7220)
573#define BG_A_SHIFT 8
574#define BG_A_MASK 0xFF << BG_A_SHIFT
575#define AFLU_EN_SHIFT 7
576#define AFLU_EN_MASK 0x1 << AFLU_EN_SHIFT
577#define FSTART_SEL_SHIFT 4
578#define FSTART_SEL_MASK 0x7 << FSTART_SEL_SHIFT
579#define BG_A_SEL_SHIFT 2
580#define BG_A_SEL_MASK 0x1 << BG_A_SEL_SHIFT
581#define BG_EN_SHIFT 1
582#define BG_EN_MASK 0x1 << BG_EN_SHIFT
583#define ALPHA_BLD_BYPS_SHIFT 0
584#define ALPHA_BLD_BYPS_MASK 0x1 << ALPHA_BLD_BYPS_SHIFT
585
586#define MLC_BG_COLOR REG(0x7224)
587#define BG_COLOR_R_SHIFT 20
588#define BG_COLOR_R_MASK 0x3FF << BG_COLOR_R_SHIFT
589#define BG_COLOR_G_SHIFT 10
590#define BG_COLOR_G_MASK 0x3FF << BG_COLOR_G_SHIFT
591#define BG_COLOR_B_SHIFT 0
592#define BG_COLOR_B_MASK 0x3FF << BG_COLOR_B_SHIFT
593
594#define MLC_BG_AFLU_AFLU_TIME REG(0x7228)
595#define MLC_BG_AFLU_TIMER_SHIFT 0
596#define MLC_BG_AFLU_TIMER_MASK 0xFFFFFFFF << MLC_BG_AFLU_TIMER_SHIFT
597
598#define MLC_CANVAS_COLOR REG(0x7230)
599#define CANVAS_COLOR_R_SHIFT 20
600#define CANVAS_COLOR_R_MASK 0x3FF << CANVAS_COLOR_R_SHIFT
601#define CANVAS_COLOR_G_SHIFT 10
602#define CANVAS_COLOR_G_MASK 0x3FF << CANVAS_COLOR_G_SHIFT
603#define CANVAS_COLOR_B_SHIFT 0
604#define CANVAS_COLOR_B_MASK 0x3FF << CANVAS_COLOR_B_SHIFT
605
606#define MLC_CLK_CLK_RATIO REG(0x7234)
607#define MLC_CLK_RATIO_SHIFT 0
608#define MLC_CLK_RATIO_MASK 0xFFFF << MLC_CLK_RATIO_SHIFT
609
610#define MLC_INT_MASK REG(0x7240)
611#define MLC_MASK_ERR_L_5_SHIFT 12
612#define MLC_MASK_ERR_L_5_MASK 0x1 << MLC_MASK_ERR_L_5_SHIFT
613#define MLC_MASK_ERR_L_4_SHIFT 11
614#define MLC_MASK_ERR_L_4_MASK 0x1 << MLC_MASK_ERR_L_4_SHIFT
615#define MLC_MASK_ERR_L_3_SHIFT 10
616#define MLC_MASK_ERR_L_3_MASK 0x1 << MLC_MASK_ERR_L_3_SHIFT
617#define MLC_MASK_ERR_L_2_SHIFT 9
618#define MLC_MASK_ERR_L_2_MASK 0x1 << MLC_MASK_ERR_L_2_SHIFT
619#define MLC_MASK_ERR_L_1_SHIFT 8
620#define MLC_MASK_ERR_L_1_MASK 0x1 << MLC_MASK_ERR_L_1_SHIFT
621#define MLC_MASK_ERR_L_0_SHIFT 7
622#define MLC_MASK_ERR_L_0_MASK 0x1 << MLC_MASK_ERR_L_0_SHIFT
623#define MLC_MASK_FLU_L_5_SHIFT 6
624#define MLC_MASK_FLU_L_5_MASK 0x1 << MLC_MASK_FLU_L_5_SHIFT
625#define MLC_MASK_FLU_L_4_SHIFT 5
626#define MLC_MASK_FLU_L_4_MASK 0x1 << MLC_MASK_FLU_L_4_SHIFT
627#define MLC_MASK_FLU_L_3_SHIFT 4
628#define MLC_MASK_FLU_L_3_MASK 0x1 << MLC_MASK_FLU_L_3_SHIFT
629#define MLC_MASK_FLU_L_2_SHIFT 3
630#define MLC_MASK_FLU_L_2_MASK 0x1 << MLC_MASK_FLU_L_2_SHIFT
631#define MLC_MASK_FLU_L_1_SHIFT 2
632#define MLC_MASK_FLU_L_1_MASK 0x1 << MLC_MASK_FLU_L_1_SHIFT
633#define MLC_MASK_FLU_L_0_SHIFT 1
634#define MLC_MASK_FLU_L_0_MASK 0x1 << MLC_MASK_FLU_L_0_SHIFT
635#define MLC_MASK_FRM_END_SHIFT 0
636#define MLC_MASK_FRM_END_MASK 0x1 << MLC_MASK_FRM_END_SHIFT
637
638#define MLC_INT_STATUS REG(0x7244)
639#define MLC_S_SLOWD_L_5_SHIFT 27
640#define MLC_S_SLOWD_L_5_MASK 0x1 << MLC_S_SLOWD_L_5_SHIFT
641#define MLC_S_SLOWD_L_4_SHIFT 26
642#define MLC_S_SLOWD_L_4_MASK 0x1 << MLC_S_SLOWD_L_4_SHIFT
643#define MLC_S_SLOWD_L_3_SHIFT 25
644#define MLC_S_SLOWD_L_3_MASK 0x1 << MLC_S_SLOWD_L_3_SHIFT
645#define MLC_S_SLOWD_L_2_SHIFT 24
646#define MLC_S_SLOWD_L_2_MASK 0x1 << MLC_S_SLOWD_L_2_SHIFT
647#define MLC_S_SLOWD_L_1_SHIFT 23
648#define MLC_S_SLOWD_L_1_MASK 0x1 << MLC_S_SLOWD_L_1_SHIFT
649#define MLC_S_SLOWD_L_0_SHIFT 22
650#define MLC_S_SLOWD_L_0_MASK 0x1 << MLC_S_SLOWD_L_0_SHIFT
651#define MLC_S_CROP_E_L_5_SHIFT 21
652#define MLC_S_CROP_E_L_5_MASK 0x1 << MLC_S_CROP_E_L_5_SHIFT
653#define MLC_S_CROP_E_L_4_SHIFT 20
654#define MLC_S_CROP_E_L_4_MASK 0x1 << MLC_S_CROP_E_L_4_SHIFT
655#define MLC_S_CROP_E_L_3_SHIFT 19
656#define MLC_S_CROP_E_L_3_MASK 0x1 << MLC_S_CROP_E_L_3_SHIFT
657#define MLC_S_CROP_E_L_2_SHIFT 18
658#define MLC_S_CROP_E_L_2_MASK 0x1 << MLC_S_CROP_E_L_2_SHIFT
659#define MLC_S_CROP_E_L_1_SHIFT 17
660#define MLC_S_CROP_E_L_1_MASK 0x1 << MLC_S_CROP_E_L_1_SHIFT
661#define MLC_S_CROP_E_L_0_SHIFT 16
662#define MLC_S_CROP_E_L_0_MASK 0x1 << MLC_S_CROP_E_L_0_SHIFT
663#define MLC_S_E_L_5_SHIFT 12
664#define MLC_S_E_L_5_MASK 0x1 << MLC_S_E_L_5_SHIFT
665#define MLC_S_E_L_4_SHIFT 11
666#define MLC_S_E_L_4_MASK 0x1 << MLC_S_E_L_4_SHIFT
667#define MLC_S_E_L_3_SHIFT 10
668#define MLC_S_E_L_3_MASK 0x1 << MLC_S_E_L_3_SHIFT
669#define MLC_S_E_L_2_SHIFT 9
670#define MLC_S_E_L_2_MASK 0x1 << MLC_S_E_L_2_SHIFT
671#define MLC_S_E_L_1_SHIFT 8
672#define MLC_S_E_L_1_MASK 0x1 << MLC_S_E_L_1_SHIFT
673#define MLC_S_E_L_0_SHIFT 7
674#define MLC_S_E_L_0_MASK 0x1 << MLC_S_E_L_0_SHIFT
675#define MLC_S_FLU_L_5_SHIFT 6
676#define MLC_S_FLU_L_5_MASK 0x1 << MLC_S_FLU_L_5_SHIFT
677#define MLC_S_FLU_L_4_SHIFT 5
678#define MLC_S_FLU_L_4_MASK 0x1 << MLC_S_FLU_L_4_SHIFT
679#define MLC_S_FLU_L_3_SHIFT 4
680#define MLC_S_FLU_L_3_MASK 0x1 << MLC_S_FLU_L_3_SHIFT
681#define MLC_S_FLU_L_2_SHIFT 3
682#define MLC_S_FLU_L_2_MASK 0x1 << MLC_S_FLU_L_2_SHIFT
683#define MLC_S_FLU_L_1_SHIFT 2
684#define MLC_S_FLU_L_1_MASK 0x1 << MLC_S_FLU_L_1_SHIFT
685#define MLC_S_FLU_L_0_SHIFT 1
686#define MLC_S_FLU_L_0_MASK 0x1 << MLC_S_FLU_L_0_SHIFT
687#define MLC_S_FRM_END_SHIFT 0
688#define MLC_S_FRM_END_MASK 0x1 << MLC_S_FRM_END_SHIFT
689
690/*AP*/
691#define AP_PIX_PIX_COMP REG(0x9000)
692#define AP_PIX_COMP_BPA_SHIFT 0
693#define AP_PIX_COMP_BPA_MASK 0xF << AP_PIX_COMP_BPA_SHIFT
694
695#define AP_FRM_FRM_CTRL REG(0x9004)
696#define AP_FRM_CTRL_ENDIAN_CTRL_SHIFT 16
697#define AP_FRM_CTRL_ENDIAN_CTRL_MASK 0x7 << AP_FRM_CTRL_ENDIAN_CTRL_SHIFT
698#define AP_FRM_CTRL_ROT_SHIFT 8
699#define AP_FRM_CTRL_ROT_MASK 0x7 << AP_FRM_CTRL_ROT_SHIFT
700#define AP_FRM_CTRL_FAST_CP_MODE_SHIFT 0
701#define AP_FRM_CTRL_FAST_CP_MODE_MASK 0x1 << AP_FRM_CTRL_FAST_CP_MODE_SHIFT
702
703#define AP_FRM_FRM_SIZE REG(0x9008)
704#define AP_FRM_SIZE_HEIGHT_SHIFT 16
705#define AP_FRM_SIZE_HEIGHT_MASK 0xFFFFUL << AP_FRM_SIZE_HEIGHT_SHIFT
706#define AP_FRM_SIZE_WIDTH_SHIFT 0
707#define AP_FRM_SIZE_WIDTH_MASK 0xFFFF << AP_FRM_SIZE_WIDTH_SHIFT
708
709#define AP_BADDR_L_L REG(0x900c)
710#define AP_BADDR_L_SHIFT 0
711#define AP_BADDR_L_MASK 0xFFFFFFFF << AP_BADDR_L_SHIFT
712
713#define AP_BADDR_H_H REG(0x9010)
714#define AP_BADDR_H_SHIFT 0
715#define AP_BADDR_H_MASK 0xFFFFFFFF << AP_BADDR_H_SHIFT
716
717#define AP_AP_STRIDE REG(0x902c)
718#define AP_STRIDE_SHIFT 0
719#define AP_STRIDE_MASK 0x3FFFF << AP_STRIDE_SHIFT
720
721#define AP_FRM_FRM_OFFSET REG(0x9040)
722#define AP_FRM_OFFSET_Y_SHIFT 16
723#define AP_FRM_OFFSET_Y_MASK 0xFFFF << AP_FRM_OFFSET_Y_SHIFT
724#define AP_FRM_OFFSET_X_SHIFT 0
725#define AP_FRM_OFFSET_X_MASK 0xFFFF << AP_FRM_OFFSET_X_SHIFT
726
727/* AP_SDW_CTRL */
728#define AP_SDW_CTRL_CTRL REG(0x9f00)
729#define AP_SDW_CTRL_TRIG_SHIFT 0
730#define AP_SDW_CTRL_TRIG_MASK 0x1 << AP_SDW_CTRL_TRIG_SHIFT
731
732/*wdma*/
733#define WCHN_JUMP 0x20
734#define WCHN_COUNT 3
735
736#define WDMA_DFIFO_WML_WML_(i) (REG(0xa000) + WCHN_JUMP * i)
737#define WDMA_DFIFO_WML_SHIFT 0
738#define WDMA_DFIFO_WML_MASK 0xFFFF << WDMA_DFIFO_WML_SHIFT
739
740#define WDMA_DFIFO_DEPTH_DEPTH_(i) (REG(0xa004) + WCHN_JUMP * i)
741#define WDMA_DFIFO_DEPTH_SHIFT 0
742#define WDMA_DFIFO_DEPTH_MASK 0xFFFF << WDMA_DFIFO_DEPTH_SHIFT
743
744#define WDMA_CFIFO_DEPTH_DEPTH_(i) (REG(0xa008) + WCHN_JUMP * i)
745#define WDMA_CFIFO_DEPTH_SHIFT 0
746#define WDMA_CFIFO_DEPTH_MASK 0xFFFF << WDMA_CFIFO_DEPTH_SHIFT
747
748#define WDMA_CH_PRIO_PRIO_(i) (REG(0xa00c) + WCHN_JUMP * i)
749#define WDMA_CH_PRIO_SCHE_SHIFT 16
750#define WDMA_CH_PRIO_SCHE_MASK 0x3F << WDMA_CH_PRIO_SCHE_SHIFT
751#define WDMA_CH_PRIO_P1_SHIFT 8
752#define WDMA_CH_PRIO_P1_MASK 0x3F << WDMA_CH_PRIO_P1_SHIFT
753#define WDMA_CH_PRIO_P0_SHIFT 0
754#define WDMA_CH_PRIO_P0_MASK 0x3F << WDMA_CH_PRIO_P0_SHIFT
755
756#define WDMA_BURST_BURST_(i) (REG(0xa010) + WCHN_JUMP * i)
757#define WDMA_BURST_MODE_SHIFT 3
758#define WDMA_BURST_MODE_MASK 1 << WDMA_BURST_MODE_SHIFT
759#define WDMA_BURST_LEN_SHIFT 0
760#define WDMA_BURST_LEN_MASK 0x7 << WDMA_BURST_LEN_SHIFT
761
762#define WDMA_AXI_USER_USER_(i) (REG(0xa014) + WCHN_JUMP * i)
763#define WDMA_AXI_USER_SHIFT 0
764#define WDMA_AXI_USER_MASK 0xFFFFF << WDMA_AXI_USER_SHIFT
765
766#define WDMA_AXI_CTRL_CTRL_(i) (REG(0xa018) + WCHN_JUMP * i)
767#define WDMA_AXI_CTRL_CHN_RST_SHIFT 7
768#define WDMA_AXI_CTRL_CHN_RST_MASK 1 << WDMA_AXI_CTRL_CHN_RST_SHIFT
769#define WDMA_AXI_CTRL_BUFAB_CFG_SHFIT 6
770#define WDMA_AXI_CTRL_BUFAB_CFG_MASK 1 << WDMA_AXI_CTRL_BUFAB_CFG_SHFIT
771#define WDMA_AXI_CTRL_PROT_SHIFT 4
772#define WDMA_AXI_CTRL_PROT_MASK 0x3 << WDMA_AXI_CTRL_PROT_SHIFT
773#define WDMA_AXI_CTRL_CACHE_SHIFT 0
774#define WDMA_AXI_CTRL_CACHE_MASK 0xF << WDMA_AXI_CTRL_CACHE_SHIFT
775
776#define WDMA_CTRL_CTRL REG(0xa400)
777#define WDMA_CTRL_CFG_LOAD_SHIFT 1
778#define WDMA_CTRL_CFG_LOAD_MASK 1 << WDMA_CTRL_CFG_LOAD_SHIFT
779#define WDMA_CTRL_ARB_SEL_SHIFT 0
780#define WDMA_CTRL_ARB_SEL_MASK 1 << WDMA_CTRL_ARB_SEL_SHIFT
781
782#define WDMA_DFIFO_FULL_FULL REG(0xa500)
783#define WDMA_DFIFO_FULL_CH_2_SHIFT 2
784#define WDMA_DFIFO_FULL_CH_2_MASK 1 << WDMA_DFIFO_FULL_CH_2_SHIFT
785#define WDMA_DFIFO_FULL_CH_1_SHIFT 1
786#define WDMA_DFIFO_FULL_CH_1_MASK 1 << WDMA_DFIFO_FULL_CH_1_SHIFT
787#define WDMA_DFIFO_FULL_CH_0_SHIFT 0
788#define WDMA_DFIFO_FULL_CH_0_MASK 1 << WDMA_DFIFO_FULL_CH_0_SHIFT
789
790#define WDMA_DFIFO_EMPTY_EMPTY REG(0xa504)
791#define WDMA_DFIFO_EMPTY_CH_2_SHIFT 2
792#define WDMA_DFIFO_EMPTY_CH_2_MASK 1 << WDMA_DFIFO_EMPTY_CH_2_SHIFT
793#define WDMA_DFIFO_EMPTY_CH_1_SHIFT 1
794#define WDMA_DFIFO_EMPTY_CH_1_MASK 1 << WDMA_DFIFO_EMPTY_CH_1_SHIFT
795#define WDMA_DFIFO_EMPTY_CH_0_SHIFT 0
796#define WDMA_DFIFO_EMPTY_CH_0_MASK 1 << WDMA_DFIFO_EMPTY_CH_0_SHIFT
797
798#define WDMA_CFIFO_FULL_FULL REG(0xa508)
799#define WDMA_CFIFO_FULL_CH_2_SHFIT 2
800#define WDMA_CFIFO_FULL_CH_2_MASK 1 << WDMA_CFIFO_FULL_CH_2_SHFIT
801#define WDMA_CFIFO_FULL_CH_1_SHFIT 1
802#define WDMA_CFIFO_FULL_CH_1_MASK 1 << WDMA_CFIFO_FULL_CH_1_SHFIT
803#define WDMA_CFIFO_FULL_CH_0_SHFIT 0
804#define WDMA_CFIFO_FULL_CH_0_MASK 1 << WDMA_CFIFO_FULL_CH_0_SHFIT
805
806#define WDMA_CFIFO_EMPTY_EMPTY REG(0xa50c)
807#define WDMA_CFIFO_EMPTY_CH_2_SHIFT 2
808#define WDMA_CFIFO_EMPTY_CH_2_MASK 1 << WDMA_CFIFO_EMPTY_CH_2_SHIFT
809#define WDMA_CFIFO_EMPTY_CH_1_SHIFT 1
810#define WDMA_CFIFO_EMPTY_CH_1_MASK 1 << WDMA_CFIFO_EMPTY_CH_1_SHIFT
811#define WDMA_CFIFO_EMPTY_CH_0_SHIFT 0
812#define WDMA_CFIFO_EMPTY_CH_0_MASK 1 << WDMA_CFIFO_EMPTY_CH_0_SHIFT
813
814#define WDMA_CH_IDLE_IDLE REG(0xa510)
815#define WDMA_CH_IDLE_CH_2_SHIFT 2
816#define WDMA_CH_IDLE_CH_2_MASK 1 << WDMA_CH_IDLE_CH_2_SHIFT
817#define WDMA_CH_IDLE_CH_1_SHIFT 1
818#define WDMA_CH_IDLE_CH_1_MASK 1 << WDMA_CH_IDLE_CH_1_SHIFT
819#define WDMA_CH_IDLE_CH_0_SHIFT 0
820#define WDMA_CH_IDLE_CH_0_MASK 1 << WDMA_CH_IDLE_CH_0_SHIFT
821
822#define WDMA_INT_MASK_MASK REG(0xa520)
823#define WDMA_INT_MASK_ERR_CH_2_SHIFT 2
824#define WDMA_INT_MASK_ERR_CH_2_MASK 1 << WDMA_INT_MASK_ERR_CH_2_SHIFT
825#define WDMA_INT_MASK_ERR_CH_1_SHIFT 1
826#define WDMA_INT_MASK_ERR_CH_1_MASK 1 << WDMA_INT_MASK_ERR_CH_1_SHIFT
827#define WDMA_INT_MASK_ERR_CH_0_SHIFT 0
828#define WDMA_INT_MASK_ERR_CH_0_MASK 1 << WDMA_INT_MASK_ERR_CH_0_SHIFT
829
830#define WDMA_INT_STATUS_STATUS REG(0xa524)
831#define WDMA_INT_STATUS_ERR_CH_2_SHIFT 2
832#define WDMA_INT_STATUS_ERR_CH_2_MASK 1 << WDMA_INT_STATUS_ERR_CH_2_SHIFT
833#define WDMA_INT_STATUS_ERR_CH_1_SHIFT 1
834#define WDMA_INT_STATUS_ERR_CH_1_MASK 1 << WDMA_INT_STATUS_ERR_CH_1_SHIFT
835#define WDMA_INT_STATUS_ERR_CH_0_SHIFT 0
836#define WDMA_INT_STATUS_ERR_CH_0_MASK 1 << WDMA_INT_STATUS_ERR_CH_0_SHIFT
837
838#define WDMA_DEBUG_CTRL_CTRL REG(0xa540)
839#define WDMA_DEBUG_CTRL_DEBUG_SEL_SHIFT 0
840#define WDMA_DEBUG_CTRL_DEBUG_SEL_MASK 0x1F << WDMA_DEBUG_CTRL_DEBUG_SEL_SHIFT
841
842#define WDMA_DEBUG_STA_STA REG(0xa544)
843#define WDMA_DEBUG_STA_CFIFO_DEP_SHIFT 16
844#define WDMA_DEBUG_STA_CFIFO_DEP_MASK 0xFFFF << WDMA_DEBUG_STA_CFIFO_DEP_SHIFT
845#define WDMA_DEBUG_STA_DFIFO_DEP_SHIFT 0
846#define WDMA_DEBUG_STA_DFIFO_DEP_MASK 0xFFFF << WDMA_DEBUG_STA_DFIFO_DEP_SHIFT
847
848/*W-PIPE*/
849#define WP_CTRL_CTRL REG(0xb000)
850#define WP_CTRL_PACK_ENDIAN_CTRL_SHIFT 16
851#define WP_CTRL_PACK_ENDIAN_CTRL_MASK 0x7 << WP_CTRL_PACK_ENDIAN_CTRL_SHIFT
852#define WP_CTRL_PACK_ROUND_SHIFT 12
853#define WP_CTRL_PACK_ROUND_MASK 1 << WP_CTRL_PACK_ROUND_SHIFT
854#define WP_CTRL_TILE_TYPE_SHIFT 10
855#define WP_CTRL_TILE_TYPE_MASK 0x3 << WP_CTRL_TILE_TYPE_SHIFT
856#define WP_CTRL_PXL_MODE_SHIFT 9
857#define WP_CTRL_PXL_MODE_MASK 1 << WP_CTRL_PXL_MODE_SHIFT
858#define WP_CTRL_REFORGE_BYPS_SHIFT 8
859#define WP_CTRL_REFORGE_BYPS_MASK 1 << WP_CTRL_REFORGE_BYPS_SHIFT
860#define WP_CTRL_UV_MODE_SHIFT 6
861#define WP_CTRL_UV_MODE_MASK 0x3 << WP_CTRL_UV_MODE_SHIFT
862#define WP_CTRL_STR_FMT_SHIFT 4
863#define WP_CTRL_STR_FMT_MASK 0x3 << WP_CTRL_STR_FMT_SHIFT
864#define WP_CTRL_VFLIP_SHIFT 3
865#define WP_CTRL_VFLIP_MASK 1 << WP_CTRL_VFLIP_SHIFT
866#define WP_CTRL_HFLIP_SHIFT 2
867#define WP_CTRL_HFLIP_MASK 1 << WP_CTRL_HFLIP_SHIFT
868#define WP_CTRL_ROT_EN_SHIFT 1
869#define WP_CTRL_ROT_EN_MASK 1 << WP_CTRL_ROT_EN_SHIFT
870#define WP_CTRL_FRM_MODE_SHIFT 0
871#define WP_CTRL_FRM_MODE_MASK 1 << WP_CTRL_FRM_MODE_SHIFT
872
873#define WP_PIX_COMP_COMP REG(0xb004)
874#define WP_PIX_COMP_BPV_SHIFT 24
875#define WP_PIX_COMP_BPV_MASK 0xF << WP_PIX_COMP_BPV_SHIFT
876#define WP_PIX_COMP_BPU_SHIFT 16
877#define WP_PIX_COMP_BPU_MASK 0xF << WP_PIX_COMP_BPU_SHIFT
878#define WP_PIX_COMP_BPY_SHIFT 8
879#define WP_PIX_COMP_BPY_MASK 0x1F << WP_PIX_COMP_BPY_SHIFT
880#define WP_PIX_COMP_BPA_SHIFT 0
881#define WP_PIX_COMP_BPA_MASK 0xF << WP_PIX_COMP_BPA_SHIFT
882
883#define WP_YUVDOWN_CTRL_CTRL REG(0xb008)
884#define WP_YUVDOWN_CTRL_V_BYPASS_SHIFT 9
885#define WP_YUVDOWN_CTRL_V_BYPASS_MASK 1 << WP_YUVDOWN_CTRL_V_BYPASS_SHIFT
886#define WP_YUVDOWN_CTRL_BYPASS_SHIFT 8
887#define WP_YUVDOWN_CTRL_BYPASS_MASK 1 << WP_YUVDOWN_CTRL_BYPASS_SHIFT
888#define WP_YUVDOWN_CTRL_V_INI_OFST_SHIFT 6
889#define WP_YUVDOWN_CTRL_V_INI_OFST_MASK 0x3 << WP_YUVDOWN_CTRL_V_INI_OFST_SHIFT
890#define WP_YUVDOWN_CTRL_V_FILTER_TYPE_SHIFT 4
891#define WP_YUVDOWN_CTRL_V_FILTER_TYPE_MASK \
892 0x3 << WP_YUVDOWN_CTRL_V_FILTER_TYPE_SHIFT
893#define WP_YUVDOWN_CTRL_H_INI_OFST_SHIFT 2
894#define WP_YUVDOWN_CTRL_H_INI_OFST_MASK 0x3 << WP_YUVDOWN_CTRL_H_INI_OFST_SHIFT
895#define WP_YUVDOWN_CTRL_H_FILTER_TYPE_SHIFT 0
896#define WP_YUVDOWN_CTRL_H_FILTER_TYPE_MASK \
897 0x3 << WP_YUVDOWN_CTRL_H_FILTER_TYPE_SHIFT
898
899#define WP_Y_BADDR_L_L REG(0xb010)
900#define WP_Y_BADDR_L_Y_SHIFT 0
901#define WP_Y_BADDR_L_Y_MASK 0xFFFFFFFF << WP_Y_BADDR_L_Y_SHIFT
902
903#define WP_Y_BADDR_H_H REG(0xb014)
904#define WP_Y_BADDR_H_Y_SHIFT 0
905#define WP_Y_BADDR_H_Y_MASK 0xFF << WP_Y_BADDR_H_Y_SHIFT
906
907#define WP_U_BADDR_L_L REG(0xb018)
908#define WP_U_BADDR_L_U_SHIFT 0
909#define WP_U_BADDR_L_U_MASK 0xFFFFFFFF << WP_U_BADDR_L_U_SHIFT
910
911#define WP_U_BADDR_H_H REG(0xb01c)
912#define WP_U_BADDR_H_U_SHIFT 0
913#define WP_U_BADDR_H_U_MASK 0xFF << WP_U_BADDR_H_U_SHIFT
914
915#define WP_V_BADDR_L_L REG(0xb020)
916#define WP_V_BADDR_L_V_SHIFT 0
917#define WP_V_BADDR_L_V_MASK 0xFFFFFFFF << WP_V_BADDR_L_V_SHIFT
918
919#define WP_V_BADDR_H_H REG(0xb024)
920#define WP_V_BADDR_H_V_SHIFT 0
921#define WP_V_BADDR_H_V_MASK 0xFF << WP_V_BADDR_H_V_SHIFT
922
923#define WP_Y_STRIDE_STRIDE REG(0xb028)
924#define WP_Y_STRIDE_Y_SHIFT 0
925#define WP_Y_STRIDE_Y_MASK 0x3FFFF << WP_Y_STRIDE_Y_SHIFT
926
927#define WP_U_STRIDE_STRIDE REG(0xb02c)
928#define WP_U_STRIDE_U_SHIFT 0
929#define WP_U_STRIDE_U_MASK 0x3FFFF << WP_U_STRIDE_U_SHIFT
930
931#define WP_V_STRIDE_STRIDE REG(0xb030)
932#define WP_V_STRIDE_V_SHIFT 0
933#define WP_V_STRIDE_V_MASK 0x3FFFF << WP_V_STRIDE_V_SHIFT
934
935#define WP_CSC_CTRL_CTRL REG(0xb040)
936#define WP_CSC_CTRL_ALPHA_SHIFT 2
937#define WP_CSC_CTRL_ALPHA_MASK 1 << WP_CSC_CTRL_ALPHA_SHIFT
938#define WP_CSC_CTRL_SBUP_CONV_SHIFT 1
939#define WP_CSC_CTRL_SBUP_CONV_MASK 1 << WP_CSC_CTRL_SBUP_CONV_SHIFT
940#define WP_CSC_CTRL_BYPASS_SHIFT 0
941#define WP_CSC_CTRL_BYPASS_MASK 1 << WP_CSC_CTRL_BYPASS_SHIFT
942
943#define WP_CSC_COEF_COEF1 REG(0xb044)
944#define WP_CSC_COEF1_A01_SHIFT 16
945#define WP_CSC_COEF1_A01_MASK 0x3FFF << WP_CSC_COEF1_A01_SHIFT
946#define WP_CSC_COEF1_A00_SHIFT 0
947#define WP_CSC_COEF1_A00_MASK 0x3FFF << WP_CSC_COEF1_A00_SHIFT
948
949#define WP_CSC_COEF_COEF2 REG(0xb048)
950#define WP_CSC_COEF2_A10_SHIFT 16
951#define WP_CSC_COEF2_A10_MASK 0x3FFF << WP_CSC_COEF2_A10_SHIFT
952#define WP_CSC_COEF2_A02_SHIFT 0
953#define WP_CSC_COEF2_A02_MASK 0x3FFF << WP_CSC_COEF2_A02_SHIFT
954
955#define WP_CSC_COEF_COEF3 REG(0xb04c)
956#define WP_CSC_COEF3_A12_SHIFT 16
957#define WP_CSC_COEF3_A12_MASK 0x3FFF << WP_CSC_COEF3_A12_SHIFT
958#define WP_CSC_COEF3_A11_SHIFT 0
959#define WP_CSC_COEF3_A11_MASK 0x3FFF << WP_CSC_COEF3_A11_SHIFT
960
961#define WP_CSC_COEF_COEF4 REG(0xb050)
962#define WP_CSC_COEF4_A21_SHIFT 16
963#define WP_CSC_COEF4_A21_MASK 0x3FFF << WP_CSC_COEF4_A21_SHIFT
964#define WP_CSC_COEF4_A20_SHIFT 0
965#define WP_CSC_COEF4_A20_MASK 0x3FFF << WP_CSC_COEF4_A20_SHIFT
966
967#define WP_CSC_COEF_COEF5 REG(0xb054)
968#define WP_CSC_COEF5_B0_SHIFT 16
969#define WP_CSC_COEF5_B0_MASK 0x3FFF << WP_CSC_COEF5_B0_SHIFT
970#define WP_CSC_COEF5_A22_SHIFT 0
971#define WP_CSC_COEF5_A22_MASK 0x3FFF << WP_CSC_COEF5_A22_SHIFT
972
973#define WP_CSC_COEF_COEF6 REG(0xb058)
974#define WP_CSC_COEF6_B2_SHIFT 16
975#define WP_CSC_COEF6_B2_MASK 0x3FFF << WP_CSC_COEF6_B2_SHIFT
976#define WP_CSC_COEF6_B1_SHIFT 0
977#define WP_CSC_COEF6_B1_MASK 0x3FFF << WP_CSC_COEF6_B1_SHIFT
978
979#define WP_CSC_COEF_COEF7 REG(0xb05c)
980#define WP_CSC_COEF7_C1_SHIFT 16
981#define WP_CSC_COEF7_C1_MASK 0x3FF << WP_CSC_COEF7_C1_SHIFT
982#define WP_CSC_COEF7_C0_SHIFT 0
983#define WP_CSC_COEF7_C0_MASK 0x3FF << WP_CSC_COEF7_C0_SHIFT
984
985#define WP_CSC_COEF_COEF8 REG(0xb060)
986#define WP_CSC_COEF8_C2_SHIFT 0
987#define WP_CSC_COEF8_C2_MASK 0x3FF << WP_CSC_COEF8_C2_SHIFT
988#endif /* G2DLITE_REG_H__ */