SemiDrive SSDK Appication Program Interface PTG3.0
dc_reg.h
Go to the documentation of this file.
1
9#ifndef DC_REG_H__
10#define DC_REG_H__
11
12/* DC registers (RMW mode) definition */
13
14#define REG(x) (x)
15/* CTRL */
16#define DC_DC_CTRL REG(0x0)
17#define DC_CTRL_SW_RST_SHIFT 31
18#define DC_CTRL_SW_RST_MASK 1UL << DC_CTRL_SW_RST_SHIFT
19#define DC_CTRL_UNDERRUN_CLR_MODE_SHIFT 3
20#define DC_CTRL_UNDERRUN_CLR_MODE_MASK 1UL << DC_CTRL_UNDERRUN_CLR_MODE_SHIFT
21#define DC_CTRL_MLC_DISCARD_MODE_SHIFT 2
22#define DC_CTRL_MLC_DISCARD_MODE_MASK 1UL << DC_CTRL_MLC_DISCARD_MODE_SHIFT
23#define DC_CTRL_MS_MODE_SHIFT 1
24#define DC_CTRL_MS_MODE_MASK 0x1 << DC_CTRL_MS_MODE_SHIFT
25#define DC_CTRL_SF_MODE_SHIFT 0
26#define DC_CTRL_SF_MODE_MASK 1UL << DC_CTRL_SF_MODE_SHIFT
27
28/* FLC */
29#define DC_FLC_CTRL REG(0x4)
30#define CRC32_TRIG_SHIFT 3
31#define CRC32_TRIG_MASK 1UL << CRC32_TRIG_SHIFT
32#define TCON_TRIG_SHIFT 2
33#define TCON_TRIG_MASK 1UL << TCON_TRIG_SHIFT
34#define DI_TRIG_SHIFT 1
35#define DI_TRIG_MASK 1UL << DI_TRIG_SHIFT
36#define FLC_TRIG_SHIFT 0
37#define FLC_TRIG_MASK 1 << FLC_TRIG_SHIFT
38
39#define DC_FLC_UPDATE REG(0x8)
40#define DC_FLC_UP_FORCE_SHIFT 0
41#define DC_FLC_UP_FORCE_MASK 1UL << DC_FLC_UP_FORCE_SHIFT
42
43#define DC_SDMA_CTRL REG(0x10)
44#define SDMA_CTRL_GAMMA_EN_SHIFT 4
45#define SDMA_CTRL_GAMMA_EN_MASK 0xF << SDMA_CTRL_GAMMA_EN_SHIFT
46#define SDMA_CTRL_SDMA_EN_SHIFT 0
47#define SDMA_CTRL_SDMA_EN_MASK 0x1 << SDMA_CTRL_SDMA_EN_SHIFT
48
49#define DC_INT_MASK REG(0x20)
50#define DC_INT_STATUS REG(0x24)
51#define DC_INIT_DEF_MASK 0x3FFFFFFF
52
53#define RDMA_SHIFT 0
54#define RDMA_MASK 1UL << RDMA_SHIFT
55
56#define RLE_SHIFT 1
57#define RLE_MASK 1UL << RLE_SHIFT
58
59#define MLC_SHIFT 2
60#define MLC_MASK 1UL << MLC_SHIFT
61
62#define TCON_SOF_SHIFT 3
63#define TCON_SOF_MASK 1UL << TCON_SOF_SHIFT
64
65#define TCON_EOF_SHIFT 4
66#define TCON_EOF_MASK 1UL << TCON_EOF_SHIFT
67
68#define TCON_UNDERRUN_SHIFT 5
69#define TCON_UNDERRUN_MASK 1UL << TCON_UNDERRUN_SHIFT
70
71#define DC_UNDERRUN_SHIFT 6
72#define DC_UNDERRUN_MASK 1UL << DC_UNDERRUN_SHIFT
73
74#define SDMA_DONE_SHIFT 7
75#define SDMA_DONE_MASK 1UL << SDMA_DONE_SHIFT
76
77#define TCON_LAYER_KICK_SHIFT 8
78#define TCON_LAYER_KICK_MASK 0xFFFFF << TCON_LAYER_KICK_SHIFT
79
80#define CSI_TIMING_DECT_DONE_SHIFT 28
81#define CSI_TIMING_DECT_DONE_MASK 1UL << CSI_TIMING_DECT_DONE_SHIFT
82
83#define CSI_TCON_VSYNC_DLY_DONE_SHIFT 29
84#define CSI_TCON_VSYNC_DLY_DONE_MASK 1UL << CSI_TCON_VSYNC_DLY_DONE_SHIFT
85
86#define DC_SF_FLC_CTRL REG(0x100)
87#define DC_SF_INT_MASK REG(0x120)
88#define DC_SF_INT_STATUS REG(0x124)
89/* offset definition see DC_FLC_xxx */
90
91/* RDMA */
92#define RDMA_CHN_JMP 0x20
93#define RDMA_CHN_COUNT 4
94#define DC_RDMA_DFIFO_WML_(i) (REG(0x1000) + RDMA_CHN_JMP * (i))
95#define RDMA_DFIFO_WML_SHIFT 0
96#define RDMA_DFIFO_WML_MASK (0xFFFF << RDMA_DFIFO_WML_SHIFT)
97
98#define DC_RDMA_DFIFO_DEPTH_(i) (REG(0x1004) + RDMA_CHN_JMP * (i))
99#define RDMA_DFIFO_DEPTH_SHIFT 0
100#define RDMA_DFIFO_DEPTH_MASK (0xFFFF << RDMA_DFIFO_DEPTH_SHIFT)
101
102#define DC_RDMA_CFIFO_DEPTH_(i) (REG(0x1008) + RDMA_CHN_JMP * (i))
103#define RDMA_CFIFO_DEPTH_SHIFT 0
104#define RDMA_CFIFO_DEPTH_MASK (0xFFFF << RDMA_DFIFO_DEPTH_SHIFT)
105
106#define DC_RDMA_CH_PRIO_(i) (REG(0x100c) + RDMA_CHN_JMP * (i))
107#define RDMA_CH_PRIO_SCHE_SHIFT 16
108#define RDMA_CH_PRIO_SCHE_MASK 0x3f << RDMA_CH_PRIO_SCHE_SHIFT
109#define RDMA_CH_PRIO_P1_SHIFT 8
110#define RDMA_CH_PRIO_P1_MASK 0x3f << RDMA_CH_PRIO_P1_SHIFT
111#define RDMA_CH_PRIO_P0_SHIFT 0
112#define RDMA_CH_PRIO_P0_MASK 0x3f << RDMA_CH_PRIO_P0_SHIFT
113
114#define DC_RDMA_BURST_(i) (REG(0x1010) + RDMA_CHN_JMP * (i))
115#define RDMA_BURST_MODE_SHIFT 3
116#define RDMA_BURST_MODE_MASK 0x1UL << RDMA_BURST_MODE_SHIFT
117#define RDMA_BURST_LEN_SHIFT 0
118#define RDMA_BURST_LEN_MASK 0x7UL << RDMA_BURST_LEN_SHIFT
119
120#define DC_RDMA_AXI_USER_(i) (REG(0x1014) + RDMA_CHN_JMP * (i))
121#define RDMA_AXI_USER_SHIFT 0
122#define RDMA_AXI_USER_MASK 0xFFFFF << RDMA_AXI_USER_SHIFT
123
124#define DC_RDMA_AXI_CTRL_(i) (REG(0x1018) + RDMA_CHN_JMP * (i))
125#define RDMA_AXI_CTRL_PORT_SHIFT 4
126#define RDMA_AXI_CTRL_PORT_MASK 0x3 << RDMA_AXI_CTRL_PORT_SHIFT
127#define RDMA_AXI_CTRL_CACHE_SHIFT 0
128#define RDMA_AXI_CTRL_CACHE_MASK 0xF << RDMA_AXI_CTRL_CACHE_SHIFT
129
130#define DC_RDMA_PRES_WML_(i) (REG(0x101c) + RDMA_CHN_JMP * (i))
131#define RDMA_PRES_REQ_INTERVAL_SHIFT 16
132#define RDMA_PRES_REQ_INTERVAL_MASK 0x3FF << RDMA_PRES_REQ_INTERVAL_SHIFT
133#define RDMA_PRES_WML_DOWN_SHIFT 4
134#define RDMA_PRES_WML_DOWN_MASK 0x7 << RDMA_PRES_WML_DOWN_SHIFT
135#define RDMA_PRES_WML_UP_SHIFT 0
136#define RDMA_PRES_WML_UP_MASK 0x7 << RDMA_PRES_WML_UP_SHIFT
137
138#define DC_RDMA_CTRL REG(0x1100)
139#define RDMA_CTRL_CFG_LOAD_SHIFT 1
140#define RDMA_CTRL_CFG_LOAD_MASK 0x1UL << RDMA_CTRL_CFG_LOAD_SHIFT
141#define RDMA_CTRL_ARB_SEL_SHIFT 0
142#define RDMA_CTRL_ARB_SEL_MASK 0x1UL << RDMA_CTRL_ARB_SEL_SHIFT
143
144#define DC_RDMA_DFIFO_FULL REG(0x1200)
145#define DC_RDMA_DFIFO_EMPTY REG(0x1204)
146#define DC_RDMA_CFIFO_FULL REG(0x1208)
147#define DC_RDMA_CFIFO_EMPTY REG(0x120c)
148#define DC_RDMA_CH_IDLE REG(0x1210)
149#define DC_RDMA_INT_MASK REG(0x1220)
150#define DC_RDMA_INT_STATUS REG(0x1224)
151#define RDMA_INT_DEF_MASK 0x7F
152#define RDMA_CH_6_SHIFT 6
153#define RDMA_CH_6_MASK 1UL << RDMA_CH_6_SHIFT
154#define RDMA_CH_5_SHIFT 5
155#define RDMA_CH_5_MASK 1UL << RDMA_CH_5_SHIFT
156#define RDMA_CH_4_SHIFT 4
157#define RDMA_CH_4_MASK 1UL << RDMA_CH_4_SHIFT
158#define RDMA_CH_3_SHIFT 3
159#define RDMA_CH_3_MASK 1UL << RDMA_CH_3_SHIFT
160#define RDMA_CH_2_SHIFT 2
161#define RDMA_CH_2_MASK 1UL << RDMA_CH_2_SHIFT
162#define RDMA_CH_1_SHIFT 1
163#define RDMA_CH_1_MASK 1UL << RDMA_CH_1_SHIFT
164#define RDMA_CH_0_SHIFT 0
165#define RDMA_CH_0_MASK 1UL << RDMA_CH_0_SHIFT
166
167#define DC_RDMA_DEBUG_CTRL REG(0x1240)
168#define RDMA_SEL_SHIFT 0
169#define RDMA_SEL_MASK 0xF << RDMA_SEL_SHIFT
170#define DC_RDMA_DEBUG_STA REG(0x1244)
171#define RDMA_CFIFO_DEP_SHIFT 16
172#define RDMA_CFIFO_DEP_MASK 0xFFFF << RDMA_CFIFO_DEP_SHIFT
173#define RDMA_DFIFO_DEP_SHIFT 0
174#define RDMA_DFIFO_DEP_MASK 0xFFFF << RDMA_DFIFO_DEP_SHIFT
175
176#define S_RDMA_DFIFO_WML_(i) (REG(0x1400) + RDMA_CHN_JMP * (i))
177#define S_RDMA_DFIFO_DEPTH_(i) (REG(0x1404) + RDMA_CHN_JMP * (i))
178#define S_RDMA_CFIFO_DEPTH_(i) (REG(0x1408) + RDMA_CHN_JMP * (i))
179#define S_RDMA_CH_PRIO_(i) (REG(0x140c) + RDMA_CHN_JMP * (i))
180#define S_RDMA_BURST_(i) (REG(0x1410) + RDMA_CHN_JMP * (i))
181#define S_RDMA_AXI_USER_(i) (REG(0x1414) + RDMA_CHN_JMP * (i))
182#define S_RDMA_AXI_CTRL_(i) (REG(0x1418) + RDMA_CHN_JMP * (i))
183#define S_RDMA_PRES_WML_(i) (REG(0x141c) + RDMA_CHN_JMP * (i))
184#define S_RDMA_CTRL REG(0x1500)
185#define S_RDMA_DFIFO_FULL REG(0x1600)
186#define S_RDMA_DFIFO_EMPTY REG(0x1604)
187#define S_RDMA_CFIFO_FULL REG(0x1608)
188#define S_RDMA_CFIFO_EMPTY REG(0x160c)
189#define S_RDMA_CH_IDLE REG(0x1610)
190#define S_RDMA_INT_MASK REG(0x1620)
191#define S_RDMA_INT_STATUS REG(0x1624)
192#define S_RDMA_DEBUG_CTRL REG(0x1640)
193#define S_RDMA_DEBUG_STA REG(0x1644)
194
195/* GP */
196#define DC_GP_PIX_COMP REG(0x2000)
197#define BPV_SHIFT 24
198#define BPV_MASK 0xF << BPV_SHIFT
199#define BPU_SHIFT 16
200#define BPU_MASK 0xF << BPU_SHIFT
201#define BPY_SHIFT 8
202#define BPY_MASK 0x1F << BPY_SHIFT
203#define BPA_SHIFT 0
204#define BPA_MASK 0xF << BPA_SHIFT
205
206#define DC_GP_FRM_CTRL REG(0x2004)
207#define ENDIAN_CTRL_SHIFT 16
208#define ENDIAN_CTRL_MASK 0x7 << ENDIAN_CTRL_SHIFT
209#define COMP_SWAP_SHIFT 12
210#define COMP_SWAP_MASK 0xF << COMP_SWAP_SHIFT
211#define ROT_SHIFT 8
212#define ROT_MASK 0x7 << ROT_SHIFT
213#define RGB_YUV_SHIFT 7
214#define RGB_YUV_MASK 1UL << RGB_YUV_SHIFT
215#define UV_SWAP_SHIFT 6
216#define UV_SWAP_MASK 1 << UV_SWAP_SHIFT
217#define UV_MODE_SHIFT 4
218#define UV_MODE_MASK 0x3 << UV_MODE_SHIFT
219#define MODE_MODE_SHIFT 2
220#define MODE_MODE_MASK 0x3 << MODE_MODE_SHIFT
221#define FMT_SHIFT 0
222#define FMT_MASK 0x3 << FMT_SHIFT
223
224#define DC_GP_FRM_SIZE REG(0x2008)
225#define FRM_HEIGHT_SHIFT 16
226#define FRM_HEIGHT_MASK (unsigned int)0xFFFF << FRM_HEIGHT_SHIFT
227#define FRM_WIDTH_SHIFT 0
228#define FRM_WIDTH_MASK 0xFFFF << FRM_WIDTH_SHIFT
229
230#define DC_GP_Y_BADDR_L REG(0x200c)
231#define BADDR_L_Y_SHIFT 0
232#define BADDR_L_Y_MASK 0xFFFFFFFF << BADDR_L_Y_SHIFT
233
234#define DC_GP_Y_BADDR_H REG(0x2010)
235#define BADDR_H_Y_SHIFT 0
236#define BADDR_H_Y_MASK 0xFF << BADDR_H_Y_SHIFT
237
238#define DC_GP_U_BADDR_L REG(0x2014)
239#define BADDR_L_U_SHIFT 0
240#define BADDR_L_U_MASK 0xFFFFFFFF << BADDR_L_U_SHIFT
241
242#define DC_GP_U_BADDR_H REG(0x2018)
243#define BADDR_H_U_SHIFT 0
244#define BADDR_H_U_MASK 0xFF << BADDR_H_U_SHIFT
245
246#define DC_GP_V_BADDR_L REG(0x201c)
247#define BADDR_L_V_SHIFT 0
248#define BADDR_L_V_MASK 0xFFFFFFFF << BADDR_L_V_SHIFT
249
250#define DC_GP_V_BADDR_H REG(0x2020)
251#define BADDR_H_V_SHIFT 0
252#define BADDR_H_V_MASK 0xFF << BADDR_H_V_SHIFT
253
254#define DC_GP_Y_STRIDE REG(0x202c)
255#define STRIDE_Y_SHIFT 0
256#define STRIDE_Y_MASK 0x3FFFFUL << STRIDE_Y_SHIFT
257
258#define DC_GP_U_STRIDE REG(0x2030)
259#define STRIDE_U_SHIFT 0
260#define STRIDE_U_MASK 0x3FFFFUL << STRIDE_U_SHIFT
261
262#define DC_GP_V_STRIDE REG(0x2034)
263#define STRIDE_V_SHIFT 0
264#define STRIDE_V_MASK 0x3FFFFUL << STRIDE_V_SHIFT
265
266#define DC_GP_FRM_OFFSET REG(0x2040)
267#define FRM_Y_SHIFT 16
268#define FRM_Y_MASK 0xFFFFUL << FRM_Y_SHIFT
269#define FRM_X_SHIFT 0
270#define FRM_X_MASK 0xFFFFUL << FRM_X_SHIFT
271
272#define DC_GP_YUVUP_CTRL REG(0x2044)
273#define DC_GP_YUVUP_EN_SHIFT 31
274#define DC_GP_YUVUP_EN_MASK (unsigned int)0x1 << DC_GP_YUVUP_EN_SHIFT
275#define DC_GP_YUVUP_VOFSET_SHIFT 6
276#define DC_GP_YUVUP_VOFSET_MASK 0x3 << DC_GP_YUVUP_VOFSET_SHIFT
277#define DC_GP_YUVUP_HOFSET_SHIFT 4
278#define DC_GP_YUVUP_HOFSET_MASK 0x3 << DC_GP_YUVUP_HOFSET_SHIFT
279#define DC_GP_YUVUP_FILTER_MODE_SHIFT 3
280#define DC_GP_YUVUP_FILTER_MODE_MASK 0x1 << DC_GP_YUVUP_FILTER_MODE_SHIFT
281#define DC_GP_YUVUP_UPV_BYPASS_SHIFT 2
282#define DC_GP_YUVUP_UPV_BYPASS_MASK 0x1 << DC_GP_YUVUP_UPV_BYPASS_SHIFT
283#define DC_GP_YUVUP_UPH_BYPASS_SHIFT 1
284#define DC_GP_YUVUP_UPH_BYPASS_MASK 0x1 << DC_GP_YUVUP_UPH_BYPASS_SHIFT
285#define DC_GP_YUVUP_BYPASS_SHIFT 0
286#define DC_GP_YUVUP_BYPASS_MASK 0x1 << DC_GP_YUVUP_BYPASS_SHIFT
287
288/* GP CSC */
289#define DC_GP_CSC_CTRL REG(0x2200)
290#define GP_CSC_ALPHA_SHIFT 2
291#define GP_CSC_ALPHA_MASK 0x1 << GP_CSC_ALPHA_SHIFT
292#define GP_CSC_SBUP_CONV_SHIFT 1
293#define GP_CSC_SBUP_CONV_MASK 0x1 << GP_CSC_SBUP_CONV_SHIFT
294#define GP_CSC_BYPASS_SHIFT 0
295#define GP_CSC_BYPASS_MASK 0x1 << GP_CSC_BYPASS_SHIFT
296
297#define DC_GP_CSC_COEF1 REG(0x2204)
298#define GP_CSC_COEF1_A01_SHIFT 16
299#define GP_CSC_COEF1_A01_MASK 0x3FFF << GP_CSC_COEF1_A01_SHIFT
300#define GP_CSC_COEF1_A00_SHIFT 0
301#define GP_CSC_COEF1_A00_MASK 0x3FFF << GP_CSC_COEF1_A00_SHIFT
302
303#define DC_GP_CSC_COEF2 REG(0x2208)
304#define GP_CSC_COEF2_A10_SHIFT 16
305#define GP_CSC_COEF2_A10_MASK 0x3FFF << GP_CSC_COEF2_A10_SHIFT
306#define GP_CSC_COEF2_A02_SHIFT 0
307#define GP_CSC_COEF2_A02_MASK 0x3FFF << GP_CSC_COEF2_A02_SHIFT
308
309#define DC_GP_CSC_COEF3 REG(0x220c)
310#define GP_CSC_COEF3_A12_SHIFT 16
311#define GP_CSC_COEF3_A12_MASK 0x3FFF << GP_CSC_COEF3_A12_SHIFT
312#define GP_CSC_COEF3_A11_SHIFT 0
313#define GP_CSC_COEF3_A11_MASK 0x3FFF << GP_CSC_COEF3_A11_SHIFT
314
315#define DC_GP_CSC_COEF4 REG(0x2210)
316#define GP_CSC_COEF4_A21_SHIFT 16
317#define GP_CSC_COEF4_A21_MASK 0x3FFF << GP_CSC_COEF4_A21_SHIFT
318#define GP_CSC_COEF4_A20_SHIFT 0
319#define GP_CSC_COEF4_A20_MASK 0x3FFF << GP_CSC_COEF4_A20_SHIFT
320
321#define DC_GP_CSC_COEF5 REG(0x2214)
322#define GP_CSC_COEF5_B0_SHIFT 16
323#define GP_CSC_COEF5_B0_MASK 0x3FFF << GP_CSC_COEF5_B0_SHIFT
324#define GP_CSC_COEF5_A22_SHIFT 0
325#define GP_CSC_COEF5_A22_MASK 0x3FFF << GP_CSC_COEF5_A22_SHIFT
326
327#define DC_GP_CSC_COEF6 REG(0x2218)
328#define GP_CSC_COEF6_B2_SHIFT 16
329#define GP_CSC_COEF6_B2_MASK 0x3FFF << GP_CSC_COEF6_B2_SHIFT
330#define GP_CSC_COEF6_B1_SHIFT 0
331#define GP_CSC_COEF6_B1_MASK 0x3FFF << GP_CSC_COEF6_B1_SHIFT
332
333#define DC_GP_CSC_COEF7 REG(0x221c)
334#define GP_CSC_COEF7_C1_SHIFT 16
335#define GP_CSC_COEF7_C1_MASK 0x3FF << GP_CSC_COEF7_C1_SHIFT
336#define GP_CSC_COEF7_C0_SHIFT 0
337#define GP_CSC_COEF7_C0_MASK 0x3FF << GP_CSC_COEF7_C0_SHIFT
338
339#define DC_GP_CSC_COEF8 REG(0x2220)
340#define GP_CSC_COEF8_C2_SHIFT 0
341#define GP_CSC_COEF8_C2_MASK 0x3FF << GP_CSC_COEF8_C2_SHIFT
342
343/* GP HSDK */
344#define DC_GP_HSDK_CTRL REG(0x2d00)
345#define GP_HSDK_MODE_SHIFT 1
346#define GP_HSDK_MODE_MASK 3 << GP_HSDK_MODE_SHIFT
347#define GP_HSDK_EN_SHIFT 0
348#define GP_HSDK_EN_MASK 1 << GP_HSDK_EN_SHIFT
349
350#define DC_GP_HSDK_STATUS REG(0x2d04)
351#define GP_HSDK_Y_RDY_1_SHIFT 3
352#define GP_HSDK_Y_RDY_1_MASK 1 << GP_HSDK_Y_RDY_1_SHIFT
353#define GP_HSDK_Y_RDY_0_SHIFT 0
354#define GP_HSDK_Y_RDY_0_MASK 1 << GP_HSDK_Y_RDY_0_SHIFT
355
356/* GP RST */
357#define DC_GP_SW_RST REG(0x2e00)
358#define GP_SW_RST_SHIFT 0
359#define GP_SW_RST_MASK 1 << GP_SW_RST_SHIFT
360
361/* GP SDW */
362#define DC_GP_SDW_CTRL REG(0x2f00)
363#define GP_SDW_CTRL_TRIG_SHIFT 0
364#define GP_SDW_CTRL_TRIG_MASK 1 << GP_SDW_CTRL_TRIG_SHIFT
365
366/* SP */
367#define SP_JMP 0x1000
368#define SP_COUNT 2 // One is normal SP, Other one is S_SP
369
370/* SHIFT MASK define see DC_GP_XX area */
371#define DC_SP_PIX_COMP_(i) (REG(0x5000) + SP_JMP * i)
372#define DC_SP_FRM_CTRL_(i) (REG(0x5004) + SP_JMP * i)
373#define DC_SP_FRM_SIZE_(i) (REG(0x5008) + SP_JMP * i)
374#define DC_SP_Y_BADDR_L_(i) (REG(0x500c) + SP_JMP * i)
375#define DC_SP_Y_BADDR_H_(i) (REG(0x5010) + SP_JMP * i)
376#define DC_SP_Y_STRIDE_(i) (REG(0x502c) + SP_JMP * i)
377
378#define DC_SP_FRM_OFFSET_(i) (REG(0x5040) + SP_JMP * i)
379
380/* RLE */
381#define DC_RLE_Y_LEN_(i) (REG(0x5100) + SP_JMP * i)
382#define RLE_Y_LEN_Y_SHIFT 0
383#define RLE_Y_LEN_Y_MASK 0xFFFFFF << RLE_Y_LEN_Y_SHIFT
384
385#define DC_RLE_Y_CHECK_SUM_(i) (REG(0x5110) + SP_JMP * i)
386#define RLE_Y_CHECK_SUM_Y_SHIFT 0
387#define RLE_Y_CHECK_SUM_Y_MASK 0xFFFFFFFF << RLE_Y_CHECK_SUM_Y_SHIFT
388
389#define DC_RLE_CTRL_(i) (REG(0x5120) + SP_JMP * i)
390#define RLE_DATA_SIZE_SHIFT 1
391#define RLE_DATA_SIZE_MASK 0x3 << RLE_DATA_SIZE_SHIFT
392#define RLE_EN_SHIFT 0
393#define RLE_EN_MASK 0x1 << RLE_EN_SHIFT
394
395#define DC_RLE_Y_CHECK_SUM_ST_(i) (REG(0x5130) + SP_JMP * i)
396#define DC_RLE_U_CHECK_SUM_ST_(i) (REG(0x5134) + SP_JMP * i)
397#define DC_RLE_V_CHECK_SUM_ST_(i) (REG(0x5138) + SP_JMP * i)
398#define DC_RLE_A_CHECK_SUM_ST_(i) (REG(0x513c) + SP_JMP * i)
399
400#define DC_RLE_INT_MASK_(i) (REG(0x5140) + SP_JMP * i)
401#define DC_RLE_INT_STATUS_(i) (REG(0x5144) + SP_JMP * i)
402#define DC_RLE_INT_V_ERR_SHIFT 3
403#define DC_RLE_INT_V_ERR_MASK 0x1 << RLE_INT_V_ERR_SHIFT
404#define DC_RLE_INT_U_ERR_SHIFT 2
405#define DC_RLE_INT_U_ERR_MASK 0x1 << RLE_INT_U_ERR_SHIFT
406#define DC_RLE_INT_Y_ERR_SHIFT 1
407#define DC_RLE_INT_Y_ERR_MASK 0x1 << RLE_INT_Y_ERR_SHIFT
408#define DC_RLE_INT_A_ERR_SHIFT 0
409#define DC_RLE_INT_A_ERR_MASK 0x1 << RLE_INT_A_ERR_SHIFT
410
411/* CLUT */
412#define DC_CLUT_A_CTRL_(i) (REG(0x5200) + SP_JMP * i)
413#define CLUT_HAS_ALPHA_SHIFT 18
414#define CLUT_HAS_ALPHA_MASK 0x1 << CLUT_HAS_ALPHA_SHIFT
415#define CLUT_A_Y_SEL_SHIFT 17
416#define CLUT_A_Y_SEL_MASK 0x1 << CLUT_A_Y_SEL_SHIFT
417#define CLUT_A_BYPASS_SHIFT 16
418#define CLUT_A_BYPASS_MASK 0x1 << CLUT_A_BYPASS_SHIFT
419#define CLUT_A_OFFSET_SHIFT 8
420#define CLUT_A_OFFSET_MASK 0xFF << CLUT_A_OFFSET_SHIFT
421#define CLUT_A_DEPTH_SHIFT 0
422#define CLUT_A_DEPTH_MASK 0xF << CLUT_A_DEPTH_SHIFT
423
424#define DC_CLUT_Y_CTRL_(i) (REG(0x5204) + SP_JMP * i)
425#define CLUT_Y_BYPASS_SHIFT 16
426#define CLUT_Y_BYPASS_MASK 0x1 << CLUT_Y_BYPASS_SHIFT
427#define CLUT_Y_OFFSET_SHIFT 8
428#define CLUT_Y_OFFSET_MASK 0xFF << CLUT_Y_OFFSET_SHIFT
429#define CLUT_Y_DEPTH_SHIFT 0
430#define CLUT_Y_DEPTH_MASK 0xF << CLUT_Y_DEPTH_SHIFT
431
432#define DC_CLUT_U_CTRL_(i) (REG(0x5208) + SP_JMP * i)
433#define CLUT_U_Y_SEL_SHIFT 17
434#define CLUT_U_Y_SEL_MASK 0x1 << CLUT_U_Y_SEL_SHIFT
435#define CLUT_U_BYPASS_SHIFT 16
436#define CLUT_U_BYPASS_MASK 0x1 << CLUT_U_BYPASS_SHIFT
437#define CLUT_U_OFFSET_SHIFT 8
438#define CLUT_U_OFFSET_MASK 0xFF << CLUT_U_OFFSET_SHIFT
439#define CLUT_U_DEPTH_SHIFT 0
440#define CLUT_U_DEPTH_MASK 0xF << CLUT_U_DEPTH_SHIFT
441
442#define DC_CLUT_V_CTRL_(i) (REG(0x520c) + SP_JMP * i)
443#define CLUT_V_Y_SEL_SHIFT 17
444#define CLUT_V_Y_SEL_MASK 0x1 << CLUT_V_Y_SEL_SHIFT
445#define CLUT_V_BYPASS_SHIFT 16
446#define CLUT_V_BYPASS_MASK 0x1 << CLUT_V_BYPASS_SHIFT
447#define CLUT_V_OFFSET_SHIFT 8
448#define CLUT_V_OFFSET_MASK 0xFF << CLUT_V_OFFSET_SHIFT
449#define CLUT_V_DEPTH_SHIFT 0
450#define CLUT_V_DEPTH_MASK 0xF << CLUT_V_DEPTH_SHIFT
451
452#define DC_CLUT_READ_CTRL_(i) (REG(0x5210) + SP_JMP * i)
453#define CLUT_APB_SEL_SHIFT 0
454#define CLUT_APB_SEL_MASK 0x1 << CLUT_APB_SEL_SHIFT
455
456#define DC_CLUT_BADDRL_(i) (REG(0x5214) + SP_JMP * i)
457#define CLUT_BADDRL_SHIFT 0
458#define CLIT_BADDRL_MASK 0xFFFFFFFF << CLUT_BADDRL_SHIFT
459
460#define DC_CLUT_BADDRH_(i) (REG(0x5218) + SP_JMP * i)
461#define CLUT_BADDRH_SHIFT 0
462#define CLIT_BADDRH_MASK 0xFF << CLUT_BADDRH_SHIFT
463
464#define DC_CLUT_LOAD_CTRL_(i) (REG(0x521c) + SP_JMP * i)
465#define CLUT_LOAD_CTRL_EN_SHIFT 0
466#define CLUT_LOAD_CTRL_EN_MASK 1 << CLUT_LOAD_CTRL_EN_SHIFT
467
468/* SP RST */
469#define DC_SP_SW_RST_(i) (REG(0x5e00) + SP_JMP * i)
470#define SP_SW_RST_SHIFT 0
471#define SP_SW_RST_MASK 1 << SP_SW_RST_SHIFT
472
473/* SP_SDW_CTRL */
474#define DC_SP_SDW_CTRL_(i) (REG(0x5f00) + SP_JMP * i)
475#define SP_SDW_CTRL_TRIG_SHIFT 0
476#define SP_SDW_CTRL_TRIG_MASK 0x1 << SP_SDW_CTRL_TRIG_SHIFT
477
478/* MLC */
479#define MLC_LAYER_JMP 0x30
480#define MLC_LAYER_COUNT 4
481#define MLC_PATH_JMP 0x4
482#define MLC_PATH_COUNT 5
483
484#define DC_MLC_SF_CTRL_(i) (REG(0x7000) + MLC_LAYER_JMP * (i))
485#define MLC_SF_PROT_VAL_SHIFT 8
486#define MLC_SF_PROT_VAL_MASK 0x3F << MLC_SF_PROT_VAL_SHIFT
487#define MLC_SF_VPOS_PROT_EN_SHIFT 7
488#define MLC_SF_VPOS_PROT_EN_MASK 0x1 << MLC_SF_VPOS_PROT_EN_SHIFT
489#define MLC_SF_SLOWDOWN_EN_SHIFT 6
490#define MLC_SF_SLOWDOWN_EN_MASK 0x1 << MLC_SF_SLOWDOWN_EN_SHIFT
491#define MLC_SF_AFLU_PSEL_SHIFT 5
492#define MLC_SF_AFLU_PSEL_MASK 0x1 << MLC_SF_AFLU_PSEL_SHIFT
493#define MLC_SF_AFLU_EN_SHIFT 4
494#define MLC_SF_AFLU_EN_MASK 0x1 << MLC_SF_AFLU_EN_SHIFT
495#define MLC_SF_CKEY_EN_SHIFT 3
496#define MLC_SF_CKEY_EN_MASK 0x1 << MLC_SF_CKEY_EN_SHIFT
497#define MLC_SF_G_ALPHA_EN_SHIFT 2
498#define MLC_SF_G_ALPHA_EN_MASK 0x1 << MLC_SF_G_ALPHA_EN_SHIFT
499#define MLC_SF_CROP_EN_SHIFT 1
500#define MLC_SF_CROP_EN_MASK 0x1 << MLC_SF_CROP_EN_SHIFT
501#define MLC_SF_EN_SHIFT 0
502#define MLC_SF_EN_MASK 0x1 << MLC_SF_EN_SHIFT
503
504#define DC_MLC_SF_H_SPOS_(i) (REG(0x7004) + MLC_LAYER_JMP * (i))
505#define MLC_SF_H_SPOS_H_SHIFT 0
506#define MLC_SF_H_SPOS_H_MASK 0x1FFFF << MLC_SF_H_SPOS_H_SHIFT
507
508#define DC_MLC_SF_V_SPOS_(i) (REG(0x7008) + MLC_LAYER_JMP * (i))
509#define MLC_SF_V_SPOS_V_SHIFT 0
510#define MLC_SF_V_SPOS_V_MASK 0x1FFFF << MLC_SF_V_SPOS_V_SHIFT
511
512#define DC_MLC_SF_SIZE_(i) (REG(0x700c) + MLC_LAYER_JMP * (i))
513#define MLC_SF_SIZE_V_SHIFT 16
514#define MLC_SF_SIZE_V_MASK 0xFFFF << MLC_SF_SIZE_V_SHIFT
515#define MLC_SF_SIZE_H_SHIFT 0
516#define MLC_SF_SIZE_H_MASK 0xFFFF << MLC_SF_SIZE_H_SHIFT
517
518#define DC_MLC_SF_CROP_H_POS_(i) (REG(0x7010) + MLC_LAYER_JMP * (i))
519#define DC_MLC_SF_CROP_V_POS_(i) (REG(0x7014) + MLC_LAYER_JMP * (i))
520#define MLC_SF_CROP_END_SHIFT 16
521#define MLC_SF_CROP_END_MASK 0xFFFF << MLC_SF_CROP_END_SHIFT
522#define MLC_SF_CROP_START_SHIFT 0
523#define MLC_SF_CROP_START_MASK 0xFFFF << MLC_SF_CROP_START_SHIFT
524
525#define DC_MLC_SF_G_ALPHA_(i) (REG(0x7018) + MLC_LAYER_JMP * (i))
526#define MLC_SF_G_ALPHA_A_SHIFT 0
527#define MLC_SF_G_ALPHA_A_MASK 0xFF << MLC_SF_G_ALPHA_A_SHIFT
528
529#define DC_MLC_SF_CKEY_ALPHA_(i) (REG(0x701c) + MLC_LAYER_JMP * (i))
530#define MLC_SF_CKEY_ALPHA_A_SHIFT 0
531#define MLC_SF_CKEY_ALPHA_A_MASK 0xFF << MLC_SF_CKEY_ALPHA_A_SHIFT
532
533#define DC_MLC_SF_CKEY_R_LV_(i) (REG(0x7020) + MLC_LAYER_JMP * (i))
534#define DC_MLC_SF_CKEY_G_LV_(i) (REG(0x7024) + MLC_LAYER_JMP * (i))
535#define DC_MLC_SF_CKEY_B_LV_(i) (REG(0x7028) + MLC_LAYER_JMP * (i))
536#define MLC_SF_CKEY_LV_UP_SHIFT 16
537#define MLC_SF_CKEY_LV_UP_MASK 0x3FF << MLC_SF_CKEY_LV_UP_SHIFT
538#define MLC_SF_CKEY_LV_DN_SHIFT 0
539#define MLC_SF_CKEY_LV_DN_MASK 0x3FF << MLC_SF_CKEY_LV_DN_SHIFT
540
541#define DC_MLC_SF_AFLU_TIME_(i) (REG(0x702c) + MLC_LAYER_JMP * (i))
542#define MLC_SF_AFLU_TIMER_SHIFT 0
543#define MLC_SF_AFLU_TIMER_MASK 0xFFFFFFFF << MLC_SF_AFLU_TIMER_SHIFT
544
545#define DC_MLC_PATH_CTRL_(i) (REG(0x7200) + MLC_PATH_JMP * (i))
546#define ALPHA_BLD_IDX_SHIFT 16
547#define ALPHA_BLD_IDX_MASK 0xF << ALPHA_BLD_IDX_SHIFT
548#define LAYER_OUT_IDX_SHIFT 0
549#define LAYER_OUT_IDX_MASK 0xF << LAYER_OUT_IDX_SHIFT
550
551#define DC_MLC_BG_CTRL REG(0x7220)
552#define BG_A_SHIFT 8
553#define BG_A_MASK 0xFF << BG_A_SHIFT
554#define AFLU_EN_SHIFT 7
555#define AFLU_EN_MASK 0x1 << AFLU_EN_SHIFT
556#define FSTART_SEL_SHIFT 4
557#define FSTART_SEL_MASK 0x7 << FSTART_SEL_SHIFT
558#define BG_A_SEL_SHIFT 2
559#define BG_A_SEL_MASK 0x1 << BG_A_SEL_SHIFT
560#define BG_EN_SHIFT 1
561#define BG_EN_MASK 0x1 << BG_EN_SHIFT
562#define ALPHA_BLD_BYPS_SHIFT 0
563#define ALPHA_BLD_BYPS_MASK 0x1 << ALPHA_BLD_BYPS_SHIFT
564
565#define DC_MLC_BG_COLOR REG(0x7224)
566#define BG_COLOR_R_SHIFT 20
567#define BG_COLOR_R_MASK 0x3FF << BG_COLOR_R_SHIFT
568#define BG_COLOR_G_SHIFT 10
569#define BG_COLOR_G_MASK 0x3FF << BG_COLOR_G_SHIFT
570#define BG_COLOR_B_SHIFT 0
571#define BG_COLOR_B_MASK 0x3FF << BG_COLOR_B_SHIFT
572
573#define DC_MLC_BG_AFLU_TIME REG(0x7228)
574#define MLC_BG_AFLU_TIMER_SHIFT 0
575#define MLC_BG_AFLU_TIMER_MASK 0xFFFFFFFF << MLC_BG_AFLU_TIMER_SHIFT
576
577#define DC_MLC_CANVAS_COLOR REG(0x7230)
578#define CANVAS_COLOR_R_SHIFT 20
579#define CANVAS_COLOR_R_MASK 0x3FF << CANVAS_COLOR_R_SHIFT
580#define CANVAS_COLOR_G_SHIFT 10
581#define CANVAS_COLOR_G_MASK 0x3FF << CANVAS_COLOR_G_SHIFT
582#define CANVAS_COLOR_B_SHIFT 0
583#define CANVAS_COLOR_B_MASK 0x3FF << CANVAS_COLOR_B_SHIFT
584
585#define DC_MLC_CLK_RATIO REG(0x7234)
586#define MLC_CLK_RATIO_SHIFT 0
587#define MLC_CLK_RATIO_MASK 0xFFFF << MLC_CLK_RATIO_SHIFT
588
589#define DC_MLC_INT_MASK REG(0x7240)
590#define MLC_MASK_ERR_L_5_SHIFT 12
591#define MLC_MASK_ERR_L_5_MASK 0x1 << MLC_MASK_ERR_L_5_SHIFT
592#define MLC_MASK_ERR_L_4_SHIFT 11
593#define MLC_MASK_ERR_L_4_MASK 0x1 << MLC_MASK_ERR_L_4_SHIFT
594#define MLC_MASK_ERR_L_3_SHIFT 10
595#define MLC_MASK_ERR_L_3_MASK 0x1 << MLC_MASK_ERR_L_3_SHIFT
596#define MLC_MASK_ERR_L_2_SHIFT 9
597#define MLC_MASK_ERR_L_2_MASK 0x1 << MLC_MASK_ERR_L_2_SHIFT
598#define MLC_MASK_ERR_L_1_SHIFT 8
599#define MLC_MASK_ERR_L_1_MASK 0x1 << MLC_MASK_ERR_L_1_SHIFT
600#define MLC_MASK_ERR_L_0_SHIFT 7
601#define MLC_MASK_ERR_L_0_MASK 0x1 << MLC_MASK_ERR_L_0_SHIFT
602#define MLC_MASK_FLU_L_5_SHIFT 6
603#define MLC_MASK_FLU_L_5_MASK 0x1 << MLC_MASK_FLU_L_5_SHIFT
604#define MLC_MASK_FLU_L_4_SHIFT 5
605#define MLC_MASK_FLU_L_4_MASK 0x1 << MLC_MASK_FLU_L_4_SHIFT
606#define MLC_MASK_FLU_L_3_SHIFT 4
607#define MLC_MASK_FLU_L_3_MASK 0x1 << MLC_MASK_FLU_L_3_SHIFT
608#define MLC_MASK_FLU_L_2_SHIFT 3
609#define MLC_MASK_FLU_L_2_MASK 0x1 << MLC_MASK_FLU_L_2_SHIFT
610#define MLC_MASK_FLU_L_1_SHIFT 2
611#define MLC_MASK_FLU_L_1_MASK 0x1 << MLC_MASK_FLU_L_1_SHIFT
612#define MLC_MASK_FLU_L_0_SHIFT 1
613#define MLC_MASK_FLU_L_0_MASK 0x1 << MLC_MASK_FLU_L_0_SHIFT
614#define MLC_MASK_FRM_END_SHIFT 0
615#define MLC_MASK_FRM_END_MASK 0x1 << MLC_MASK_FRM_END_SHIFT
616
617#define DC_MLC_INT_STATUS REG(0x7244)
618#define MLC_S_SLOWD_L_5_SHIFT 27
619#define MLC_S_SLOWD_L_5_MASK 0x1 << MLC_S_SLOWD_L_5_SHIFT
620#define MLC_S_SLOWD_L_4_SHIFT 26
621#define MLC_S_SLOWD_L_4_MASK 0x1 << MLC_S_SLOWD_L_4_SHIFT
622#define MLC_S_SLOWD_L_3_SHIFT 25
623#define MLC_S_SLOWD_L_3_MASK 0x1 << MLC_S_SLOWD_L_3_SHIFT
624#define MLC_S_SLOWD_L_2_SHIFT 24
625#define MLC_S_SLOWD_L_2_MASK 0x1 << MLC_S_SLOWD_L_2_SHIFT
626#define MLC_S_SLOWD_L_1_SHIFT 23
627#define MLC_S_SLOWD_L_1_MASK 0x1 << MLC_S_SLOWD_L_1_SHIFT
628#define MLC_S_SLOWD_L_0_SHIFT 22
629#define MLC_S_SLOWD_L_0_MASK 0x1 << MLC_S_SLOWD_L_0_SHIFT
630#define MLC_S_CROP_E_L_5_SHIFT 21
631#define MLC_S_CROP_E_L_5_MASK 0x1 << MLC_S_CROP_E_L_5_SHIFT
632#define MLC_S_CROP_E_L_4_SHIFT 20
633#define MLC_S_CROP_E_L_4_MASK 0x1 << MLC_S_CROP_E_L_4_SHIFT
634#define MLC_S_CROP_E_L_3_SHIFT 19
635#define MLC_S_CROP_E_L_3_MASK 0x1 << MLC_S_CROP_E_L_3_SHIFT
636#define MLC_S_CROP_E_L_2_SHIFT 18
637#define MLC_S_CROP_E_L_2_MASK 0x1 << MLC_S_CROP_E_L_2_SHIFT
638#define MLC_S_CROP_E_L_1_SHIFT 17
639#define MLC_S_CROP_E_L_1_MASK 0x1 << MLC_S_CROP_E_L_1_SHIFT
640#define MLC_S_CROP_E_L_0_SHIFT 16
641#define MLC_S_CROP_E_L_0_MASK 0x1 << MLC_S_CROP_E_L_0_SHIFT
642#define MLC_S_E_L_5_SHIFT 12
643#define MLC_S_E_L_5_MASK 0x1 << MLC_S_E_L_5_SHIFT
644#define MLC_S_E_L_4_SHIFT 11
645#define MLC_S_E_L_4_MASK 0x1 << MLC_S_E_L_4_SHIFT
646#define MLC_S_E_L_3_SHIFT 10
647#define MLC_S_E_L_3_MASK 0x1 << MLC_S_E_L_3_SHIFT
648#define MLC_S_E_L_2_SHIFT 9
649#define MLC_S_E_L_2_MASK 0x1 << MLC_S_E_L_2_SHIFT
650#define MLC_S_E_L_1_SHIFT 8
651#define MLC_S_E_L_1_MASK 0x1 << MLC_S_E_L_1_SHIFT
652#define MLC_S_E_L_0_SHIFT 7
653#define MLC_S_E_L_0_MASK 0x1 << MLC_S_E_L_0_SHIFT
654#define MLC_S_FLU_L_5_SHIFT 6
655#define MLC_S_FLU_L_5_MASK 0x1 << MLC_S_FLU_L_5_SHIFT
656#define MLC_S_FLU_L_4_SHIFT 5
657#define MLC_S_FLU_L_4_MASK 0x1 << MLC_S_FLU_L_4_SHIFT
658#define MLC_S_FLU_L_3_SHIFT 4
659#define MLC_S_FLU_L_3_MASK 0x1 << MLC_S_FLU_L_3_SHIFT
660#define MLC_S_FLU_L_2_SHIFT 3
661#define MLC_S_FLU_L_2_MASK 0x1 << MLC_S_FLU_L_2_SHIFT
662#define MLC_S_FLU_L_1_SHIFT 2
663#define MLC_S_FLU_L_1_MASK 0x1 << MLC_S_FLU_L_1_SHIFT
664#define MLC_S_FLU_L_0_SHIFT 1
665#define MLC_S_FLU_L_0_MASK 0x1 << MLC_S_FLU_L_0_SHIFT
666#define MLC_S_FRM_END_SHIFT 0
667#define MLC_S_FRM_END_MASK 0x1 << MLC_S_FRM_END_SHIFT
668
669#define MLC_SF_CTRL_S_(i) (REG(0x8000) + MLC_LAYER_JMP * (i))
670#define MLC_SF_H_SPOS_S_(i) (REG(0x8004) + MLC_LAYER_JMP * (i))
671#define MLC_SF_V_SPOS_S_(i) (REG(0x8008) + MLC_LAYER_JMP * (i))
672#define MLC_SF_SIZE_S_(i) (REG(0x800c) + MLC_LAYER_JMP * (i))
673#define MLC_SF_CROP_H_POS_S_(i) (REG(0x8010) + MLC_LAYER_JMP * (i))
674#define MLC_SF_CROP_V_POS_S_(i) (REG(0x8014) + MLC_LAYER_JMP * (i))
675#define MLC_SF_G_ALPHA_S_(i) (REG(0x8018) + MLC_LAYER_JMP * (i))
676#define MLC_SF_CKEY_ALPHA_S_(i) (REG(0x801c) + MLC_LAYER_JMP * (i))
677#define MLC_SF_CKEY_R_LV_S_(i) (REG(0x8020) + MLC_LAYER_JMP * (i))
678#define MLC_SF_CKEY_G_LV_S_(i) (REG(0x8024) + MLC_LAYER_JMP * (i))
679#define MLC_SF_CKEY_B_LV_S_(i) (REG(0x8028) + MLC_LAYER_JMP * (i))
680#define MLC_SF_AFLU_TIME_S_(i) (REG(0x802c) + MLC_LAYER_JMP * (i))
681#define MLC_PATH_CTRL_S_(i) (REG(0x8200) + MLC_PATH_JMP * (i))
682#define MLC_BG_CTRL_S REG(0x8220)
683#define MLC_BG_COLOR_S REG(0x8224)
684#define MLC_BG_AFLU_TIME_S REG(0x8228)
685#define MLC_CANVAS_COLOR_S REG(0x8230)
686#define MLC_CLK_RATIO_S REG(0x8234)
687#define MLC_INT_MASK_S REG(0x8240)
688#define MLC_INT_STATUS_S REG(0x8244)
689
690/* TCON */
691#define KICK_LAYER_JMP 0x8
692#define KICK_LAYER_COUNT 7
693
694#define TCON_H_PARA_1 REG(0x9000)
695#define TCON_HACT_SHIFT 16
696#define TCON_HACT_MASK (unsigned int)0xFFFF << TCON_HACT_SHIFT
697#define TCON_HTOL_SHIFT 0
698#define TCON_HTOL_MASK 0xFFFF << TCON_HTOL_SHIFT
699
700#define TCON_H_PARA_2 REG(0x9004)
701#define TCON_HSBP_SHIFT 16
702#define TCON_HSBP_MASK (unsigned int)0xFFFF << TCON_HSBP_SHIFT
703#define TCON_HSYNC_SHIFT 0
704#define TCON_HSYNC_MASK 0xFFFF << TCON_HSYNC_SHIFT
705
706#define TCON_V_PARA_1 REG(0x9008)
707#define TCON_VACT_SHIFT 16
708#define TCON_VACT_MASK (unsigned int)0xFFFF << TCON_VACT_SHIFT
709#define TCON_VTOL_SHIFT 0
710#define TCON_VTOL_MASK 0xFFFF << TCON_VTOL_SHIFT
711
712#define TCON_V_PARA_2 REG(0x900c)
713#define TCON_VSBP_SHIFT 16
714#define TCON_VSBP_MASK (unsigned int)0xFFFF << TCON_VSBP_SHIFT
715#define TCON_VSYNC_SHIFT 0
716#define TCON_VSYNC_MASK 0xFFFF << TCON_VSYNC_SHIFT
717
718#define TCON_CTRL REG(0x9010)
719#define TCON_PIX_SCR_SHIFT 6
720#define TCON_PIX_SCR_MASK 0x3 << TCON_PIX_SCR_SHIFT
721#define TCON_DSP_CLK_EN_SHIFT 5
722#define TCON_DSP_CLK_EN_MASK 0x1 << TCON_DSP_CLK_EN_SHIFT
723#define TCON_DSP_CLK_POL_SHIFT 4
724#define TCON_DSP_CLK_POL_MASK 0x1 << TCON_DSP_CLK_POL_SHIFT
725#define TCON_DE_POL_SHITF 3
726#define TCON_DE_POL_MASK 0x1 << TCON_DE_POL_SHITF
727#define TCON_VSYNC_POL_SHIFT 2
728#define TCON_VSYNC_POL_MASK 0x1 << TCON_VSYNC_POL_SHIFT
729#define TCON_HSYNC_POL_SHIFT 1
730#define TCON_HSYNC_POL_MASK 0x1 << TCON_HSYNC_POL_SHIFT
731#define TCON_EN_SHIFT 0
732#define TCON_EN_MASK 0x1 << TCON_EN_SHIFT
733
734#define TCON_LAYER_KICK_COOR_(i) (REG(0x9020) + KICK_LAYER_JMP * (i))
735#define TCON_LAYER_KICK_Y_SHIFT 16
736#define TCON_LAYER_KICK_Y_MASK (unsigned int)0xFFFF << TCON_LAYER_KICK_Y_SHIFT
737#define TCON_LAYER_KICK_X_SHIFT 0
738#define TCON_LAYER_KICK_X_MASK 0xFFFF << TCON_LAYER_KICK_X_SHIFT
739
740#define TCON_LAYER_KICK_EN_(i) (REG(0x9024) + KICK_LAYER_JMP * (i))
741#define TCON_LAYER_KICK_EN_SHIFT 0
742#define TCON_LAYER_KICK_EN_MASK 0x1 << TCON_LAYER_KICK_EN_SHIFT
743
744#define TCON_UNDERRUN_CNT REG(0x9100)
745#define TCON_UNDERRUN_S_SHIFT 0
746#define TCON_UNDERRUN_S_MASK 0xFFFFFFFF << TCON_UNDERRUN_S_SHIFT
747
748#define TCON_CSI_FRAM_LOCK_CTRL REG(0x9500)
749#define TCON_DE_DLY_SHIFT 16
750#define TCON_DE_DLY_MASK (unsigned int)0xFFFF << TCON_DE_DLY_SHIFT
751#define AUTO_ADJ_EN_SHIFT 8
752#define AUTO_ADJ_EN_MASK 0x1 << AUTO_ADJ_EN_SHIFT
753#define FRM_RATIO_SHIFT 4
754#define FRM_RATIO_MASK 0x3 << FRM_RATIO_SHIFT
755#define VS_MASK_SHIFT 2
756#define VS_MASK_MASK 0x3 << VS_MASK_SHIFT
757#define VS_POL_SHIFT 1
758#define VS_POL_MASK 0x1 << VS_POL_SHIFT
759#define HS_POL_SHIFT 0
760#define HS_POL_MASK 0x1 << HS_POL_SHIFT
761
762#define TCON_CSI_TIMING_DETECT REG(0x9504)
763#define TCON_CSI_HTOL REG(0x9510)
764#define TCON_CSI_VTOL REG(0x9514)
765#define TCON_CSI_VSBP REG(0x9518)
766#define TCON_CSI_VSYNC REG(0x951C)
767#define TCON_VSYNC_COUNT REG(0x9520)
768/* TCON SDW */
769#define TCON_SDW_CONTROL REG(0x9600)
770#define TCON_SDW_CTRL_TRIG_SHIFT 0
771#define TCON_SDW_CTRL_TRIG_MASK 0x1 << TCON_SDW_CTRL_TRIG_SHIFT
772
773/* DC_CSC */
774#define DC_DC_CSC_CTRL REG(0xa000)
775#define DC_CSC_ALPHA_SHIFT 2
776#define DC_CSC_ALPHA_MASK 0x1 << DC_CSC_ALPHA_SHIFT
777#define DC_CSC_SBUP_CONV_SHIFT 1
778#define DC_CSC_SBUP_CONV_MASK 0x1 << DC_CSC_SBUP_CONV_SHIFT
779#define DC_CSC_BYPASS_SHIFT 0
780#define DC_CSC_BYPASS_MASK 0x1 << DC_CSC_BYPASS_SHIFT
781
782#define DC_DC_CSC_COEF1 REG(0xa004)
783#define DC_CSC_COEF1_A01_SHIFT 16
784#define DC_CSC_COEF1_A01_MASK 0x3FFF << DC_CSC_COEF1_A01_SHIFT
785#define DC_CSC_COEF1_A00_SHIFT 0
786#define DC_CSC_COEF1_A00_MASK 0x3FFF << DC_CSC_COEF1_A00_SHIFT
787
788#define DC_DC_CSC_COEF2 REG(0xa008)
789#define DC_CSC_COEF2_A10_SHIFT 16
790#define DC_CSC_COEF2_A10_MASK 0x3FFF << DC_CSC_COEF2_A10_SHIFT
791#define DC_CSC_COEF2_A02_SHIFT 0
792#define DC_CSC_COEF2_A02_MASK 0x3FFF << DC_CSC_COEF2_A02_SHIFT
793
794#define DC_DC_CSC_COEF3 REG(0xa00c)
795#define DC_CSC_COEF3_A12_SHIFT 16
796#define DC_CSC_COEF3_A12_MASK 0x3FFF << DC_CSC_COEF3_A12_SHIFT
797#define DC_CSC_COEF3_A11_SHIFT 0
798#define DC_CSC_COEF3_A11_MASK 0x3FFF << DC_CSC_COEF3_A11_SHIFT
799
800#define DC_DC_CSC_COEF4 REG(0xa010)
801#define DC_CSC_COEF4_A21_SHIFT 16
802#define DC_CSC_COEF4_A21_MASK 0x3FFF << DC_CSC_COEF4_A21_SHIFT
803#define DC_CSC_COEF4_A20_SHIFT 0
804#define DC_CSC_COEF4_A20_MASK 0x3FFF << DC_CSC_COEF4_A20_SHIFT
805
806#define DC_DC_CSC_COEF5 REG(0xa014)
807#define DC_CSC_COEF5_B0_SHIFT 16
808#define DC_CSC_COEF5_B0_MASK 0x3FFF << DC_CSC_COEF5_B0_SHIFT
809#define DC_CSC_COEF5_A22_SHIFT 0
810#define DC_CSC_COEF5_A22_MASK 0x3FFF << DC_CSC_COEF5_A22_SHIFT
811
812#define DC_DC_CSC_COEF6 REG(0xa018)
813#define DC_CSC_COEF6_B2_SHIFT 16
814#define DC_CSC_COEF6_B2_MASK 0x3FFF << DC_CSC_COEF6_B2_SHIFT
815#define DC_CSC_COEF6_B1_SHIFT 0
816#define DC_CSC_COEF6_B1_MASK 0x3FFF << DC_CSC_COEF6_B1_SHIFT
817
818#define DC_DC_CSC_COEF7 REG(0xa01c)
819#define DC_CSC_COEF7_C1_SHIFT 16
820#define DC_CSC_COEF7_C1_MASK 0x3FF << DC_CSC_COEF7_C1_SHIFT
821#define DC_CSC_COEF7_C0_SHIFT 0
822#define DC_CSC_COEF7_C0_MASK 0x3FF << DC_CSC_COEF7_C0_SHIFT
823
824#define DC_DC_CSC_COEF8 REG(0xa020)
825#define DC_CSC_COEF8_C2_SHIFT 0
826#define DC_CSC_COEF8_C2_MASK 0x3FF << DC_CSC_COEF8_C2_SHIFT
827
828#define GAMMA_CTRL REG(0xc000)
829#define GAMMA_APB_RD_TO_SHIFT 8
830#define GAMMA_APB_RD_TO_MASK 0xFF << GAMMA_APB_RD_TO_SHIFT
831#define GMMA_BYPASS_SHIFT 0
832#define GMMA_BYPASS_MASK 0x1 << GMMA_BYPASS_SHIFT
833
834#define DITHER_CTRL REG(0xc004)
835#define DITHER_V_DEP_SHIFT 16
836#define DITHER_V_DEP_MASK 0xF << DITHER_V_DEP_SHIFT
837#define DITHER_U_DEP_SHIFT 12
838#define DITHER_U_DEP_MASK 0xF << DITHER_U_DEP_SHIFT
839#define DITHER_Y_DEP_SHIFT 8
840#define DITHER_Y_DEP_MASK 0xF << DITHER_Y_DEP_SHIFT
841#define DITHER_MODE_12_SHIFT 6
842#define DITHER_MODE_12_MASK 0x1 << DITHER_MODE_12_SHIFT
843#define DITHER_SPA_LSB_EXP_MODE_SHIFT 4
844#define DITHER_SPA_LSB_EXP_MODE_MASK 0x3 << DITHER_SPA_LSB_EXP_MODE_SHIFT
845#define DITHER_SPA_1ST_SHIFT 3
846#define DITHER_SPA_1ST_MASK 0x3 << DITHER_SPA_1ST_SHIFT
847#define DITHER_SPA_EN_SHIFT 2
848#define DITHER_SPA_EN_MASK 0x1 << DITHER_SPA_EN_SHIFT
849#define DITHER_TEM_EN_SHIFT 1
850#define DITHER_TEM_EN_MASK 0x1 << DITHER_TEM_EN_SHIFT
851#define DITHER_BYPASS_SHIFT 0
852#define DITHER_BYPASS_MASK 0x1 << DITHER_BYPASS_SHIFT
853
854/* CRC32 */
855#define CRC_BLK_JMP 0x4
856#define CRC_BLK_COUNT 8
857
858#define CRC32_CTRL REG(0xe000)
859#define CRC32_VSYNC_POL_SHIFT 9
860#define CRC32_VSYNC_POL_MASK 0x1 << CRC32_VSYNC_POL_SHIFT
861#define CRC32_HSYNC_POL_SHIFT 8
862#define CRC32_HSYNC_POL_MASK 0x1 << CRC32_HSYNC_POL_SHIFT
863#define CRC32_DATA_EN_POL_SHIFT 7
864#define CRC32_DATA_EN_POL_MASK 0x1 << CRC32_DATA_EN_POL_SHIFT
865#define CRC32_GLOBAL_ENABLE_SHIFT 0
866#define CRC32_GLOBAL_ENABLE_MASK 0x1 << CRC32_GLOBAL_ENABLE_SHIFT
867
868#define CRC32_INT_ST REG(0xe004)
869#define CRC32_INT_MASK REG(0xe008)
870#define CRC_ERROR_7_SHIFT 15
871#define CRC_ERROR_7_MASK 0x1 << CRC_ERROR_7_SHIFT
872#define CRC_ERROR_6_SHIFT 14
873#define CRC_ERROR_6_MASK 0x1 << CRC_ERROR_6_SHIFT
874#define CRC_ERROR_5_SHIFT 13
875#define CRC_ERROR_5_MASK 0x1 << CRC_ERROR_5_SHIFT
876#define CRC_ERROR_4_SHIFT 12
877#define CRC_ERROR_4_MASK 0x1 << CRC_ERROR_4_SHIFT
878#define CRC_ERROR_3_SHIFT 11
879#define CRC_ERROR_3_MASK 0x1 << CRC_ERROR_3_SHIFT
880#define CRC_ERROR_2_SHIFT 10
881#define CRC_ERROR_2_MASK 0x1 << CRC_ERROR_2_SHIFT
882#define CRC_ERROR_1_SHIFT 9
883#define CRC_ERROR_1_MASK 0x1 << CRC_ERROR_1_SHIFT
884#define CRC_ERROR_0_SHIFT 8
885#define CRC_ERROR_0_MASK 0x1 << CRC_ERROR_0_SHIFT
886#define CRC_DONE_7_SHIFT 7
887#define CRC_DONE_7_MASK 0x1 << CRC_DONE_7_SHIFT
888#define CRC_DONE_6_SHIFT 6
889#define CRC_DONE_6_MASK 0x1 << CRC_DONE_6_SHIFT
890#define CRC_DONE_5_SHIFT 5
891#define CRC_DONE_5_MASK 0x1 << CRC_DONE_5_SHIFT
892#define CRC_DONE_4_SHIFT 4
893#define CRC_DONE_4_MASK 0x1 << CRC_DONE_4_SHIFT
894#define CRC_DONE_3_SHIFT 3
895#define CRC_DONE_3_MASK 0x1 << CRC_DONE_3_SHIFT
896#define CRC_DONE_2_SHIFT 2
897#define CRC_DONE_2_MASK 0x1 << CRC_DONE_2_SHIFT
898#define CRC_DONE_1_SHIFT 1
899#define CRC_DONE_1_MASK 0x1 << CRC_DONE_1_SHIFT
900#define CRC_DONE_0_SHIFT 0
901#define CRC_DONE_0_MASK 0x1 << CRC_DONE_0_SHIFT
902
903#define CRC32_BLOCK_CTRL0_(i) (REG(0xe010) + CRC_BLK_JMP * (i))
904#define CRC32_BLOCK_ENABLE_SHIFT 31
905#define CRC32_BLOCK_ENABLE_MASK (unsigned int)0x1 << CRC32_BLOCK_ENABLE_SHIFT
906#define CRC32_BLOCK_LOCK_SHIFT 30
907#define CRC32_BLOCK_LOCK_MASK 0X1 << CRC32_BLOCK_LOCK_SHIFT
908#define CRC32_POS_START_Y_SHIFT 16
909#define CRC32_POS_START_Y_MASK 0x3FFF << CRC32_POS_START_Y_SHIFT
910#define CRC32_POS_START_X_SHIFT 0
911#define CRC32_POS_START_X_MASK 0x3FFF << CRC32_POS_START_X_SHIFT
912
913#define CRC32_BLOCK_CTRL1_(i) (REG(0xe014) + CRC_BLK_JMP * (i))
914#define CRC32_POS_END_Y_SHIFT 16
915#define CRC32_POS_END_Y_MASK 0x3FFF << CRC32_POS_END_Y_SHIFT
916#define CRC32_POS_END_X_SHIFT 0
917#define CRC32_POS_END_X_MASK 0x3FFF << CRC32_POS_END_X_SHIFT
918
919#define CRC32_BLOCK_EXPECT_DATA_(i) (REG(0xe018) + CRC_BLK_JMP * (i))
920#define CRC32_EXPECT_DATA_SHIFT 0
921#define CRC32_EXPECT_DATA_MASK 0xFFFFFFFF << CRC32_EXPECT_DATA_SHIFT
922
923#define CRC32_BLOCK_RESULT_DATA_(i) (REG(0xe01c) + CRC_BLK_JMP * (i))
924#define CRC32_RESULT_DATA_SHIFT 0
925#define CRC32_RESULT_DATA_MASK 0xFFFFFFFF << CRC32_RESULT_DATA_SHIFT
926
927#endif /* DC_REG_H__ */