SemiDrive SSDK Appication Program Interface PTG3.0
gama_regs.h
Go to the documentation of this file.
1
9#ifndef __GAMA_REGS_H__
10#define __GAMA_REGS_H__
11
12#define GAMA_LB_JUMP 0x00200000
13#define GAMA_IB_JUMP 0x00100000
14#define GAMA_IRQST_JUMP 0x000F0000
15#define GAMA_ASW_JUMP 0x00030000
16#define GAMA_DMA_JUMP 0x00020000
17#define GAMA_FRS_JUMP 0x00011000
18#define GAMA_VS_JUMP 0x00010000
19#define GAMA_STN_CFG_JUMP 0x00000000
20
21#define ASW_REG(x) ((x) + GAMA_ASW_JUMP)
22
23/* GAMA ASW registers (RMW mode) definition */
24
25/* ASW_FCTRL */
26#define ASW_FCTRL ASW_REG(0x0)
27#define ASW_M2M_FS_SHIFT 0
28#define ASW_M2M_FS_MASK 0x1 << ASW_M2M_FS_SHIFT
29
30/*ASW_SOFT_RESET*/
31#define ASW_SOFT_RESET ASW_REG(0x4)
32#define ASW_SOFT_RESET_SHIFT 0
33#define ASW_SOFT_RESET_MASK 0x1 << ASW_SOFT_RESET_SHIFT
34
35/*ASW_PARA_SET*/
36#define ASW_PARA_SET ASW_REG(0x8)
37#define CSI_LN_START_ASW_SHIFT 20
38#define CSI_LN_START_ASW_MASK 0xFFFUL << CSI_LN_START_ASW_SHIFT
39#define ASW_DC_BUF_SIZE_SHIFT 12
40#define ASW_DC_BUF_SIZE_MASK 0x3 << ASW_DC_BUF_SIZE_SHIFT
41#define EXT_LUT_FORMAT_SHIFT 11
42#define EXT_LUT_FORMAT_MASK 0x1 << EXT_LUT_FORMAT_SHIFT
43#define EXT_CSPLINE_EN_SHIFT 10
44#define EXT_CSPLINE_EN_MASK 0x1 << EXT_CSPLINE_EN_SHIFT
45#define WORK_MODE_SHIFT 8
46#define WORK_MODE_MASK 0x3 << WORK_MODE_SHIFT
47#define CACHE_N_WAY_SHIFT 4
48#define CACHE_N_WAY_MASK 0xF << CACHE_N_WAY_SHIFT
49#define C_ENTRY_TYPE_SHIFT 1
50#define C_ENTRY_TYPE_MASK 0x7 << C_ENTRY_TYPE_SHIFT
51#define LUT_INTERP_MODE_SHIFT 0
52#define LUT_INTERP_MODE_MASK 0x1 << LUT_INTERP_MODE_SHIFT
53
54/*ASW_PARA_SET1*/
55#define ASW_PARA_SET1 ASW_REG(0xc)
56#define UV_V_OFFSET_SHIFT 12
57#define UV_V_OFFSET_MASK 0x3 << UV_V_OFFSET_SHIFT
58#define UV_H_OFFSET_SHIFT 10
59#define UV_H_OFFSET_MASK 0x3 << UV_H_OFFSET_SHIFT
60#define ADB_OFFSET_SHIFT 4
61#define ADB_OFFSET_MASK 0x3F << ADB_OFFSET_SHIFT
62#define ADB_SLOPE_SHIFT 0
63#define ADB_SLOPE_MASK 0xF << ADB_SLOPE_SHIFT
64
65/*ASW_SRC_RES*/
66#define ASW_SRC_RES ASW_REG(0x10)
67#define SRC_RES_VSIZE_SHIFT 16
68#define SRC_RES_VSIZE_MASK 0xFFF << SRC_RES_VSIZE_SHIFT
69#define SRC_RES_HSIZE_SHIFT 0
70#define SRC_RES_HSIZE_MASK 0xFFF << SRC_RES_HSIZE_SHIFT
71
72/*ASW_DES_RES*/
73#define ASW_DES_RES ASW_REG(0x14)
74#define DES_RES_VSIZE_SHIFT 16
75#define DES_RES_VSIZE_MASK 0xFFF << DES_RES_VSIZE_SHIFT
76#define DES_RES_HSIZE_SHIFT 0
77#define DES_RES_HSIZE_MASK 0xFFF << DES_RES_HSIZE_SHIFT
78
79/*ASW_IMG_FMT*/
80#define ASW_IMG_FMT ASW_REG(0x18)
81#define DES_VFLIP_SHIFT 25
82#define DES_VFLIP_MASK 0x1 << DES_VFLIP_SHIFT
83#define DES_HFLIP_SHIFT 24
84#define DES_HFLIP_MASK 0x1 << DES_HFLIP_SHIFT
85#define DES_FMT_SHIFT 16
86#define DES_FMT_MASK 0xF << DES_FMT_SHIFT
87#define SRC_VFLIP_SHIFT 9
88#define SRC_VFLIP_MASK 0x1 << SRC_VFLIP_SHIFT
89#define SRC_HFLIP_SHIFT 8
90#define SRC_HFLIP_MASK 0x1 << SRC_HFLIP_SHIFT
91#define SRC_FMT_SHIFT 0
92#define SRC_FMT_MASK 0xF << SRC_FMT_SHIFT
93
94/*ASW_CFG_PROT*/
95#define ASW_CFG_PORT ASW_REG(0x1c)
96#define ADR_PORT_BIT_SHIFT 1
97#define ADR_PORT_BIT_MASK 0x1 << ADR_PORT_BIT_SHIFT
98#define CFG_PORT_BIT_SHIFT 0
99#define CFG_PORT_BIT_MASK 0x1 << CFG_PORT_BIT_SHIFT
100
101/*ASW_LUT_SIZE*/
102#define ASW_LUT_SIZE ASW_REG(0x20)
103#define LUT_SIZE_HEIGHT_SHIFT 16
104#define LUT_SIZE_HEIGHT_MASK 0x3FF << LUT_SIZE_HEIGHT_SHIFT
105#define LUT_SIZE_WIDTH_SHIFT 0
106#define LUT_SIZE_WIDTH_MASK 0x3FF << LUT_SIZE_WIDTH_SHIFT
107
108/*ASW_LUT_STEP*/
109#define ASW_LUT_STEP ASW_REG(0x24)
110#define LUT_STEP_VVAL_SHIFT 16
111#define LUT_STEP_VVAL_MASK 0xFFF << LUT_STEP_VVAL_SHIFT
112#define LUT_STEP_HVAL_SHIFT 0
113#define LUT_STEP_HVAL_MASK 0xFFF << LUT_STEP_HVAL_SHIFT
114
115/*ASW_LUT_SETPH_RECP*/
116#define ASW_LUT_SETPH_RECP ASW_REG(0x28)
117#define LUT_SETPH_RECP_VAL_SHIFT 0
118#define LUT_SETPH_RECP_VAL_MASK 0xFFFFF << LUT_SETPH_RECP_VAL_SHIFT
119
120/*ASW_LUT_SETPV_RECP*/
121#define ASW_LUT_SETPV_RECP ASW_REG(0x2c)
122#define LUT_SETPV_RECP_VAL_SHIFT 0
123#define LUT_SETPV_RECP_VAL_MASK 0xFFFFF << LUT_SETPV_RECP_VAL_SHIFT
124
125/*ASW_POS_CALC_PFILE_BA*/
126#define ASW_POS_CALC_PFILE_BA ASW_REG(0x30)
127
128/*ASW_POS_LUT_BA*/
129#define ASW_POS_LUT_BA ASW_REG(0x34)
130
131/*ASW_POS_M_V_BA*/
132#define ASW_POS_M_V_BA ASW_REG(0x38)
133
134/*ASW_RY_CACHE_BA*/
135#define ASW_RY_CACHE_BA ASW_REG(0x40)
136
137/*ASW_GU_CACHE_BA*/
138#define ASW_GU_CACHE_BA ASW_REG(0x44)
139
140/*ASW_BV_CACHE_BA*/
141#define ASW_BV_CACHE_BA ASW_REG(0x48)
142
143/*ASW_A_CACHE_BA*/
144#define ASW_A_CACHE_BA ASW_REG(0x4c)
145
146/*ASW_PIX_R_BA*/
147#define ASW_PIX_R_BA ASW_REG(0x50)
148
149/*ASW_PIX_R_STRIDE*/
150#define ASW_PIX_R_STRIDE ASW_REG(0x58)
151
152/*ASW_SRC_RY_BA*/
153#define ASW_SRC_RY_BA ASW_REG(0x60)
154
155/*ASW_SRC_GU_BA*/
156#define ASW_SRC_GU_BA ASW_REG(0x64)
157
158/*ASW_SRC_BV_BA*/
159#define ASW_SRC_BV_BA ASW_REG(0x68)
160
161/*ASW_SRC_RY_STRIDE*/
162#define ASW_SRC_RY_STRIDE ASW_REG(0x6c)
163
164/*ASW_SRC_GU_STRIDE*/
165#define ASW_SRC_GU_STRIDE ASW_REG(0x70)
166
167/*ASW_SRC_BV_STRIDE*/
168#define ASW_SRC_BV_STRIDE ASW_REG(0x74)
169
170/*ASW_DES_BA*/
171#define ASW_DES_BA ASW_REG(0x80)
172
173/*ASW_DES_STRIDE*/
174#define ASW_DES_STRIDE ASW_REG(0x84)
175
176/*ASW_DES_BG_COLOR*/
177#define ASW_DES_BG_COLOR ASW_REG(0x88)
178#define DES_BG_COLOR_A_VAL_SHIFT 24
179#define DES_BG_COLOR_A_VAL_MASK 0xFF << DES_BG_COLOR_A_VAL_SHIFT
180#define DES_BG_COLOR_B_VAL_SHIFT 16
181#define DES_BG_COLOR_B_VAL_MASK 0xFF << DES_BG_COLOR_B_VAL_SHIFT
182#define DES_BG_COLOR_G_VAL_SHIFT 8
183#define DES_BG_COLOR_G_VAL_MASK 0xFF << DES_BG_COLOR_G_VAL_SHIFT
184#define DES_BG_COLOR_R_VAL_SHIFT 0
185#define DES_BG_COLOR_R_VAL_MASK 0xFF << DES_BG_COLOR_R_VAL_SHIFT
186
187/*ASW_EXT_MLUT_RX_BA*/
188#define ASW_EXT_MLUT_RX_BA ASW_REG(0x90)
189
190/*ASW_EXT_MLUT_RY_BA*/
191#define ASW_EXT_MLUT_RY_BA ASW_REG(0x94)
192
193/*ASW_EXT_MLUT_GX_BA*/
194#define ASW_EXT_MLUT_GX_BA ASW_REG(0x98)
195
196/*ASW_EXT_MLUT_GY_BA*/
197#define ASW_EXT_MLUT_GY_BA ASW_REG(0x9c)
198
199/*ASW_EXT_MLUT_BX_BA*/
200#define ASW_EXT_MLUT_BX_BA ASW_REG(0xa0)
201
202/*ASW_EXT_MLUT_BY_BA*/
203#define ASW_EXT_MLUT_BY_BA ASW_REG(0xa4)
204
205/*ASW_EXT_MLUT_RX_STRIDE*/
206#define ASW_EXT_MLUT_RX_STRIDE ASW_REG(0xa8)
207
208/*ASW_EXT_MLUT_RY_STRIDE*/
209#define ASW_EXT_MLUT_RY_STRIDE ASW_REG(0xac)
210
211/*ASW_EXT_MLUT_GX_STRIDE*/
212#define ASW_EXT_MLUT_GX_STRIDE ASW_REG(0xb0)
213
214/*ASW_EXT_MLUT_GY_STRIDE*/
215#define ASW_EXT_MLUT_GY_STRIDE ASW_REG(0xb4)
216
217/*ASW_EXT_MLUT_BX_STRIDE*/
218#define ASW_EXT_MLUT_BX_STRIDE ASW_REG(0xb8)
219
220/*ASW_EXT_MLUT_RY_STRIDE*/
221#define ASW_EXT_MLUT_BY_STRIDE ASW_REG(0xbc)
222
223/*ASW_ABNORM_HANDLE*/
224#define ASW_ABNORM_HANDLE ASW_REG(0xe0)
225#define LB_LUT_TYPE_SHIFT 2
226#define LB_LUT_TYPE_MASK 0x3 << LB_LUT_TYPE_SHIFT
227#define RECOVERY_MODE_SHIFT 1
228#define RECOVERY_MODE_MASK 00x1 << RECOVERY_MODE_SHIFT
229#define LN_UPDATE_EN_SHIFT 0
230#define LN_UPDATE_EN_MASK 0x1 << LN_UPDATE_EN_SHIFT
231
232/*ASW_JP_LB_PROG*/
233#define ASW_JP_LB_PROG ASW_REG(0xe4)
234
235/*ASW_CLOAD_PEAK_BW*/
236#define ASW_CLOAD_PEAK_BW ASW_REG(0xf0)
237
238/*ASW_CLOAD_TOTAL_BW*/
239#define ASW_CLOAD_TOTAL_BW ASW_REG(0xf4)
240
241/*ASW_POS_ST*/
242#define ASW_POS_ST ASW_REG(0xf8)
243
244/*ASW_FR_OUT_ST*/
245#define ASW_FR_OUT_ST ASW_REG(0xfc)
246
247/*ASW_DBG_POS_ST0*/
248#define ASW_DBG_POS_ST0 ASW_REG(0x100)
249
250/*ASW_DBG_POS_ST1*/
251#define ASW_DBG_POS_ST1 ASW_REG(0x104)
252
253/*ASW_DBG_POS_ST2*/
254#define ASW_DBG_POS_ST2 ASW_REG(0x108)
255
256/*ASW_DBG_POS_ST3*/
257#define ASW_DBG_POS_ST3 ASW_REG(0x10c)
258
259/*ASW_DBG_POS_ST4*/
260#define ASW_DBG_POS_ST4 ASW_REG(0x110)
261
262/*ASW_DBG_POS_ST5*/
263#define ASW_DBG_POS_ST5 ASW_REG(0x114)
264
265/*ASW_DBG_DBC_ST0*/
266#define ASW_DBG_DBC_ST0 ASW_REG(0x118)
267
268/*ASW_DBG_DBC_ST1*/
269#define ASW_DBG_DBC_ST1 ASW_REG(0x11c)
270
271/*ASW_DBG_DBC_ST2*/
272#define ASW_DBG_DBC_ST2 ASW_REG(0x120)
273
274/*ASW_DBG_DBC_ST3*/
275#define ASW_DBG_DBC_ST3 ASW_REG(0x124)
276
277/*ASW_DBG_LBC_ST0*/
278#define ASW_DBG_LBC_ST0 ASW_REG(0x128)
279
280/*ASW_DBG_LBC_ST1*/
281#define ASW_DBG_LBC_ST1 ASW_REG(0x12c)
282
283/****irqst ab0*****/
284
285#define IRQST_REG(x) ((x) + GAMA_IRQST_JUMP)
286
287/*GAMA_HW_MODE*/
288#define GAMA_HW_MODE IRQST_REG(0x10)
289#define DMA_WR_LB_TO_SHIFT 26
290#define DMA_WR_LB_TO_MASK 0x3F << DMA_WR_LB_TO_SHIFT
291#define DMA_RD_LB_TO_SHIFT 20
292#define DMA_RD_LB_TO_MASK 0x3F << DMA_RD_LB_TO_SHIFT
293#define AHB_RW_LB_TO_SHIFT 14
294#define AHB_RW_LB_TO_MASK 0x3F << AHB_RW_LB_TO_SHIFT
295#define LB_REQ_PRIORITY_SHIFT 12
296#define LB_REQ_PRIORITY_MASK 0x3 << LB_REQ_PRIORITY_SHIFT
297#define DMA_WR_LB_TO_EN_SHIFT 11
298#define DMA_WR_LB_TO_EN_MASK 0x1 << DMA_WR_LB_TO_EN_SHIFT
299#define DMA_RD_LB_TO_EN_SHIFT 10
300#define DMA_RD_LB_TO_EN_MASK 0x1 << DMA_RD_LB_TO_EN_SHIFT
301#define AHB_RW_LB_TO_EN_SHIFT 9
302#define AHB_RW_LB_TO_EN_MASK 0x1 << AHB_RW_LB_TO_EN_SHIFT
303#define ASW_EN_SHIFT 2
304#define ASW_EN_MASK 0x1 << ASW_EN_SHIFT
305#define LB_LAYOUT_TYPE_SHIFT 1
306#define LB_LAYOUT_TYPE_MASK 0x1 << LB_LAYOUT_TYPE_SHIFT
307#define EPU_CTRL_MODE_SHIFT 0
308#define EPU_CTRL_MODE_MASK 0x1 << EPU_CTRL_MODE_SHIFT
309
310/*irqst ab0*/
311
312#define INT_ST1 IRQST_REG(0x1024)
313#define INT_MSK1 IRQST_REG(0x1028)
314#define INT_PTY1 IRQST_REG(0x102c)
315#define INT_CLR1 IRQST_REG(0x1030)
316#define INT_SET1 IRQST_REG(0x1034)
317
318#define WRITE_OUT_FRM_DONE_SHIFT 0
319#define WRITE_OUT_FRM_DONE_MASK 1 << WRITE_OUT_FRM_DONE_SHIFT
320
321/*dma*/
322
323#define DMA_REG(x) ((x) + GAMA_DMA_JUMP)
324#define RD_CHN_NUM 3
325#define RD_CHN_JUMP 0x40
326#define WD_CHN_NUM 2
327#define WD_CHN_JUMP 0x40
328
329#define RDMA_SRC_CFG_(i) (DMA_REG(0x0) + RD_CHN_JUMP * (i))
330#define WDMA_DST_CFG_(i) (DMA_REG(0xc) + WD_CHN_JUMP * (i))
331#define RDMA_PRIORITY_SHIFT 30
332#define RDMA_PRIORITY_MASK 0x3 << RDMA_PRIORITY_SHIFT
333#define RDMA_BURST_LEN_SHIFT 20
334#define RDMA_BURST_LEN_MASK 0xF << RDMA_BURST_LEN_SHIFT
335#define RDMA_STRIDE_SHIFT 0
336#define RDMA_STRIDE_MASK 0xFFFFF << RDMA_STRIDE_SHIFT
337
338#define RDMA_CFIFO_DEPTH_(i) (DMA_REG(0x10) + RD_CHN_JUMP * (i))
339#define RDMA_DFIFO_DEPTH_(i) (DMA_REG(0x14) + RD_CHN_JUMP * (i))
340
341#define RDMA_AXI_CTRL_(i) (DMA_REG(0x18) + RD_CHN_JUMP * (i))
342#define RDMA_AXI_PROT_SHIFT 4
343#define RDMA_AXI_PROT_MASK 0x3 << RDMA_AXI_PROT_SHIFT
344#define RDMA_AXI_CACHE_SHIFT 0
345#define RDMA_AXI_CACHE_MASK 0xF << RDMA_AXI_CACHE_SHIFT
346
347#define RDMA_ADDR_LOW_(i) (DMA_REG(0x1c) + RD_CHN_JUMP * (i))
348#define RDMA_ADDR_HIGH_(i) (DMA_REG(0x20) + RD_CHN_JUMP * (i))
349
350#define RDMA_FB_CTRL_(i) (DMA_REG(0x24) + RD_CHN_JUMP * (i))
351#define RDMA_FB_WRAP_RAGNGE_SHIFT 1
352#define RDMA_FB_WRAP_RAGNGE_MASK 0x7 << RDMA_FB_WRAP_RAGNGE_SHIFT
353#define RDMA_FB_CIRCULAR_EN_SHIFT 0
354#define RDMA_FB_CIRCULAR_EN_MASK 0x1 << RDMA_FB_CIRCULAR_EN_SHIFT
355
356#define RDMA_CTRL DMA_REG(0x1000)
357#define RDMA_CFG_LOAD_SHIFT 1
358#define RDMA_CFG_LOAD_MASK 0x1 << RDMA_CFG_LOAD_SHIFT
359#define RDMA_ARB_SEL_SHIFT 0
360#define RDMA_ARB_SEL_MASK 0x1 << RDMA_ARB_SEL_SHIFT
361
362#define WDMA_CFIFO_DEPTH_(i) (DMA_REG(0x2000) + WD_CHN_JUMP * (i))
363#define WDMA_DFIFO_DEPTH_(i) (DMA_REG(0x2004) + WD_CHN_JUMP * (i))
364
365#define WDMA_AXI_CTRL_(i) (DMA_REG(0x2008) + WD_CHN_JUMP * (i))
366#define WDMA_AXI_CHN_RST_SHIFT 7
367#define WDMA_AXI_CHN_RST_MASK 0x1 << WDMA_AXI_CHN_RST_SHIFT
368#define WDMA_AXI_BUFAB_CFG_SHIFT 6
369#define WDMA_AXI_BUFAB_CFG_MASK 0x7F << WDMA_AXI_BUFAB_CFG_SHIFT
370#define WDMA_AXI_PROT_SHIFT 4
371#define WDMA_AXI_PROT_MASK 0x3 << WDMA_AXI_PROT_SHIFT
372#define WDMA_AXI_CACHE_SHIFT 0
373#define WDMA_AXI_CACHE_MASK 0xF << WDMA_AXI_CACHE_SHIFT
374
375#define WDMA_ADDR_LOW_(i) (DMA_REG(0x200c) + WD_CHN_JUMP * (i))
376#define WDMA_ADDR_HIGH_(i) (DMA_REG(0x2010) + WD_CHN_JUMP * (i))
377
378#define WDMA_FB_CTRL_(i) (DMA_REG(0x2014) + WD_CHN_JUMP * (i))
379#define WDMA_FB_WRAP_RAGNGE_SHIFT 1
380#define WDMA_FB_WRAP_RAGNGE_MASK 0x7 << WDMA_FB_WRAP_RAGNGE_SHIFT
381#define WDMA_FB_CIRCULAR_EN_SHIFT 0
382#define WDMA_FB_CIRCULAR_EN_MASK 0x1 << WDMA_FB_CIRCULAR_EN_SHIFT
383
384#define WDMA_CTRL DMA_REG(0x3000)
385#define WDMA_CFG_LOAD_SHIFT 1
386#define WDMA_CFG_LOAD_MASK 0x1 << WDMA_CFG_LOAD_SHIFT
387#define WDMA_ARB_SEL_SHIFT 0
388#define WDMA_ARB_SEL_MASK 0x1 << WDMA_ARB_SEL_SHIFT
389
390#endif //__GAMA_REGS_H__