xref: /rockchip-linux_mpp/mpp/hal/rkenc/h264e/hal_h264e_vepu511_reg.h (revision 437bfbeb9567cca9cd9080e3f6954aa9d6a94f18)
1*437bfbebSnyanmisaka /* SPDX-License-Identifier: Apache-2.0 */
2*437bfbebSnyanmisaka /*
3*437bfbebSnyanmisaka  * Copyright (c) 2025 Rockchip Electronics Co., Ltd.
4*437bfbebSnyanmisaka  */
5*437bfbebSnyanmisaka 
6*437bfbebSnyanmisaka #ifndef __HAL_H264E_VEPU511_REG_H__
7*437bfbebSnyanmisaka #define __HAL_H264E_VEPU511_REG_H__
8*437bfbebSnyanmisaka 
9*437bfbebSnyanmisaka #include "rk_type.h"
10*437bfbebSnyanmisaka #include "vepu511_common.h"
11*437bfbebSnyanmisaka 
12*437bfbebSnyanmisaka /* class: buffer/video syntax */
13*437bfbebSnyanmisaka /* 0x00000270 reg156 - 0x00000538 reg334 */
14*437bfbebSnyanmisaka typedef struct H264eVepu511Frame_t {
15*437bfbebSnyanmisaka     /* 0x00000270 reg156  - 0x0000039c reg231 */
16*437bfbebSnyanmisaka     Vepu511FrmCommon common;
17*437bfbebSnyanmisaka 
18*437bfbebSnyanmisaka     /* 0x000003a0 reg232 */
19*437bfbebSnyanmisaka     struct {
20*437bfbebSnyanmisaka         RK_U32 rect_size         : 1;
21*437bfbebSnyanmisaka         RK_U32 reserved          : 2;
22*437bfbebSnyanmisaka         RK_U32 vlc_lmt           : 1;
23*437bfbebSnyanmisaka         RK_U32 reserved1         : 9;
24*437bfbebSnyanmisaka         RK_U32 ccwa_e            : 1;
25*437bfbebSnyanmisaka         RK_U32 reserved2         : 1;
26*437bfbebSnyanmisaka         RK_U32 atr_e             : 1;
27*437bfbebSnyanmisaka         RK_U32 reserved3         : 4;
28*437bfbebSnyanmisaka         RK_U32 scl_lst_sel       : 2;
29*437bfbebSnyanmisaka         RK_U32 reserved4         : 6;
30*437bfbebSnyanmisaka         RK_U32 atf_e             : 1;
31*437bfbebSnyanmisaka         RK_U32 atr_mult_sel_e    : 1;
32*437bfbebSnyanmisaka         RK_U32 reserved5         : 2;
33*437bfbebSnyanmisaka     } rdo_cfg;
34*437bfbebSnyanmisaka 
35*437bfbebSnyanmisaka     /* 0x000003a4 reg233 */
36*437bfbebSnyanmisaka     struct {
37*437bfbebSnyanmisaka         RK_U32 rdo_mark_mode         : 9;
38*437bfbebSnyanmisaka         RK_U32 reserved              : 5;
39*437bfbebSnyanmisaka         RK_U32 p16_interp_num        : 2;
40*437bfbebSnyanmisaka         RK_U32 p16t8_rdo_num         : 2;
41*437bfbebSnyanmisaka         RK_U32 p16t4_rmd_num         : 2;
42*437bfbebSnyanmisaka         RK_U32 p8_interp_num         : 2;
43*437bfbebSnyanmisaka         RK_U32 p8t8_rdo_num          : 2;
44*437bfbebSnyanmisaka         RK_U32 p8t4_rmd_num          : 2;
45*437bfbebSnyanmisaka         RK_U32 iframe_i16_rdo_num    : 2;
46*437bfbebSnyanmisaka         RK_U32 i8_rdo_num            : 2;
47*437bfbebSnyanmisaka         RK_U32 iframe_i4_rdo_num     : 2;
48*437bfbebSnyanmisaka     } rdo_mark_mode;
49*437bfbebSnyanmisaka 
50*437bfbebSnyanmisaka     /* 0x3a8 - 0x3ac */
51*437bfbebSnyanmisaka     RK_U32 reserved234_235[2];
52*437bfbebSnyanmisaka 
53*437bfbebSnyanmisaka     /* 0x000003b0 reg236 */
54*437bfbebSnyanmisaka     struct {
55*437bfbebSnyanmisaka         RK_U32 nal_ref_idc      : 2;
56*437bfbebSnyanmisaka         RK_U32 nal_unit_type    : 5;
57*437bfbebSnyanmisaka         RK_U32 reserved         : 25;
58*437bfbebSnyanmisaka     } synt_nal;
59*437bfbebSnyanmisaka 
60*437bfbebSnyanmisaka     /* 0x000003b4 reg237 */
61*437bfbebSnyanmisaka     struct {
62*437bfbebSnyanmisaka         RK_U32 max_fnum    : 4;
63*437bfbebSnyanmisaka         RK_U32 drct_8x8    : 1;
64*437bfbebSnyanmisaka         RK_U32 mpoc_lm4    : 4;
65*437bfbebSnyanmisaka         RK_U32 poc_type    : 2;
66*437bfbebSnyanmisaka         RK_U32 reserved    : 21;
67*437bfbebSnyanmisaka     } synt_sps;
68*437bfbebSnyanmisaka 
69*437bfbebSnyanmisaka     /* 0x000003b8 reg238 */
70*437bfbebSnyanmisaka     struct {
71*437bfbebSnyanmisaka         RK_U32 etpy_mode       : 1;
72*437bfbebSnyanmisaka         RK_U32 trns_8x8        : 1;
73*437bfbebSnyanmisaka         RK_U32 csip_flag       : 1;
74*437bfbebSnyanmisaka         RK_U32 num_ref0_idx    : 2;
75*437bfbebSnyanmisaka         RK_U32 num_ref1_idx    : 2;
76*437bfbebSnyanmisaka         RK_U32 pic_init_qp     : 6;
77*437bfbebSnyanmisaka         RK_U32 cb_ofst         : 5;
78*437bfbebSnyanmisaka         RK_U32 cr_ofst         : 5;
79*437bfbebSnyanmisaka         RK_U32 reserved        : 1;
80*437bfbebSnyanmisaka         RK_U32 dbf_cp_flg      : 1;
81*437bfbebSnyanmisaka         RK_U32 reserved1       : 7;
82*437bfbebSnyanmisaka     } synt_pps;
83*437bfbebSnyanmisaka 
84*437bfbebSnyanmisaka     /* 0x000003bc reg239 */
85*437bfbebSnyanmisaka     struct {
86*437bfbebSnyanmisaka         RK_U32 sli_type        : 2;
87*437bfbebSnyanmisaka         RK_U32 pps_id          : 8;
88*437bfbebSnyanmisaka         RK_U32 drct_smvp       : 1;
89*437bfbebSnyanmisaka         RK_U32 num_ref_ovrd    : 1;
90*437bfbebSnyanmisaka         RK_U32 cbc_init_idc    : 2;
91*437bfbebSnyanmisaka         RK_U32 reserved        : 2;
92*437bfbebSnyanmisaka         RK_U32 frm_num         : 16;
93*437bfbebSnyanmisaka     } synt_sli0;
94*437bfbebSnyanmisaka 
95*437bfbebSnyanmisaka     /* 0x000003c0 reg240 */
96*437bfbebSnyanmisaka     struct {
97*437bfbebSnyanmisaka         RK_U32 idr_pid    : 16;
98*437bfbebSnyanmisaka         RK_U32 poc_lsb    : 16;
99*437bfbebSnyanmisaka     } synt_sli1;
100*437bfbebSnyanmisaka 
101*437bfbebSnyanmisaka     /* 0x000003c4 reg241 */
102*437bfbebSnyanmisaka     struct {
103*437bfbebSnyanmisaka         RK_U32 rodr_pic_idx      : 2;
104*437bfbebSnyanmisaka         RK_U32 ref_list0_rodr    : 1;
105*437bfbebSnyanmisaka         RK_U32 sli_beta_ofst     : 4;
106*437bfbebSnyanmisaka         RK_U32 sli_alph_ofst     : 4;
107*437bfbebSnyanmisaka         RK_U32 dis_dblk_idc      : 2;
108*437bfbebSnyanmisaka         RK_U32 reserved          : 3;
109*437bfbebSnyanmisaka         RK_U32 rodr_pic_num      : 16;
110*437bfbebSnyanmisaka     } synt_sli2;
111*437bfbebSnyanmisaka 
112*437bfbebSnyanmisaka     /* 0x000003c8 reg242 */
113*437bfbebSnyanmisaka     struct {
114*437bfbebSnyanmisaka         RK_U32 nopp_flg      : 1;
115*437bfbebSnyanmisaka         RK_U32 ltrf_flg      : 1;
116*437bfbebSnyanmisaka         RK_U32 arpm_flg      : 1;
117*437bfbebSnyanmisaka         RK_U32 mmco4_pre     : 1;
118*437bfbebSnyanmisaka         RK_U32 mmco_type0    : 3;
119*437bfbebSnyanmisaka         RK_U32 mmco_parm0    : 16;
120*437bfbebSnyanmisaka         RK_U32 mmco_type1    : 3;
121*437bfbebSnyanmisaka         RK_U32 mmco_type2    : 3;
122*437bfbebSnyanmisaka         RK_U32 reserved      : 3;
123*437bfbebSnyanmisaka     } synt_refm0;
124*437bfbebSnyanmisaka 
125*437bfbebSnyanmisaka     /* 0x000003cc reg243 */
126*437bfbebSnyanmisaka     struct {
127*437bfbebSnyanmisaka         RK_U32 mmco_parm1    : 16;
128*437bfbebSnyanmisaka         RK_U32 mmco_parm2    : 16;
129*437bfbebSnyanmisaka     } synt_refm1;
130*437bfbebSnyanmisaka 
131*437bfbebSnyanmisaka     /* 0x000003d0 reg244 */
132*437bfbebSnyanmisaka     struct {
133*437bfbebSnyanmisaka         RK_U32 long_term_frame_idx0    : 4;
134*437bfbebSnyanmisaka         RK_U32 long_term_frame_idx1    : 4;
135*437bfbebSnyanmisaka         RK_U32 long_term_frame_idx2    : 4;
136*437bfbebSnyanmisaka         RK_U32 reserved                : 20;
137*437bfbebSnyanmisaka     } synt_refm2;
138*437bfbebSnyanmisaka 
139*437bfbebSnyanmisaka     /* 0x000003d4 reg245 - 0x0x00000 reg251 */
140*437bfbebSnyanmisaka     RK_U32 reserved245_251[7];
141*437bfbebSnyanmisaka 
142*437bfbebSnyanmisaka     /* 0x000003f0 reg252 */
143*437bfbebSnyanmisaka     struct {
144*437bfbebSnyanmisaka         RK_U32 mv_v_lmt_thd    : 14;
145*437bfbebSnyanmisaka         RK_U32 reserved        : 1;
146*437bfbebSnyanmisaka         RK_U32 mv_v_lmt_en     : 1;
147*437bfbebSnyanmisaka         RK_U32 reserved1       : 16;
148*437bfbebSnyanmisaka     } sli_cfg;
149*437bfbebSnyanmisaka 
150*437bfbebSnyanmisaka     /* 0x000003f4 reg253 */
151*437bfbebSnyanmisaka     RK_U32 reserved253;
152*437bfbebSnyanmisaka 
153*437bfbebSnyanmisaka     /* 0x000003f8 reg254 */
154*437bfbebSnyanmisaka     struct {
155*437bfbebSnyanmisaka         RK_U32 slice_sta_x      : 9;
156*437bfbebSnyanmisaka         RK_U32 reserved1        : 7;
157*437bfbebSnyanmisaka         RK_U32 slice_sta_y      : 10;
158*437bfbebSnyanmisaka         RK_U32 reserved2        : 5;
159*437bfbebSnyanmisaka         RK_U32 slice_enc_ena    : 1;
160*437bfbebSnyanmisaka     } slice_enc_cfg0;
161*437bfbebSnyanmisaka 
162*437bfbebSnyanmisaka     /* 0x000003fc reg255 */
163*437bfbebSnyanmisaka     struct {
164*437bfbebSnyanmisaka         RK_U32 slice_end_x    : 9;
165*437bfbebSnyanmisaka         RK_U32 reserved       : 7;
166*437bfbebSnyanmisaka         RK_U32 slice_end_y    : 10;
167*437bfbebSnyanmisaka         RK_U32 reserved1      : 6;
168*437bfbebSnyanmisaka     } slice_enc_cfg1;
169*437bfbebSnyanmisaka 
170*437bfbebSnyanmisaka     /* 0x00000400 reg256 */
171*437bfbebSnyanmisaka     struct {
172*437bfbebSnyanmisaka         RK_U32 reserved          : 8;
173*437bfbebSnyanmisaka         RK_U32 bsbt_addr_jpeg    : 24;
174*437bfbebSnyanmisaka     } adr_bsbt_jpeg;
175*437bfbebSnyanmisaka 
176*437bfbebSnyanmisaka     /* 0x00000404 reg257 */
177*437bfbebSnyanmisaka     struct {
178*437bfbebSnyanmisaka         RK_U32 reserved          : 8;
179*437bfbebSnyanmisaka         RK_U32 bsbb_addr_jpeg    : 24;
180*437bfbebSnyanmisaka     } adr_bsbb_jpeg;
181*437bfbebSnyanmisaka 
182*437bfbebSnyanmisaka     /* 0x00000408 reg258 */
183*437bfbebSnyanmisaka     RK_U32 adr_bsbs_jpeg;
184*437bfbebSnyanmisaka 
185*437bfbebSnyanmisaka     /* 0x0000040c reg259 */
186*437bfbebSnyanmisaka     struct {
187*437bfbebSnyanmisaka         RK_U32 bsadr_msk_jpeg    : 4;
188*437bfbebSnyanmisaka         RK_U32 reserved          : 4;
189*437bfbebSnyanmisaka         RK_U32 bsbr_addr_jpeg    : 24;
190*437bfbebSnyanmisaka     } adr_bsbr_jpeg;
191*437bfbebSnyanmisaka 
192*437bfbebSnyanmisaka     /* 0x00000410 reg260 */
193*437bfbebSnyanmisaka     struct {
194*437bfbebSnyanmisaka         RK_U32 reserved          : 4;
195*437bfbebSnyanmisaka         RK_U32 adr_vsy_b_jpeg    : 28;
196*437bfbebSnyanmisaka     } adr_vsy_b_jpeg;
197*437bfbebSnyanmisaka 
198*437bfbebSnyanmisaka     /* 0x00000414 reg261 */
199*437bfbebSnyanmisaka     struct {
200*437bfbebSnyanmisaka         RK_U32 reserved          : 4;
201*437bfbebSnyanmisaka         RK_U32 adr_vsc_b_jpeg    : 28;
202*437bfbebSnyanmisaka     } adr_vsc_b_jpeg;
203*437bfbebSnyanmisaka 
204*437bfbebSnyanmisaka     /* 0x00000418 reg262 */
205*437bfbebSnyanmisaka     struct {
206*437bfbebSnyanmisaka         RK_U32 reserved          : 4;
207*437bfbebSnyanmisaka         RK_U32 adr_vsy_t_jpeg    : 28;
208*437bfbebSnyanmisaka     } adr_vsy_t_jpeg;
209*437bfbebSnyanmisaka 
210*437bfbebSnyanmisaka     /* 0x0000041c reg263 */
211*437bfbebSnyanmisaka     struct {
212*437bfbebSnyanmisaka         RK_U32 reserved          : 4;
213*437bfbebSnyanmisaka         RK_U32 adr_vsc_t_jpeg    : 28;
214*437bfbebSnyanmisaka     } adr_vsc_t_jpeg;
215*437bfbebSnyanmisaka 
216*437bfbebSnyanmisaka     /* 0x00000420 reg264 */
217*437bfbebSnyanmisaka     RK_U32 adr_src0_jpeg;
218*437bfbebSnyanmisaka 
219*437bfbebSnyanmisaka     /* 0x00000424 reg265 */
220*437bfbebSnyanmisaka     RK_U32 adr_src1_jpeg;
221*437bfbebSnyanmisaka 
222*437bfbebSnyanmisaka     /* 0x00000428 reg266 */
223*437bfbebSnyanmisaka     RK_U32 adr_src2_jpeg;
224*437bfbebSnyanmisaka 
225*437bfbebSnyanmisaka     /* 0x0000042c reg267 */
226*437bfbebSnyanmisaka     RK_U32 bsp_size_jpeg;
227*437bfbebSnyanmisaka 
228*437bfbebSnyanmisaka     /* 0x430 - 0x43c */
229*437bfbebSnyanmisaka     RK_U32 reserved268_271[4];
230*437bfbebSnyanmisaka 
231*437bfbebSnyanmisaka     /* 0x00000440 reg272 */
232*437bfbebSnyanmisaka     struct {
233*437bfbebSnyanmisaka         RK_U32 pic_wd8_m1    : 11;
234*437bfbebSnyanmisaka         RK_U32 reserved      : 1;
235*437bfbebSnyanmisaka         RK_U32 pp0_vnum_m1   : 4;
236*437bfbebSnyanmisaka         RK_U32 pic_hd8_m1    : 11;
237*437bfbebSnyanmisaka         RK_U32 reserved1     : 1;
238*437bfbebSnyanmisaka         RK_U32 pp0_jnum_m1   : 4;
239*437bfbebSnyanmisaka     } enc_rsl_jpeg;
240*437bfbebSnyanmisaka 
241*437bfbebSnyanmisaka     /* 0x00000444 reg273 */
242*437bfbebSnyanmisaka     struct {
243*437bfbebSnyanmisaka         RK_U32 pic_wfill_jpeg    : 6;
244*437bfbebSnyanmisaka         RK_U32 reserved          : 10;
245*437bfbebSnyanmisaka         RK_U32 pic_hfill_jpeg    : 6;
246*437bfbebSnyanmisaka         RK_U32 reserved1         : 10;
247*437bfbebSnyanmisaka     } src_fill_jpeg;
248*437bfbebSnyanmisaka 
249*437bfbebSnyanmisaka     /* 0x00000448 reg274 */
250*437bfbebSnyanmisaka     struct {
251*437bfbebSnyanmisaka         RK_U32 alpha_swap_jpeg            : 1;
252*437bfbebSnyanmisaka         RK_U32 rbuv_swap_jpeg             : 1;
253*437bfbebSnyanmisaka         RK_U32 src_cfmt_jpeg              : 4;
254*437bfbebSnyanmisaka         RK_U32 reserved                   : 2;
255*437bfbebSnyanmisaka         RK_U32 src_range_trns_en_jpeg     : 1;
256*437bfbebSnyanmisaka         RK_U32 src_range_trns_sel_jpeg    : 1;
257*437bfbebSnyanmisaka         RK_U32 chroma_ds_mode_jpeg        : 1;
258*437bfbebSnyanmisaka         RK_U32 reserved1                  : 21;
259*437bfbebSnyanmisaka     } src_fmt_jpeg;
260*437bfbebSnyanmisaka 
261*437bfbebSnyanmisaka     /* 0x0000044c reg275 */
262*437bfbebSnyanmisaka     struct {
263*437bfbebSnyanmisaka         RK_U32 csc_wgt_b2y_jpeg    : 9;
264*437bfbebSnyanmisaka         RK_U32 csc_wgt_g2y_jpeg    : 9;
265*437bfbebSnyanmisaka         RK_U32 csc_wgt_r2y_jpeg    : 9;
266*437bfbebSnyanmisaka         RK_U32 reserved            : 5;
267*437bfbebSnyanmisaka     } src_udfy_jpeg;
268*437bfbebSnyanmisaka 
269*437bfbebSnyanmisaka     /* 0x00000450 reg276 */
270*437bfbebSnyanmisaka     struct {
271*437bfbebSnyanmisaka         RK_U32 csc_wgt_b2u_jpeg    : 9;
272*437bfbebSnyanmisaka         RK_U32 csc_wgt_g2u_jpeg    : 9;
273*437bfbebSnyanmisaka         RK_U32 csc_wgt_r2u_jpeg    : 9;
274*437bfbebSnyanmisaka         RK_U32 reserved            : 5;
275*437bfbebSnyanmisaka     } src_udfu_jpeg;
276*437bfbebSnyanmisaka 
277*437bfbebSnyanmisaka     /* 0x00000454 reg277 */
278*437bfbebSnyanmisaka     struct {
279*437bfbebSnyanmisaka         RK_U32 csc_wgt_b2v_jpeg    : 9;
280*437bfbebSnyanmisaka         RK_U32 csc_wgt_g2v_jpeg    : 9;
281*437bfbebSnyanmisaka         RK_U32 csc_wgt_r2v_jpeg    : 9;
282*437bfbebSnyanmisaka         RK_U32 reserved            : 5;
283*437bfbebSnyanmisaka     } src_udfv_jpeg;
284*437bfbebSnyanmisaka 
285*437bfbebSnyanmisaka     /* 0x00000458 reg278 */
286*437bfbebSnyanmisaka     struct {
287*437bfbebSnyanmisaka         RK_U32 csc_ofst_v_jpeg    : 8;
288*437bfbebSnyanmisaka         RK_U32 csc_ofst_u_jpeg    : 8;
289*437bfbebSnyanmisaka         RK_U32 csc_ofst_y_jpeg    : 5;
290*437bfbebSnyanmisaka         RK_U32 reserved           : 11;
291*437bfbebSnyanmisaka     } src_udfo_jpeg;
292*437bfbebSnyanmisaka 
293*437bfbebSnyanmisaka     /* 0x0000045c reg279 */
294*437bfbebSnyanmisaka     struct {
295*437bfbebSnyanmisaka         RK_U32 cr_force_value_jpeg     : 8;
296*437bfbebSnyanmisaka         RK_U32 cb_force_value_jpeg     : 8;
297*437bfbebSnyanmisaka         RK_U32 chroma_force_en_jpeg    : 1;
298*437bfbebSnyanmisaka         RK_U32 reserved                : 9;
299*437bfbebSnyanmisaka         RK_U32 src_mirr_jpeg           : 1;
300*437bfbebSnyanmisaka         RK_U32 src_rot_jpeg            : 2;
301*437bfbebSnyanmisaka         RK_U32 reserved1               : 1;
302*437bfbebSnyanmisaka         RK_U32 rkfbcd_en_jpeg          : 1;
303*437bfbebSnyanmisaka         RK_U32 reserved2               : 1;
304*437bfbebSnyanmisaka     } src_proc_jpeg;
305*437bfbebSnyanmisaka 
306*437bfbebSnyanmisaka     /* 0x00000460 reg280 */
307*437bfbebSnyanmisaka     struct {
308*437bfbebSnyanmisaka         RK_U32 pic_ofst_x_jpeg    : 14;
309*437bfbebSnyanmisaka         RK_U32 reserved           : 2;
310*437bfbebSnyanmisaka         RK_U32 pic_ofst_y_jpeg    : 14;
311*437bfbebSnyanmisaka         RK_U32 reserved1          : 2;
312*437bfbebSnyanmisaka     } pic_ofst_jpeg;
313*437bfbebSnyanmisaka 
314*437bfbebSnyanmisaka     /* 0x00000464 reg281 */
315*437bfbebSnyanmisaka     struct {
316*437bfbebSnyanmisaka         RK_U32 src_strd0_jpeg    : 21;
317*437bfbebSnyanmisaka         RK_U32 reserved          : 11;
318*437bfbebSnyanmisaka     } src_strd0_jpeg;
319*437bfbebSnyanmisaka 
320*437bfbebSnyanmisaka     /* 0x00000468 reg282 */
321*437bfbebSnyanmisaka     struct {
322*437bfbebSnyanmisaka         RK_U32 src_strd1_jpeg    : 16;
323*437bfbebSnyanmisaka         RK_U32 reserved          : 16;
324*437bfbebSnyanmisaka     } src_strd1_jpeg;
325*437bfbebSnyanmisaka 
326*437bfbebSnyanmisaka     /* 0x0000046c reg283 */
327*437bfbebSnyanmisaka     struct {
328*437bfbebSnyanmisaka         RK_U32 pp_corner_filter_strength_jpeg      : 2;
329*437bfbebSnyanmisaka         RK_U32 reserved                            : 2;
330*437bfbebSnyanmisaka         RK_U32 pp_edge_filter_strength_jpeg        : 2;
331*437bfbebSnyanmisaka         RK_U32 reserved1                           : 2;
332*437bfbebSnyanmisaka         RK_U32 pp_internal_filter_strength_jpeg    : 2;
333*437bfbebSnyanmisaka         RK_U32 reserved2                           : 22;
334*437bfbebSnyanmisaka     } src_flt_cfg_jpeg;
335*437bfbebSnyanmisaka 
336*437bfbebSnyanmisaka     /* 0x00000470 reg284 */
337*437bfbebSnyanmisaka     struct {
338*437bfbebSnyanmisaka         RK_U32 jpeg_bias_y    : 15;
339*437bfbebSnyanmisaka         RK_U32 reserved       : 17;
340*437bfbebSnyanmisaka     } jpeg_y_cfg;
341*437bfbebSnyanmisaka 
342*437bfbebSnyanmisaka     /* 0x00000474 reg285 */
343*437bfbebSnyanmisaka     struct {
344*437bfbebSnyanmisaka         RK_U32 jpeg_bias_u    : 15;
345*437bfbebSnyanmisaka         RK_U32 reserved       : 17;
346*437bfbebSnyanmisaka     } jpeg_u_cfg;
347*437bfbebSnyanmisaka 
348*437bfbebSnyanmisaka     /* 0x00000478 reg286 */
349*437bfbebSnyanmisaka     struct {
350*437bfbebSnyanmisaka         RK_U32 jpeg_bias_v    : 15;
351*437bfbebSnyanmisaka         RK_U32 reserved       : 17;
352*437bfbebSnyanmisaka     } jpeg_v_cfg;
353*437bfbebSnyanmisaka 
354*437bfbebSnyanmisaka     /* 0x0000047c reg287 */
355*437bfbebSnyanmisaka     struct {
356*437bfbebSnyanmisaka         RK_U32 jpeg_ri              : 25;
357*437bfbebSnyanmisaka         RK_U32 jpeg_out_mode        : 1;
358*437bfbebSnyanmisaka         RK_U32 jpeg_start_rst_m     : 3;
359*437bfbebSnyanmisaka         RK_U32 jpeg_pic_last_ecs    : 1;
360*437bfbebSnyanmisaka         RK_U32 reserved             : 1;
361*437bfbebSnyanmisaka         RK_U32 jpeg_stnd            : 1;
362*437bfbebSnyanmisaka     } jpeg_base_cfg;
363*437bfbebSnyanmisaka 
364*437bfbebSnyanmisaka     /* 0x00000480 reg288 */
365*437bfbebSnyanmisaka     struct {
366*437bfbebSnyanmisaka         RK_U32 uvc_partition0_len_jpeg    : 12;
367*437bfbebSnyanmisaka         RK_U32 uvc_partition_len_jpeg     : 12;
368*437bfbebSnyanmisaka         RK_U32 uvc_skip_len_jpeg          : 6;
369*437bfbebSnyanmisaka         RK_U32 reserved                   : 2;
370*437bfbebSnyanmisaka     } uvc_cfg_jpeg;
371*437bfbebSnyanmisaka 
372*437bfbebSnyanmisaka     /* 0x00000484 reg289 */
373*437bfbebSnyanmisaka     struct {
374*437bfbebSnyanmisaka         RK_U32 reserved          : 4;
375*437bfbebSnyanmisaka         RK_U32 eslf_badr_jpeg    : 28;
376*437bfbebSnyanmisaka     } adr_eslf_jpeg;
377*437bfbebSnyanmisaka 
378*437bfbebSnyanmisaka     /* 0x00000488 reg290 */
379*437bfbebSnyanmisaka     struct {
380*437bfbebSnyanmisaka         RK_U32 eslf_rptr_jpeg    : 10;
381*437bfbebSnyanmisaka         RK_U32 eslf_wptr_jpeg    : 10;
382*437bfbebSnyanmisaka         RK_U32 eslf_blen_jpeg    : 10;
383*437bfbebSnyanmisaka         RK_U32 eslf_updt_jpeg    : 2;
384*437bfbebSnyanmisaka     } eslf_buf_jpeg;
385*437bfbebSnyanmisaka 
386*437bfbebSnyanmisaka     /* 0x48c */
387*437bfbebSnyanmisaka     RK_U32 reserved_291;
388*437bfbebSnyanmisaka 
389*437bfbebSnyanmisaka     /* 0x00000490 reg292 */
390*437bfbebSnyanmisaka     struct {
391*437bfbebSnyanmisaka         RK_U32 roi0_rdoq_start_x    : 11;
392*437bfbebSnyanmisaka         RK_U32 roi0_rdoq_start_y    : 11;
393*437bfbebSnyanmisaka         RK_U32 reserved             : 3;
394*437bfbebSnyanmisaka         RK_U32 roi0_rdoq_level      : 6;
395*437bfbebSnyanmisaka         RK_U32 roi0_rdoq_en         : 1;
396*437bfbebSnyanmisaka     } jpeg_roi0_cfg0;
397*437bfbebSnyanmisaka 
398*437bfbebSnyanmisaka     /* 0x00000494 reg293 */
399*437bfbebSnyanmisaka     struct {
400*437bfbebSnyanmisaka         RK_U32 roi0_rdoq_width_m1     : 11;
401*437bfbebSnyanmisaka         RK_U32 roi0_rdoq_height_m1    : 11;
402*437bfbebSnyanmisaka         RK_U32 reserved               : 3;
403*437bfbebSnyanmisaka         RK_U32 frm_rdoq_level         : 6;
404*437bfbebSnyanmisaka         RK_U32 frm_rdoq_en            : 1;
405*437bfbebSnyanmisaka     } jpeg_roi0_cfg1;
406*437bfbebSnyanmisaka 
407*437bfbebSnyanmisaka     /* 0x00000498 reg294 */
408*437bfbebSnyanmisaka     struct {
409*437bfbebSnyanmisaka         RK_U32 roi1_rdoq_start_x    : 11;
410*437bfbebSnyanmisaka         RK_U32 roi1_rdoq_start_y    : 11;
411*437bfbebSnyanmisaka         RK_U32 reserved             : 3;
412*437bfbebSnyanmisaka         RK_U32 roi1_rdoq_level      : 6;
413*437bfbebSnyanmisaka         RK_U32 roi1_rdoq_en         : 1;
414*437bfbebSnyanmisaka     } jpeg_roi1_cfg0;
415*437bfbebSnyanmisaka 
416*437bfbebSnyanmisaka     /* 0x0000049c reg295 */
417*437bfbebSnyanmisaka     struct {
418*437bfbebSnyanmisaka         RK_U32 roi1_rdoq_width_m1     : 11;
419*437bfbebSnyanmisaka         RK_U32 roi1_rdoq_height_m1    : 11;
420*437bfbebSnyanmisaka         RK_U32 reserved               : 10;
421*437bfbebSnyanmisaka     } jpeg_roi1_cfg1;
422*437bfbebSnyanmisaka 
423*437bfbebSnyanmisaka     /* 0x000004a0 reg296 */
424*437bfbebSnyanmisaka     struct {
425*437bfbebSnyanmisaka         RK_U32 roi2_rdoq_start_x    : 11;
426*437bfbebSnyanmisaka         RK_U32 roi2_rdoq_start_y    : 11;
427*437bfbebSnyanmisaka         RK_U32 reserved             : 3;
428*437bfbebSnyanmisaka         RK_U32 roi2_rdoq_level      : 6;
429*437bfbebSnyanmisaka         RK_U32 roi2_rdoq_en         : 1;
430*437bfbebSnyanmisaka     } jpeg_roi2_cfg0;
431*437bfbebSnyanmisaka 
432*437bfbebSnyanmisaka     /* 0x000004a4 reg297 */
433*437bfbebSnyanmisaka     struct {
434*437bfbebSnyanmisaka         RK_U32 roi2_rdoq_width_m1     : 11;
435*437bfbebSnyanmisaka         RK_U32 roi2_rdoq_height_m1    : 11;
436*437bfbebSnyanmisaka         RK_U32 reserved               : 10;
437*437bfbebSnyanmisaka     } jpeg_roi2_cfg1;
438*437bfbebSnyanmisaka 
439*437bfbebSnyanmisaka     /* 0x000004a8 reg298 */
440*437bfbebSnyanmisaka     struct {
441*437bfbebSnyanmisaka         RK_U32 roi3_rdoq_start_x    : 11;
442*437bfbebSnyanmisaka         RK_U32 roi3_rdoq_start_y    : 11;
443*437bfbebSnyanmisaka         RK_U32 reserved             : 3;
444*437bfbebSnyanmisaka         RK_U32 roi3_rdoq_level      : 6;
445*437bfbebSnyanmisaka         RK_U32 roi3_rdoq_en         : 1;
446*437bfbebSnyanmisaka     } jpeg_roi3_cfg0;
447*437bfbebSnyanmisaka 
448*437bfbebSnyanmisaka     /* 0x000004ac reg299 */
449*437bfbebSnyanmisaka     struct {
450*437bfbebSnyanmisaka         RK_U32 roi3_rdoq_width_m1     : 11;
451*437bfbebSnyanmisaka         RK_U32 roi3_rdoq_height_m1    : 11;
452*437bfbebSnyanmisaka         RK_U32 reserved               : 10;
453*437bfbebSnyanmisaka     } jpeg_roi3_cfg1;
454*437bfbebSnyanmisaka 
455*437bfbebSnyanmisaka     /* 0x000004b0 reg300 */
456*437bfbebSnyanmisaka     struct {
457*437bfbebSnyanmisaka         RK_U32 roi4_rdoq_start_x    : 11;
458*437bfbebSnyanmisaka         RK_U32 roi4_rdoq_start_y    : 11;
459*437bfbebSnyanmisaka         RK_U32 reserved             : 3;
460*437bfbebSnyanmisaka         RK_U32 roi4_rdoq_level      : 6;
461*437bfbebSnyanmisaka         RK_U32 roi4_rdoq_en         : 1;
462*437bfbebSnyanmisaka     } jpeg_roi4_cfg0;
463*437bfbebSnyanmisaka 
464*437bfbebSnyanmisaka     /* 0x000004b4 reg301 */
465*437bfbebSnyanmisaka     struct {
466*437bfbebSnyanmisaka         RK_U32 roi4_rdoq_width_m1     : 11;
467*437bfbebSnyanmisaka         RK_U32 roi4_rdoq_height_m1    : 11;
468*437bfbebSnyanmisaka         RK_U32 reserved               : 10;
469*437bfbebSnyanmisaka     } jpeg_roi4_cfg1;
470*437bfbebSnyanmisaka 
471*437bfbebSnyanmisaka     /* 0x000004b8 reg302 */
472*437bfbebSnyanmisaka     struct {
473*437bfbebSnyanmisaka         RK_U32 roi5_rdoq_start_x    : 11;
474*437bfbebSnyanmisaka         RK_U32 roi5_rdoq_start_y    : 11;
475*437bfbebSnyanmisaka         RK_U32 reserved             : 3;
476*437bfbebSnyanmisaka         RK_U32 roi5_rdoq_level      : 6;
477*437bfbebSnyanmisaka         RK_U32 roi5_rdoq_en         : 1;
478*437bfbebSnyanmisaka     } jpeg_roi5_cfg0;
479*437bfbebSnyanmisaka 
480*437bfbebSnyanmisaka     /* 0x000004bc reg303 */
481*437bfbebSnyanmisaka     struct {
482*437bfbebSnyanmisaka         RK_U32 roi5_rdoq_width_m1     : 11;
483*437bfbebSnyanmisaka         RK_U32 roi5_rdoq_height_m1    : 11;
484*437bfbebSnyanmisaka         RK_U32 reserved               : 10;
485*437bfbebSnyanmisaka     } jpeg_roi5_cfg1;
486*437bfbebSnyanmisaka 
487*437bfbebSnyanmisaka     /* 0x000004c0 reg304 */
488*437bfbebSnyanmisaka     struct {
489*437bfbebSnyanmisaka         RK_U32 roi6_rdoq_start_x    : 11;
490*437bfbebSnyanmisaka         RK_U32 roi6_rdoq_start_y    : 11;
491*437bfbebSnyanmisaka         RK_U32 reserved             : 3;
492*437bfbebSnyanmisaka         RK_U32 roi6_rdoq_level      : 6;
493*437bfbebSnyanmisaka         RK_U32 roi6_rdoq_en         : 1;
494*437bfbebSnyanmisaka     } jpeg_roi6_cfg0;
495*437bfbebSnyanmisaka 
496*437bfbebSnyanmisaka     /* 0x000004c4 reg305 */
497*437bfbebSnyanmisaka     struct {
498*437bfbebSnyanmisaka         RK_U32 roi6_rdoq_width_m1     : 11;
499*437bfbebSnyanmisaka         RK_U32 roi6_rdoq_height_m1    : 11;
500*437bfbebSnyanmisaka         RK_U32 reserved               : 10;
501*437bfbebSnyanmisaka     } jpeg_roi6_cfg1;
502*437bfbebSnyanmisaka 
503*437bfbebSnyanmisaka     /* 0x000004c8 reg306 */
504*437bfbebSnyanmisaka     struct {
505*437bfbebSnyanmisaka         RK_U32 roi7_rdoq_start_x    : 11;
506*437bfbebSnyanmisaka         RK_U32 roi7_rdoq_start_y    : 11;
507*437bfbebSnyanmisaka         RK_U32 reserved             : 3;
508*437bfbebSnyanmisaka         RK_U32 roi7_rdoq_level      : 6;
509*437bfbebSnyanmisaka         RK_U32 roi7_rdoq_en         : 1;
510*437bfbebSnyanmisaka     } jpeg_roi7_cfg0;
511*437bfbebSnyanmisaka 
512*437bfbebSnyanmisaka     /* 0x000004cc reg307 */
513*437bfbebSnyanmisaka     struct {
514*437bfbebSnyanmisaka         RK_U32 roi7_rdoq_width_m1     : 11;
515*437bfbebSnyanmisaka         RK_U32 roi7_rdoq_height_m1    : 11;
516*437bfbebSnyanmisaka         RK_U32 reserved               : 10;
517*437bfbebSnyanmisaka     } jpeg_roi7_cfg1;
518*437bfbebSnyanmisaka 
519*437bfbebSnyanmisaka     /* 0x000004d0 reg308 */
520*437bfbebSnyanmisaka     struct {
521*437bfbebSnyanmisaka         RK_U32 roi8_rdoq_start_x    : 11;
522*437bfbebSnyanmisaka         RK_U32 roi8_rdoq_start_y    : 11;
523*437bfbebSnyanmisaka         RK_U32 reserved             : 3;
524*437bfbebSnyanmisaka         RK_U32 roi8_rdoq_level      : 6;
525*437bfbebSnyanmisaka         RK_U32 roi8_rdoq_en         : 1;
526*437bfbebSnyanmisaka     } jpeg_roi8_cfg0;
527*437bfbebSnyanmisaka 
528*437bfbebSnyanmisaka     /* 0x000004d4 reg309 */
529*437bfbebSnyanmisaka     struct {
530*437bfbebSnyanmisaka         RK_U32 roi8_rdoq_width_m1     : 11;
531*437bfbebSnyanmisaka         RK_U32 roi8_rdoq_height_m1    : 11;
532*437bfbebSnyanmisaka         RK_U32 reserved               : 10;
533*437bfbebSnyanmisaka     } jpeg_roi8_cfg1;
534*437bfbebSnyanmisaka 
535*437bfbebSnyanmisaka     /* 0x000004d8 reg310 */
536*437bfbebSnyanmisaka     struct {
537*437bfbebSnyanmisaka         RK_U32 roi9_rdoq_start_x    : 11;
538*437bfbebSnyanmisaka         RK_U32 roi9_rdoq_start_y    : 11;
539*437bfbebSnyanmisaka         RK_U32 reserved             : 3;
540*437bfbebSnyanmisaka         RK_U32 roi9_rdoq_level      : 6;
541*437bfbebSnyanmisaka         RK_U32 roi9_rdoq_en         : 1;
542*437bfbebSnyanmisaka     } jpeg_roi9_cfg0;
543*437bfbebSnyanmisaka 
544*437bfbebSnyanmisaka     /* 0x000004dc reg311 */
545*437bfbebSnyanmisaka     struct {
546*437bfbebSnyanmisaka         RK_U32 roi9_rdoq_width_m1     : 11;
547*437bfbebSnyanmisaka         RK_U32 roi9_rdoq_height_m1    : 11;
548*437bfbebSnyanmisaka         RK_U32 reserved               : 10;
549*437bfbebSnyanmisaka     } jpeg_roi9_cfg1;
550*437bfbebSnyanmisaka 
551*437bfbebSnyanmisaka     /* 0x000004e0 reg312 */
552*437bfbebSnyanmisaka     struct {
553*437bfbebSnyanmisaka         RK_U32 roi10_rdoq_start_x    : 11;
554*437bfbebSnyanmisaka         RK_U32 roi10_rdoq_start_y    : 11;
555*437bfbebSnyanmisaka         RK_U32 reserved              : 3;
556*437bfbebSnyanmisaka         RK_U32 roi10_rdoq_level      : 6;
557*437bfbebSnyanmisaka         RK_U32 roi10_rdoq_en         : 1;
558*437bfbebSnyanmisaka     } jpeg_roi10_cfg0;
559*437bfbebSnyanmisaka 
560*437bfbebSnyanmisaka     /* 0x000004e4 reg313 */
561*437bfbebSnyanmisaka     struct {
562*437bfbebSnyanmisaka         RK_U32 roi10_rdoq_width_m1     : 11;
563*437bfbebSnyanmisaka         RK_U32 roi10_rdoq_height_m1    : 11;
564*437bfbebSnyanmisaka         RK_U32 reserved                : 10;
565*437bfbebSnyanmisaka     } jpeg_roi10_cfg1;
566*437bfbebSnyanmisaka 
567*437bfbebSnyanmisaka     /* 0x000004e8 reg314 */
568*437bfbebSnyanmisaka     struct {
569*437bfbebSnyanmisaka         RK_U32 roi11_rdoq_start_x    : 11;
570*437bfbebSnyanmisaka         RK_U32 roi11_rdoq_start_y    : 11;
571*437bfbebSnyanmisaka         RK_U32 reserved              : 3;
572*437bfbebSnyanmisaka         RK_U32 roi11_rdoq_level      : 6;
573*437bfbebSnyanmisaka         RK_U32 roi11_rdoq_en         : 1;
574*437bfbebSnyanmisaka     } jpeg_roi11_cfg0;
575*437bfbebSnyanmisaka 
576*437bfbebSnyanmisaka     /* 0x000004ec reg315 */
577*437bfbebSnyanmisaka     struct {
578*437bfbebSnyanmisaka         RK_U32 roi11_rdoq_width_m1     : 11;
579*437bfbebSnyanmisaka         RK_U32 roi11_rdoq_height_m1    : 11;
580*437bfbebSnyanmisaka         RK_U32 reserved                : 10;
581*437bfbebSnyanmisaka     } jpeg_roi11_cfg1;
582*437bfbebSnyanmisaka 
583*437bfbebSnyanmisaka     /* 0x000004f0 reg316 */
584*437bfbebSnyanmisaka     struct {
585*437bfbebSnyanmisaka         RK_U32 roi12_rdoq_start_x    : 11;
586*437bfbebSnyanmisaka         RK_U32 roi12_rdoq_start_y    : 11;
587*437bfbebSnyanmisaka         RK_U32 reserved              : 3;
588*437bfbebSnyanmisaka         RK_U32 roi12_rdoq_level      : 6;
589*437bfbebSnyanmisaka         RK_U32 roi12_rdoq_en         : 1;
590*437bfbebSnyanmisaka     } jpeg_roi12_cfg0;
591*437bfbebSnyanmisaka 
592*437bfbebSnyanmisaka     /* 0x000004f4 reg317 */
593*437bfbebSnyanmisaka     struct {
594*437bfbebSnyanmisaka         RK_U32 roi12_rdoq_width_m1     : 11;
595*437bfbebSnyanmisaka         RK_U32 roi12_rdoq_height_m1    : 11;
596*437bfbebSnyanmisaka         RK_U32 reserved                : 10;
597*437bfbebSnyanmisaka     } jpeg_roi12_cfg1;
598*437bfbebSnyanmisaka 
599*437bfbebSnyanmisaka     /* 0x000004f8 reg318 */
600*437bfbebSnyanmisaka     struct {
601*437bfbebSnyanmisaka         RK_U32 roi13_rdoq_start_x    : 11;
602*437bfbebSnyanmisaka         RK_U32 roi13_rdoq_start_y    : 11;
603*437bfbebSnyanmisaka         RK_U32 reserved              : 3;
604*437bfbebSnyanmisaka         RK_U32 roi13_rdoq_level      : 6;
605*437bfbebSnyanmisaka         RK_U32 roi13_rdoq_en         : 1;
606*437bfbebSnyanmisaka     } jpeg_roi13_cfg0;
607*437bfbebSnyanmisaka 
608*437bfbebSnyanmisaka     /* 0x000004fc reg319 */
609*437bfbebSnyanmisaka     struct {
610*437bfbebSnyanmisaka         RK_U32 roi13_rdoq_width_m1     : 11;
611*437bfbebSnyanmisaka         RK_U32 roi13_rdoq_height_m1    : 11;
612*437bfbebSnyanmisaka         RK_U32 reserved                : 10;
613*437bfbebSnyanmisaka     } jpeg_roi13_cfg1;
614*437bfbebSnyanmisaka 
615*437bfbebSnyanmisaka     /* 0x00000500 reg320 */
616*437bfbebSnyanmisaka     struct {
617*437bfbebSnyanmisaka         RK_U32 roi14_rdoq_start_x    : 11;
618*437bfbebSnyanmisaka         RK_U32 roi14_rdoq_start_y    : 11;
619*437bfbebSnyanmisaka         RK_U32 reserved              : 3;
620*437bfbebSnyanmisaka         RK_U32 roi14_rdoq_level      : 6;
621*437bfbebSnyanmisaka         RK_U32 roi14_rdoq_en         : 1;
622*437bfbebSnyanmisaka     } jpeg_roi14_cfg0;
623*437bfbebSnyanmisaka 
624*437bfbebSnyanmisaka     /* 0x00000504 reg321 */
625*437bfbebSnyanmisaka     struct {
626*437bfbebSnyanmisaka         RK_U32 roi14_rdoq_width_m1     : 11;
627*437bfbebSnyanmisaka         RK_U32 roi14_rdoq_height_m1    : 11;
628*437bfbebSnyanmisaka         RK_U32 reserved                : 10;
629*437bfbebSnyanmisaka     } jpeg_roi14_cfg1;
630*437bfbebSnyanmisaka 
631*437bfbebSnyanmisaka     /* 0x00000508 reg322 */
632*437bfbebSnyanmisaka     struct {
633*437bfbebSnyanmisaka         RK_U32 roi15_rdoq_start_x    : 11;
634*437bfbebSnyanmisaka         RK_U32 roi15_rdoq_start_y    : 11;
635*437bfbebSnyanmisaka         RK_U32 reserved              : 3;
636*437bfbebSnyanmisaka         RK_U32 roi15_rdoq_level      : 6;
637*437bfbebSnyanmisaka         RK_U32 roi15_rdoq_en         : 1;
638*437bfbebSnyanmisaka     } jpeg_roi15_cfg0;
639*437bfbebSnyanmisaka 
640*437bfbebSnyanmisaka     /* 0x0000050c reg323 */
641*437bfbebSnyanmisaka     struct {
642*437bfbebSnyanmisaka         RK_U32 roi15_rdoq_width_m1     : 11;
643*437bfbebSnyanmisaka         RK_U32 roi15_rdoq_height_m1    : 11;
644*437bfbebSnyanmisaka         RK_U32 reserved                : 10;
645*437bfbebSnyanmisaka     } jpeg_roi15_cfg1;
646*437bfbebSnyanmisaka 
647*437bfbebSnyanmisaka     /* 0x510 - 0x51c */
648*437bfbebSnyanmisaka     RK_U32 reserved324_327[4];
649*437bfbebSnyanmisaka 
650*437bfbebSnyanmisaka     /* 0x00000520 reg328 */
651*437bfbebSnyanmisaka     struct {
652*437bfbebSnyanmisaka         RK_U32 reserved        : 4;
653*437bfbebSnyanmisaka         RK_U32 base_addr_md    : 28;
654*437bfbebSnyanmisaka     } adr_md_vpp;
655*437bfbebSnyanmisaka 
656*437bfbebSnyanmisaka     /* 0x00000524 reg329 */
657*437bfbebSnyanmisaka     struct {
658*437bfbebSnyanmisaka         RK_U32 reserved        : 4;
659*437bfbebSnyanmisaka         RK_U32 base_addr_od    : 28;
660*437bfbebSnyanmisaka     } adr_od_vpp;
661*437bfbebSnyanmisaka 
662*437bfbebSnyanmisaka     /* 0x00000528 reg330 */
663*437bfbebSnyanmisaka     struct {
664*437bfbebSnyanmisaka         RK_U32 reserved             : 4;
665*437bfbebSnyanmisaka         RK_U32 base_addr_ref_mdw    : 28;
666*437bfbebSnyanmisaka     } adr_ref_mdw;
667*437bfbebSnyanmisaka 
668*437bfbebSnyanmisaka     /* 0x0000052c reg331 */
669*437bfbebSnyanmisaka     struct {
670*437bfbebSnyanmisaka         RK_U32 reserved             : 4;
671*437bfbebSnyanmisaka         RK_U32 base_addr_ref_mdr    : 28;
672*437bfbebSnyanmisaka     } adr_ref_mdr;
673*437bfbebSnyanmisaka 
674*437bfbebSnyanmisaka     /* 0x00000530 reg332 */
675*437bfbebSnyanmisaka     struct {
676*437bfbebSnyanmisaka         RK_U32 sto_stride_md          : 8;
677*437bfbebSnyanmisaka         RK_U32 sto_stride_od          : 8;
678*437bfbebSnyanmisaka         RK_U32 cur_frm_en_md          : 1;
679*437bfbebSnyanmisaka         RK_U32 ref_frm_en_md          : 1;
680*437bfbebSnyanmisaka         RK_U32 switch_sad_md          : 2;
681*437bfbebSnyanmisaka         RK_U32 night_mode_en_md       : 1;
682*437bfbebSnyanmisaka         RK_U32 flycatkin_flt_en_md    : 1;
683*437bfbebSnyanmisaka         RK_U32 en_od                  : 1;
684*437bfbebSnyanmisaka         RK_U32 background_en_od       : 1;
685*437bfbebSnyanmisaka         RK_U32 sad_comp_en_od         : 1;
686*437bfbebSnyanmisaka         RK_U32 reserved               : 6;
687*437bfbebSnyanmisaka         RK_U32 vepu_pp_en             : 1;
688*437bfbebSnyanmisaka     } vpp_base_cfg;
689*437bfbebSnyanmisaka 
690*437bfbebSnyanmisaka     /* 0x00000534 reg333 */
691*437bfbebSnyanmisaka     struct {
692*437bfbebSnyanmisaka         RK_U32 thres_sad_md          : 12;
693*437bfbebSnyanmisaka         RK_U32 thres_move_md         : 3;
694*437bfbebSnyanmisaka         RK_U32 reserved              : 1;
695*437bfbebSnyanmisaka         RK_U32 thres_dust_move_md    : 4;
696*437bfbebSnyanmisaka         RK_U32 thres_dust_blk_md     : 3;
697*437bfbebSnyanmisaka         RK_U32 reserved1             : 1;
698*437bfbebSnyanmisaka         RK_U32 thres_dust_chng_md    : 8;
699*437bfbebSnyanmisaka     } thd_md_vpp;
700*437bfbebSnyanmisaka 
701*437bfbebSnyanmisaka     /* 0x00000538 reg334 */
702*437bfbebSnyanmisaka     struct {
703*437bfbebSnyanmisaka         RK_U32 thres_complex_od        : 12;
704*437bfbebSnyanmisaka         RK_U32 thres_complex_cnt_od    : 3;
705*437bfbebSnyanmisaka         RK_U32 thres_sad_od            : 14;
706*437bfbebSnyanmisaka         RK_U32 reserved                : 3;
707*437bfbebSnyanmisaka     } thd_od_vpp;
708*437bfbebSnyanmisaka } H264eVepu511Frame;
709*437bfbebSnyanmisaka 
710*437bfbebSnyanmisaka /* class: param */
711*437bfbebSnyanmisaka /* 0x00001700 reg1472 - 0x000019cc reg1651 */
712*437bfbebSnyanmisaka typedef struct H264eVepu511Param_t {
713*437bfbebSnyanmisaka     /* 0x00001700 reg1472 */
714*437bfbebSnyanmisaka     struct {
715*437bfbebSnyanmisaka         RK_U32 iprd_tthdy4_0    : 12;
716*437bfbebSnyanmisaka         RK_U32 reserved         : 4;
717*437bfbebSnyanmisaka         RK_U32 iprd_tthdy4_1    : 12;
718*437bfbebSnyanmisaka         RK_U32 reserved1        : 4;
719*437bfbebSnyanmisaka     } iprd_tthdy4_0;
720*437bfbebSnyanmisaka 
721*437bfbebSnyanmisaka     /* 0x00001704 reg1473 */
722*437bfbebSnyanmisaka     struct {
723*437bfbebSnyanmisaka         RK_U32 iprd_tthdy4_2    : 12;
724*437bfbebSnyanmisaka         RK_U32 reserved         : 4;
725*437bfbebSnyanmisaka         RK_U32 iprd_tthdy4_3    : 12;
726*437bfbebSnyanmisaka         RK_U32 reserved1        : 4;
727*437bfbebSnyanmisaka     } iprd_tthdy4_1;
728*437bfbebSnyanmisaka 
729*437bfbebSnyanmisaka     /* 0x00001708 reg1474 */
730*437bfbebSnyanmisaka     struct {
731*437bfbebSnyanmisaka         RK_U32 iprd_tthdc8_0    : 12;
732*437bfbebSnyanmisaka         RK_U32 reserved         : 4;
733*437bfbebSnyanmisaka         RK_U32 iprd_tthdc8_1    : 12;
734*437bfbebSnyanmisaka         RK_U32 reserved1        : 4;
735*437bfbebSnyanmisaka     } iprd_tthdc8_0;
736*437bfbebSnyanmisaka 
737*437bfbebSnyanmisaka     /* 0x0000170c reg1475 */
738*437bfbebSnyanmisaka     struct {
739*437bfbebSnyanmisaka         RK_U32 iprd_tthdc8_2    : 12;
740*437bfbebSnyanmisaka         RK_U32 reserved         : 4;
741*437bfbebSnyanmisaka         RK_U32 iprd_tthdc8_3    : 12;
742*437bfbebSnyanmisaka         RK_U32 reserved1        : 4;
743*437bfbebSnyanmisaka     } iprd_tthdc8_1;
744*437bfbebSnyanmisaka 
745*437bfbebSnyanmisaka     /* 0x00001710 reg1476 */
746*437bfbebSnyanmisaka     struct {
747*437bfbebSnyanmisaka         RK_U32 iprd_tthdy8_0    : 12;
748*437bfbebSnyanmisaka         RK_U32 reserved         : 4;
749*437bfbebSnyanmisaka         RK_U32 iprd_tthdy8_1    : 12;
750*437bfbebSnyanmisaka         RK_U32 reserved1        : 4;
751*437bfbebSnyanmisaka     } iprd_tthdy8_0;
752*437bfbebSnyanmisaka 
753*437bfbebSnyanmisaka     /* 0x00001714 reg1477 */
754*437bfbebSnyanmisaka     struct {
755*437bfbebSnyanmisaka         RK_U32 iprd_tthdy8_2    : 12;
756*437bfbebSnyanmisaka         RK_U32 reserved         : 4;
757*437bfbebSnyanmisaka         RK_U32 iprd_tthdy8_3    : 12;
758*437bfbebSnyanmisaka         RK_U32 reserved1        : 4;
759*437bfbebSnyanmisaka     } iprd_tthdy8_1;
760*437bfbebSnyanmisaka 
761*437bfbebSnyanmisaka     /* 0x00001718 reg1478 */
762*437bfbebSnyanmisaka     struct {
763*437bfbebSnyanmisaka         RK_U32 iprd_tthd_ul    : 12;
764*437bfbebSnyanmisaka         RK_U32 reserved        : 20;
765*437bfbebSnyanmisaka     } iprd_tthd_ul;
766*437bfbebSnyanmisaka 
767*437bfbebSnyanmisaka     /* 0x0000171c reg1479 */
768*437bfbebSnyanmisaka     struct {
769*437bfbebSnyanmisaka         RK_U32 iprd_wgty8_0    : 8;
770*437bfbebSnyanmisaka         RK_U32 iprd_wgty8_1    : 8;
771*437bfbebSnyanmisaka         RK_U32 iprd_wgty8_2    : 8;
772*437bfbebSnyanmisaka         RK_U32 iprd_wgty8_3    : 8;
773*437bfbebSnyanmisaka     } iprd_wgty8;
774*437bfbebSnyanmisaka 
775*437bfbebSnyanmisaka     /* 0x00001720 reg1480 */
776*437bfbebSnyanmisaka     struct {
777*437bfbebSnyanmisaka         RK_U32 iprd_wgty4_0    : 8;
778*437bfbebSnyanmisaka         RK_U32 iprd_wgty4_1    : 8;
779*437bfbebSnyanmisaka         RK_U32 iprd_wgty4_2    : 8;
780*437bfbebSnyanmisaka         RK_U32 iprd_wgty4_3    : 8;
781*437bfbebSnyanmisaka     } iprd_wgty4;
782*437bfbebSnyanmisaka 
783*437bfbebSnyanmisaka     /* 0x00001724 reg1481 */
784*437bfbebSnyanmisaka     struct {
785*437bfbebSnyanmisaka         RK_U32 iprd_wgty16_0    : 8;
786*437bfbebSnyanmisaka         RK_U32 iprd_wgty16_1    : 8;
787*437bfbebSnyanmisaka         RK_U32 iprd_wgty16_2    : 8;
788*437bfbebSnyanmisaka         RK_U32 iprd_wgty16_3    : 8;
789*437bfbebSnyanmisaka     } iprd_wgty16;
790*437bfbebSnyanmisaka 
791*437bfbebSnyanmisaka     /* 0x00001728 reg1482 */
792*437bfbebSnyanmisaka     struct {
793*437bfbebSnyanmisaka         RK_U32 iprd_wgtc8_0    : 8;
794*437bfbebSnyanmisaka         RK_U32 iprd_wgtc8_1    : 8;
795*437bfbebSnyanmisaka         RK_U32 iprd_wgtc8_2    : 8;
796*437bfbebSnyanmisaka         RK_U32 iprd_wgtc8_3    : 8;
797*437bfbebSnyanmisaka     } iprd_wgtc8;
798*437bfbebSnyanmisaka 
799*437bfbebSnyanmisaka     /* 0x172c */
800*437bfbebSnyanmisaka     RK_U32 reserved_1483;
801*437bfbebSnyanmisaka 
802*437bfbebSnyanmisaka     /* 0x00001730 reg1484 */
803*437bfbebSnyanmisaka     struct {
804*437bfbebSnyanmisaka         RK_U32 bias_madi_th0    : 8;
805*437bfbebSnyanmisaka         RK_U32 bias_madi_th1    : 8;
806*437bfbebSnyanmisaka         RK_U32 bias_madi_th2    : 8;
807*437bfbebSnyanmisaka         RK_U32 reserved         : 8;
808*437bfbebSnyanmisaka     } bias_madi_thd_comb;
809*437bfbebSnyanmisaka 
810*437bfbebSnyanmisaka     /* 0x00001738 reg1486 */
811*437bfbebSnyanmisaka     struct {
812*437bfbebSnyanmisaka         RK_U32 bias_i_val3    : 10;
813*437bfbebSnyanmisaka         RK_U32 reserved       : 22;
814*437bfbebSnyanmisaka     } qnt1_i_bias_comb;
815*437bfbebSnyanmisaka 
816*437bfbebSnyanmisaka     /* 0x0000173c reg1487 */
817*437bfbebSnyanmisaka     struct {
818*437bfbebSnyanmisaka         RK_U32 bias_p_val0    : 10;
819*437bfbebSnyanmisaka         RK_U32 bias_p_val1    : 10;
820*437bfbebSnyanmisaka         RK_U32 bias_p_val2    : 10;
821*437bfbebSnyanmisaka         RK_U32 reserved       : 2;
822*437bfbebSnyanmisaka     } qnt0_p_bias_comb;
823*437bfbebSnyanmisaka 
824*437bfbebSnyanmisaka     /* 0x00001740 reg1488 */
825*437bfbebSnyanmisaka     struct {
826*437bfbebSnyanmisaka         RK_U32 bias_p_val3    : 10;
827*437bfbebSnyanmisaka         RK_U32 reserved       : 22;
828*437bfbebSnyanmisaka     } qnt1_p_bias_comb;
829*437bfbebSnyanmisaka 
830*437bfbebSnyanmisaka     /* 0x1744 - 0x175c */
831*437bfbebSnyanmisaka     RK_U32 reserved1489_1495[7];
832*437bfbebSnyanmisaka 
833*437bfbebSnyanmisaka     /* 0x00001760 reg1496 */
834*437bfbebSnyanmisaka     struct {
835*437bfbebSnyanmisaka         RK_U32 cime_pmv_num      : 1;
836*437bfbebSnyanmisaka         RK_U32 cime_fuse         : 1;
837*437bfbebSnyanmisaka         RK_U32 reserved          : 2;
838*437bfbebSnyanmisaka         RK_U32 move_lambda       : 4;
839*437bfbebSnyanmisaka         RK_U32 rime_lvl_mrg      : 2;
840*437bfbebSnyanmisaka         RK_U32 rime_prelvl_en    : 2;
841*437bfbebSnyanmisaka         RK_U32 rime_prersu_en    : 3;
842*437bfbebSnyanmisaka         RK_U32 fme_lvl_mrg       : 1;
843*437bfbebSnyanmisaka         RK_U32 reserved1         : 16;
844*437bfbebSnyanmisaka     } me_sqi_comb;
845*437bfbebSnyanmisaka 
846*437bfbebSnyanmisaka     /* 0x00001764 reg1497 */
847*437bfbebSnyanmisaka     struct {
848*437bfbebSnyanmisaka         RK_U32 cime_mvd_th0    : 9;
849*437bfbebSnyanmisaka         RK_U32 reserved        : 1;
850*437bfbebSnyanmisaka         RK_U32 cime_mvd_th1    : 9;
851*437bfbebSnyanmisaka         RK_U32 reserved1       : 1;
852*437bfbebSnyanmisaka         RK_U32 cime_mvd_th2    : 9;
853*437bfbebSnyanmisaka         RK_U32 reserved2       : 3;
854*437bfbebSnyanmisaka     }  cime_mvd_th_comb;
855*437bfbebSnyanmisaka 
856*437bfbebSnyanmisaka     /* 0x00001768 reg1498 */
857*437bfbebSnyanmisaka     struct {
858*437bfbebSnyanmisaka         RK_U32 cime_madp_th       : 12;
859*437bfbebSnyanmisaka         RK_U32 ratio_consi_cfg    : 4;
860*437bfbebSnyanmisaka         RK_U32 ratio_bmv_dist     : 4;
861*437bfbebSnyanmisaka         RK_U32 reserved           : 12;
862*437bfbebSnyanmisaka     } cime_madp_th_comb;
863*437bfbebSnyanmisaka 
864*437bfbebSnyanmisaka     /* 0x0000176c reg1499 */
865*437bfbebSnyanmisaka     struct {
866*437bfbebSnyanmisaka         RK_U32 cime_multi0    : 8;
867*437bfbebSnyanmisaka         RK_U32 cime_multi1    : 8;
868*437bfbebSnyanmisaka         RK_U32 cime_multi2    : 8;
869*437bfbebSnyanmisaka         RK_U32 cime_multi3    : 8;
870*437bfbebSnyanmisaka     } cime_multi_comb;
871*437bfbebSnyanmisaka 
872*437bfbebSnyanmisaka     /* 0x00001770 reg1500 */
873*437bfbebSnyanmisaka     struct {
874*437bfbebSnyanmisaka         RK_U32 rime_mvd_th0    : 3;
875*437bfbebSnyanmisaka         RK_U32 reserved        : 1;
876*437bfbebSnyanmisaka         RK_U32 rime_mvd_th1    : 3;
877*437bfbebSnyanmisaka         RK_U32 reserved1       : 9;
878*437bfbebSnyanmisaka         RK_U32 fme_madp_th     : 12;
879*437bfbebSnyanmisaka         RK_U32 reserved2       : 4;
880*437bfbebSnyanmisaka     } rime_mvd_th_comb;
881*437bfbebSnyanmisaka 
882*437bfbebSnyanmisaka     /* 0x00001774 reg1501 */
883*437bfbebSnyanmisaka     struct {
884*437bfbebSnyanmisaka         RK_U32 rime_madp_th0    : 12;
885*437bfbebSnyanmisaka         RK_U32 reserved         : 4;
886*437bfbebSnyanmisaka         RK_U32 rime_madp_th1    : 12;
887*437bfbebSnyanmisaka         RK_U32 reserved1        : 4;
888*437bfbebSnyanmisaka     } rime_madp_th_comb;
889*437bfbebSnyanmisaka 
890*437bfbebSnyanmisaka     /* 0x00001778 reg1502 */
891*437bfbebSnyanmisaka     struct {
892*437bfbebSnyanmisaka         RK_U32 rime_multi0    : 10;
893*437bfbebSnyanmisaka         RK_U32 rime_multi1    : 10;
894*437bfbebSnyanmisaka         RK_U32 rime_multi2    : 10;
895*437bfbebSnyanmisaka         RK_U32 reserved       : 2;
896*437bfbebSnyanmisaka     } rime_multi_comb;
897*437bfbebSnyanmisaka 
898*437bfbebSnyanmisaka     /* 0x0000177c reg1503 */
899*437bfbebSnyanmisaka     struct {
900*437bfbebSnyanmisaka         RK_U32 cmv_th0     : 8;
901*437bfbebSnyanmisaka         RK_U32 cmv_th1     : 8;
902*437bfbebSnyanmisaka         RK_U32 cmv_th2     : 8;
903*437bfbebSnyanmisaka         RK_U32 reserved    : 8;
904*437bfbebSnyanmisaka     } cmv_st_th_comb;
905*437bfbebSnyanmisaka 
906*437bfbebSnyanmisaka     /* 0x1780 - 0x18fc */
907*437bfbebSnyanmisaka     RK_U32 reserved1504_1599[96];
908*437bfbebSnyanmisaka 
909*437bfbebSnyanmisaka     /* 0x00001900 reg1600 - 0x000019cc reg1651*/
910*437bfbebSnyanmisaka     RK_U32 rdo_wgta_qp_grpa_0_51[52];
911*437bfbebSnyanmisaka } H264eVepu511Param;
912*437bfbebSnyanmisaka 
913*437bfbebSnyanmisaka /* class: rdo/q_i */
914*437bfbebSnyanmisaka /* 0x00002000 reg2048 - 0x000020b8 reg2094 */
915*437bfbebSnyanmisaka typedef struct H264eVepu511SqiCfg_t {
916*437bfbebSnyanmisaka     /* 0x00002000 reg2048 - 0x00002010 reg2052*/
917*437bfbebSnyanmisaka     RK_U32 reserved_2048_2052[5];
918*437bfbebSnyanmisaka 
919*437bfbebSnyanmisaka     /* 0x00002014 reg2053 */
920*437bfbebSnyanmisaka     struct {
921*437bfbebSnyanmisaka         RK_U32 rdo_smear_lvl16_multi    : 8;
922*437bfbebSnyanmisaka         RK_U32 rdo_smear_dlt_qp         : 4;
923*437bfbebSnyanmisaka         RK_U32 reserved                 : 1;
924*437bfbebSnyanmisaka         RK_U32 stated_mode              : 2;
925*437bfbebSnyanmisaka         RK_U32 rdo_smear_en             : 1;
926*437bfbebSnyanmisaka         RK_U32 reserved1                : 16;
927*437bfbebSnyanmisaka     } smear_opt_cfg;
928*437bfbebSnyanmisaka 
929*437bfbebSnyanmisaka     /* 0x00002018 reg2054 */
930*437bfbebSnyanmisaka     struct {
931*437bfbebSnyanmisaka         RK_U32 madp_cur_thd0    : 12;
932*437bfbebSnyanmisaka         RK_U32 reserved         : 4;
933*437bfbebSnyanmisaka         RK_U32 madp_cur_thd1    : 12;
934*437bfbebSnyanmisaka         RK_U32 reserved1        : 4;
935*437bfbebSnyanmisaka     } smear_madp_thd0;
936*437bfbebSnyanmisaka 
937*437bfbebSnyanmisaka     /* 0x0000201c reg2055 */
938*437bfbebSnyanmisaka     struct {
939*437bfbebSnyanmisaka         RK_U32 madp_cur_thd2    : 12;
940*437bfbebSnyanmisaka         RK_U32 reserved         : 4;
941*437bfbebSnyanmisaka         RK_U32 madp_cur_thd3    : 12;
942*437bfbebSnyanmisaka         RK_U32 reserved1        : 4;
943*437bfbebSnyanmisaka     } smear_madp_thd1;
944*437bfbebSnyanmisaka 
945*437bfbebSnyanmisaka     /* 0x00002020 reg2056 */
946*437bfbebSnyanmisaka     struct {
947*437bfbebSnyanmisaka         RK_U32 madp_around_thd0    : 12;
948*437bfbebSnyanmisaka         RK_U32 reserved            : 4;
949*437bfbebSnyanmisaka         RK_U32 madp_around_thd1    : 12;
950*437bfbebSnyanmisaka         RK_U32 reserved1           : 4;
951*437bfbebSnyanmisaka     } smear_madp_thd2;
952*437bfbebSnyanmisaka 
953*437bfbebSnyanmisaka     /* 0x00002024 reg2057 */
954*437bfbebSnyanmisaka     struct {
955*437bfbebSnyanmisaka         RK_U32 madp_around_thd2    : 12;
956*437bfbebSnyanmisaka         RK_U32 reserved            : 4;
957*437bfbebSnyanmisaka         RK_U32 madp_around_thd3    : 12;
958*437bfbebSnyanmisaka         RK_U32 reserved1           : 4;
959*437bfbebSnyanmisaka     } smear_madp_thd3;
960*437bfbebSnyanmisaka 
961*437bfbebSnyanmisaka     /* 0x00002028 reg2058 */
962*437bfbebSnyanmisaka     struct {
963*437bfbebSnyanmisaka         RK_U32 madp_around_thd4    : 12;
964*437bfbebSnyanmisaka         RK_U32 reserved            : 4;
965*437bfbebSnyanmisaka         RK_U32 madp_around_thd5    : 12;
966*437bfbebSnyanmisaka         RK_U32 reserved1           : 4;
967*437bfbebSnyanmisaka     } smear_madp_thd4;
968*437bfbebSnyanmisaka 
969*437bfbebSnyanmisaka     /* 0x0000202c reg2059 */
970*437bfbebSnyanmisaka     struct {
971*437bfbebSnyanmisaka         RK_U32 madp_ref_thd0    : 12;
972*437bfbebSnyanmisaka         RK_U32 reserved         : 4;
973*437bfbebSnyanmisaka         RK_U32 madp_ref_thd1    : 12;
974*437bfbebSnyanmisaka         RK_U32 reserved1        : 4;
975*437bfbebSnyanmisaka     } smear_madp_thd5;
976*437bfbebSnyanmisaka 
977*437bfbebSnyanmisaka     /* 0x00002030 reg2060 */
978*437bfbebSnyanmisaka     struct {
979*437bfbebSnyanmisaka         RK_U32 cnt_cur_thd0    : 4;
980*437bfbebSnyanmisaka         RK_U32 reserved        : 4;
981*437bfbebSnyanmisaka         RK_U32 cnt_cur_thd1    : 4;
982*437bfbebSnyanmisaka         RK_U32 reserved1       : 4;
983*437bfbebSnyanmisaka         RK_U32 cnt_cur_thd2    : 4;
984*437bfbebSnyanmisaka         RK_U32 reserved2       : 4;
985*437bfbebSnyanmisaka         RK_U32 cnt_cur_thd3    : 4;
986*437bfbebSnyanmisaka         RK_U32 reserved3       : 4;
987*437bfbebSnyanmisaka     } smear_cnt_thd0;
988*437bfbebSnyanmisaka 
989*437bfbebSnyanmisaka     /* 0x00002034 reg2061 */
990*437bfbebSnyanmisaka     struct {
991*437bfbebSnyanmisaka         RK_U32 cnt_around_thd0    : 4;
992*437bfbebSnyanmisaka         RK_U32 reserved           : 4;
993*437bfbebSnyanmisaka         RK_U32 cnt_around_thd1    : 4;
994*437bfbebSnyanmisaka         RK_U32 reserved1          : 4;
995*437bfbebSnyanmisaka         RK_U32 cnt_around_thd2    : 4;
996*437bfbebSnyanmisaka         RK_U32 reserved2          : 4;
997*437bfbebSnyanmisaka         RK_U32 cnt_around_thd3    : 4;
998*437bfbebSnyanmisaka         RK_U32 reserved3          : 4;
999*437bfbebSnyanmisaka     } smear_cnt_thd1;
1000*437bfbebSnyanmisaka 
1001*437bfbebSnyanmisaka     /* 0x00002038 reg2062 */
1002*437bfbebSnyanmisaka     struct {
1003*437bfbebSnyanmisaka         RK_U32 cnt_around_thd4    : 4;
1004*437bfbebSnyanmisaka         RK_U32 reserved           : 4;
1005*437bfbebSnyanmisaka         RK_U32 cnt_around_thd5    : 4;
1006*437bfbebSnyanmisaka         RK_U32 reserved1          : 4;
1007*437bfbebSnyanmisaka         RK_U32 cnt_around_thd6    : 4;
1008*437bfbebSnyanmisaka         RK_U32 reserved2          : 4;
1009*437bfbebSnyanmisaka         RK_U32 cnt_around_thd7    : 4;
1010*437bfbebSnyanmisaka         RK_U32 reserved3          : 4;
1011*437bfbebSnyanmisaka     } smear_cnt_thd2;
1012*437bfbebSnyanmisaka 
1013*437bfbebSnyanmisaka     /* 0x0000203c reg2063 */
1014*437bfbebSnyanmisaka     struct {
1015*437bfbebSnyanmisaka         RK_U32 cnt_ref_thd0    : 4;
1016*437bfbebSnyanmisaka         RK_U32 reserved        : 4;
1017*437bfbebSnyanmisaka         RK_U32 cnt_ref_thd1    : 4;
1018*437bfbebSnyanmisaka         RK_U32 reserved1       : 20;
1019*437bfbebSnyanmisaka     } smear_cnt_thd3;
1020*437bfbebSnyanmisaka 
1021*437bfbebSnyanmisaka     /* 0x00002040 reg2064 */
1022*437bfbebSnyanmisaka     struct {
1023*437bfbebSnyanmisaka         RK_U32 resi_small_cur_th0    : 6;
1024*437bfbebSnyanmisaka         RK_U32 reserved              : 2;
1025*437bfbebSnyanmisaka         RK_U32 resi_big_cur_th0      : 6;
1026*437bfbebSnyanmisaka         RK_U32 reserved1             : 2;
1027*437bfbebSnyanmisaka         RK_U32 resi_small_cur_th1    : 6;
1028*437bfbebSnyanmisaka         RK_U32 reserved2             : 2;
1029*437bfbebSnyanmisaka         RK_U32 resi_big_cur_th1      : 6;
1030*437bfbebSnyanmisaka         RK_U32 reserved3             : 2;
1031*437bfbebSnyanmisaka     } smear_resi_thd0;
1032*437bfbebSnyanmisaka 
1033*437bfbebSnyanmisaka     /* 0x00002044 reg2065 */
1034*437bfbebSnyanmisaka     struct {
1035*437bfbebSnyanmisaka         RK_U32 resi_small_around_th0    : 6;
1036*437bfbebSnyanmisaka         RK_U32 reserved                 : 2;
1037*437bfbebSnyanmisaka         RK_U32 resi_big_around_th0      : 6;
1038*437bfbebSnyanmisaka         RK_U32 reserved1                : 2;
1039*437bfbebSnyanmisaka         RK_U32 resi_small_around_th1    : 6;
1040*437bfbebSnyanmisaka         RK_U32 reserved2                : 2;
1041*437bfbebSnyanmisaka         RK_U32 resi_big_around_th1      : 6;
1042*437bfbebSnyanmisaka         RK_U32 reserved3                : 2;
1043*437bfbebSnyanmisaka     } smear_resi_thd1;
1044*437bfbebSnyanmisaka 
1045*437bfbebSnyanmisaka     /* 0x00002048 reg2066 */
1046*437bfbebSnyanmisaka     struct {
1047*437bfbebSnyanmisaka         RK_U32 resi_small_around_th2    : 6;
1048*437bfbebSnyanmisaka         RK_U32 reserved                 : 2;
1049*437bfbebSnyanmisaka         RK_U32 resi_big_around_th2      : 6;
1050*437bfbebSnyanmisaka         RK_U32 reserved1                : 2;
1051*437bfbebSnyanmisaka         RK_U32 resi_small_around_th3    : 6;
1052*437bfbebSnyanmisaka         RK_U32 reserved2                : 2;
1053*437bfbebSnyanmisaka         RK_U32 resi_big_around_th3      : 6;
1054*437bfbebSnyanmisaka         RK_U32 reserved3                : 2;
1055*437bfbebSnyanmisaka     } smear_resi_thd2;
1056*437bfbebSnyanmisaka 
1057*437bfbebSnyanmisaka     /* 0x0000204c reg2067 */
1058*437bfbebSnyanmisaka     struct {
1059*437bfbebSnyanmisaka         RK_U32 resi_small_ref_th0    : 6;
1060*437bfbebSnyanmisaka         RK_U32 reserved              : 2;
1061*437bfbebSnyanmisaka         RK_U32 resi_big_ref_th0      : 6;
1062*437bfbebSnyanmisaka         RK_U32 reserved1             : 18;
1063*437bfbebSnyanmisaka     } smear_resi_thd3;
1064*437bfbebSnyanmisaka 
1065*437bfbebSnyanmisaka     /* 0x00002050 reg2068 */
1066*437bfbebSnyanmisaka     struct {
1067*437bfbebSnyanmisaka         RK_U32 resi_th0    : 8;
1068*437bfbebSnyanmisaka         RK_U32 reserved    : 8;
1069*437bfbebSnyanmisaka         RK_U32 resi_th1    : 8;
1070*437bfbebSnyanmisaka         RK_U32 reserved1   : 8;
1071*437bfbebSnyanmisaka     } smear_resi_thd4;
1072*437bfbebSnyanmisaka 
1073*437bfbebSnyanmisaka     /* 0x00002054 reg2069 */
1074*437bfbebSnyanmisaka     struct {
1075*437bfbebSnyanmisaka         RK_U32 madp_cnt_th0    : 4;
1076*437bfbebSnyanmisaka         RK_U32 madp_cnt_th1    : 4;
1077*437bfbebSnyanmisaka         RK_U32 madp_cnt_th2    : 4;
1078*437bfbebSnyanmisaka         RK_U32 madp_cnt_th3    : 4;
1079*437bfbebSnyanmisaka         RK_U32 reserved        : 16;
1080*437bfbebSnyanmisaka     } smear_st_thd;
1081*437bfbebSnyanmisaka 
1082*437bfbebSnyanmisaka     /* 0x2058 - 0x206c */
1083*437bfbebSnyanmisaka     RK_U32 reserved_2070;
1084*437bfbebSnyanmisaka 
1085*437bfbebSnyanmisaka     /* 0x0000205c reg2071 */
1086*437bfbebSnyanmisaka     struct {
1087*437bfbebSnyanmisaka         RK_U32 lid_grdn_blk_cu16_th       : 8;
1088*437bfbebSnyanmisaka         RK_U32 lid_rmd_intra_jcoef_ang    : 5;
1089*437bfbebSnyanmisaka         RK_U32 lid_rdo_intra_rcoef_ang    : 5;
1090*437bfbebSnyanmisaka         RK_U32 lid_rmd_intra_jcoef_dp     : 6;
1091*437bfbebSnyanmisaka         RK_U32 lid_rdo_intra_rcoef_dp     : 6;
1092*437bfbebSnyanmisaka         RK_U32 lid_en                     : 1;
1093*437bfbebSnyanmisaka         RK_U32 reserved                   : 1;
1094*437bfbebSnyanmisaka     } line_intra_dir_cfg;
1095*437bfbebSnyanmisaka 
1096*437bfbebSnyanmisaka     RK_U32 reserved2072_2075[4];
1097*437bfbebSnyanmisaka 
1098*437bfbebSnyanmisaka     /* 0x00002070 reg2076 - 0x0000207c reg2079*/
1099*437bfbebSnyanmisaka     rdo_skip_par rdo_b16_skip;
1100*437bfbebSnyanmisaka 
1101*437bfbebSnyanmisaka     /* 0x00002080 reg2080 - 0x00002088 reg2082 */
1102*437bfbebSnyanmisaka     RK_U32 reserved2080_2082[3];
1103*437bfbebSnyanmisaka 
1104*437bfbebSnyanmisaka     /* 0x0000208c reg2083 - 0x00002094 reg2085 */
1105*437bfbebSnyanmisaka     rdo_noskip_par rdo_b16_inter;
1106*437bfbebSnyanmisaka 
1107*437bfbebSnyanmisaka     /* 0x00002098 reg2086 - 0x000020a4 reg2088 */
1108*437bfbebSnyanmisaka     RK_U32 reserved2086_2088[3];
1109*437bfbebSnyanmisaka 
1110*437bfbebSnyanmisaka     /* 0x000020a8 reg2089 - 0x000020ac reg2091 */
1111*437bfbebSnyanmisaka     rdo_noskip_par rdo_b16_intra;
1112*437bfbebSnyanmisaka 
1113*437bfbebSnyanmisaka     /* 0x000020b0 reg2092 */
1114*437bfbebSnyanmisaka     RK_U32 reserved2092;
1115*437bfbebSnyanmisaka 
1116*437bfbebSnyanmisaka     /* 0x000020b4 reg2093 */
1117*437bfbebSnyanmisaka     struct {
1118*437bfbebSnyanmisaka         RK_U32 thd0         : 4;
1119*437bfbebSnyanmisaka         RK_U32 reserved     : 4;
1120*437bfbebSnyanmisaka         RK_U32 thd1         : 4;
1121*437bfbebSnyanmisaka         RK_U32 reserved1    : 4;
1122*437bfbebSnyanmisaka         RK_U32 thd2         : 4;
1123*437bfbebSnyanmisaka         RK_U32 reserved2    : 4;
1124*437bfbebSnyanmisaka         RK_U32 thd3         : 4;
1125*437bfbebSnyanmisaka         RK_U32 reserved3    : 4;
1126*437bfbebSnyanmisaka     } rdo_b16_intra_atf_cnt_thd;
1127*437bfbebSnyanmisaka 
1128*437bfbebSnyanmisaka     /* 0x000020b8 reg2094 */
1129*437bfbebSnyanmisaka     struct {
1130*437bfbebSnyanmisaka         RK_U32 big_th0      : 6;
1131*437bfbebSnyanmisaka         RK_U32 reserved     : 2;
1132*437bfbebSnyanmisaka         RK_U32 big_th1      : 6;
1133*437bfbebSnyanmisaka         RK_U32 reserved1    : 2;
1134*437bfbebSnyanmisaka         RK_U32 small_th0    : 6;
1135*437bfbebSnyanmisaka         RK_U32 reserved2    : 2;
1136*437bfbebSnyanmisaka         RK_U32 small_th1    : 6;
1137*437bfbebSnyanmisaka         RK_U32 reserved3    : 2;
1138*437bfbebSnyanmisaka     } rdo_atf_resi_thd;
1139*437bfbebSnyanmisaka 
1140*437bfbebSnyanmisaka     /* 0x000020bc reg2095 - 0x0000215c reg2135*/
1141*437bfbebSnyanmisaka     RK_U32 reserved_2095_2135[40];
1142*437bfbebSnyanmisaka 
1143*437bfbebSnyanmisaka     /* 0x00002160 reg2136 */
1144*437bfbebSnyanmisaka     struct {
1145*437bfbebSnyanmisaka         RK_U32 atr_thd0    : 8;
1146*437bfbebSnyanmisaka         RK_U32 atr_thd1    : 8;
1147*437bfbebSnyanmisaka         RK_U32 atr_thd2    : 8;
1148*437bfbebSnyanmisaka         RK_U32 atr_qp      : 6;
1149*437bfbebSnyanmisaka         RK_U32 reserved    : 2;
1150*437bfbebSnyanmisaka     } atr_thd;
1151*437bfbebSnyanmisaka 
1152*437bfbebSnyanmisaka     /* 0x00002164 reg2137 */
1153*437bfbebSnyanmisaka     struct {
1154*437bfbebSnyanmisaka         RK_U32 atr_lv16_wgt0    : 8;
1155*437bfbebSnyanmisaka         RK_U32 atr_lv16_wgt1    : 8;
1156*437bfbebSnyanmisaka         RK_U32 atr_lv16_wgt2    : 8;
1157*437bfbebSnyanmisaka         RK_U32 reserved         : 8;
1158*437bfbebSnyanmisaka     } atr_wgt16;
1159*437bfbebSnyanmisaka 
1160*437bfbebSnyanmisaka     /* 0x00002168 reg2138 */
1161*437bfbebSnyanmisaka     struct {
1162*437bfbebSnyanmisaka         RK_U32 atr_lv8_wgt0    : 8;
1163*437bfbebSnyanmisaka         RK_U32 atr_lv8_wgt1    : 8;
1164*437bfbebSnyanmisaka         RK_U32 atr_lv8_wgt2    : 8;
1165*437bfbebSnyanmisaka         RK_U32 reserved        : 8;
1166*437bfbebSnyanmisaka     } atr_wgt8;
1167*437bfbebSnyanmisaka 
1168*437bfbebSnyanmisaka     /* 0x0000216c reg2139 */
1169*437bfbebSnyanmisaka     struct {
1170*437bfbebSnyanmisaka         RK_U32 atr_lv4_wgt0    : 8;
1171*437bfbebSnyanmisaka         RK_U32 atr_lv4_wgt1    : 8;
1172*437bfbebSnyanmisaka         RK_U32 atr_lv4_wgt2    : 8;
1173*437bfbebSnyanmisaka         RK_U32 reserved        : 8;
1174*437bfbebSnyanmisaka     } atr_wgt4;
1175*437bfbebSnyanmisaka } H264eVepu511Sqi;
1176*437bfbebSnyanmisaka 
1177*437bfbebSnyanmisaka /* class: scaling list  */
1178*437bfbebSnyanmisaka /* 0x00002200 reg2176- 0x0000268c reg2467*/
1179*437bfbebSnyanmisaka typedef struct H264eVepu511SclCfg_t {
1180*437bfbebSnyanmisaka     /* 0x2200 - 0x227c, valid for h.264 iq_scal_t8_intra0~15 iq_scal_t8_inter0~15*/
1181*437bfbebSnyanmisaka     RK_U32 tu8_intra_y[16];
1182*437bfbebSnyanmisaka     RK_U32 tu8_intra_u[16];
1183*437bfbebSnyanmisaka 
1184*437bfbebSnyanmisaka     /* 0x2280 - 0x258c*/
1185*437bfbebSnyanmisaka     RK_U32 reserved_2208_2215[196];
1186*437bfbebSnyanmisaka 
1187*437bfbebSnyanmisaka     /* 0x2590 - 0x268c, valid for h.264 q_scal_t8_intra0~31 q_scal_t8_inter0~31*/
1188*437bfbebSnyanmisaka     RK_U32 q_t8_intra[32];
1189*437bfbebSnyanmisaka     RK_U32 q_t8_inter[32];
1190*437bfbebSnyanmisaka } H264eVepu511SclCfg;
1191*437bfbebSnyanmisaka 
1192*437bfbebSnyanmisaka typedef struct HalVepu511Reg_t {
1193*437bfbebSnyanmisaka     Vepu511ControlCfg       reg_ctl;
1194*437bfbebSnyanmisaka     H264eVepu511Frame       reg_frm;
1195*437bfbebSnyanmisaka     Vepu511RcRoi            reg_rc_roi;
1196*437bfbebSnyanmisaka     H264eVepu511Param       reg_param;
1197*437bfbebSnyanmisaka     H264eVepu511Sqi         reg_sqi;
1198*437bfbebSnyanmisaka     H264eVepu511SclCfg      reg_scl;
1199*437bfbebSnyanmisaka     Vepu511OsdRegs          reg_osd;
1200*437bfbebSnyanmisaka     Vepu511Status           reg_st;
1201*437bfbebSnyanmisaka     Vepu511Dbg              reg_dbg;
1202*437bfbebSnyanmisaka } HalVepu511RegSet;
1203*437bfbebSnyanmisaka 
1204*437bfbebSnyanmisaka #endif