xref: /rockchip-linux_mpp/mpp/hal/rkenc/h264e/hal_h264e_vepu540c_reg.h (revision 437bfbeb9567cca9cd9080e3f6954aa9d6a94f18)
1*437bfbebSnyanmisaka /*
2*437bfbebSnyanmisaka  * Copyright 2022 Rockchip Electronics Co. LTD
3*437bfbebSnyanmisaka  *
4*437bfbebSnyanmisaka  * Licensed under the Apache License, Version 2.0 (the "License");
5*437bfbebSnyanmisaka  * you may not use this file except in compliance with the License.
6*437bfbebSnyanmisaka  * You may obtain a copy of the License at
7*437bfbebSnyanmisaka  *
8*437bfbebSnyanmisaka  *      http://www.apache.org/licenses/LICENSE-2.0
9*437bfbebSnyanmisaka  *
10*437bfbebSnyanmisaka  * Unless required by applicable law or agreed to in writing, software
11*437bfbebSnyanmisaka  * distributed under the License is distributed on an "AS IS" BASIS,
12*437bfbebSnyanmisaka  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13*437bfbebSnyanmisaka  * See the License for the specific language governing permissions and
14*437bfbebSnyanmisaka  * limitations under the License.
15*437bfbebSnyanmisaka  */
16*437bfbebSnyanmisaka 
17*437bfbebSnyanmisaka #ifndef __HAL_H264E_VEPU540C_REG_H__
18*437bfbebSnyanmisaka #define __HAL_H264E_VEPU540C_REG_H__
19*437bfbebSnyanmisaka 
20*437bfbebSnyanmisaka #include "rk_type.h"
21*437bfbebSnyanmisaka #include "vepu540c_common.h"
22*437bfbebSnyanmisaka 
23*437bfbebSnyanmisaka /* class: control/link */
24*437bfbebSnyanmisaka /* 0x00000000 reg0 - 0x00000120 reg72 */
25*437bfbebSnyanmisaka typedef struct Vepu540cControlCfg_t {
26*437bfbebSnyanmisaka     /* 0x00000000 reg0 */
27*437bfbebSnyanmisaka     struct {
28*437bfbebSnyanmisaka         RK_U32 sub_ver      : 8;
29*437bfbebSnyanmisaka         RK_U32 cap     : 1;
30*437bfbebSnyanmisaka         RK_U32 hevc_cap     : 1;
31*437bfbebSnyanmisaka         RK_U32 reserved     : 2;
32*437bfbebSnyanmisaka         RK_U32 res_cap      : 4;
33*437bfbebSnyanmisaka         RK_U32 osd_cap      : 2;
34*437bfbebSnyanmisaka         RK_U32 filtr_cap    : 2;
35*437bfbebSnyanmisaka         RK_U32 bfrm_cap     : 1;
36*437bfbebSnyanmisaka         RK_U32 fbc_cap      : 2;
37*437bfbebSnyanmisaka         RK_U32 reserved1    : 1;
38*437bfbebSnyanmisaka         RK_U32 ip_id        : 8;
39*437bfbebSnyanmisaka     } version;
40*437bfbebSnyanmisaka 
41*437bfbebSnyanmisaka     /* 0x4 - 0xc */
42*437bfbebSnyanmisaka     RK_U32 reserved1_3[3];
43*437bfbebSnyanmisaka 
44*437bfbebSnyanmisaka     /* 0x00000010 reg4 */
45*437bfbebSnyanmisaka     struct {
46*437bfbebSnyanmisaka         RK_U32 lkt_num     : 8;
47*437bfbebSnyanmisaka         RK_U32 vepu_cmd    : 2;
48*437bfbebSnyanmisaka         RK_U32 reserved    : 22;
49*437bfbebSnyanmisaka     } enc_strt;
50*437bfbebSnyanmisaka 
51*437bfbebSnyanmisaka     /* 0x00000014 reg5 */
52*437bfbebSnyanmisaka     struct {
53*437bfbebSnyanmisaka         RK_U32 safe_clr     : 1;
54*437bfbebSnyanmisaka         RK_U32 force_clr    : 1;
55*437bfbebSnyanmisaka         RK_U32 reserved     : 30;
56*437bfbebSnyanmisaka     } enc_clr;
57*437bfbebSnyanmisaka 
58*437bfbebSnyanmisaka     /* 0x00000018 reg6 */
59*437bfbebSnyanmisaka     struct {
60*437bfbebSnyanmisaka         RK_U32 vswm_lcnt_soft    : 14;
61*437bfbebSnyanmisaka         RK_U32 vswm_fcnt_soft    : 8;
62*437bfbebSnyanmisaka         RK_U32 reserved          : 2;
63*437bfbebSnyanmisaka         RK_U32 dvbm_ack_soft     : 1;
64*437bfbebSnyanmisaka         RK_U32 dvbm_ack_sel      : 1;
65*437bfbebSnyanmisaka         RK_U32 dvbm_inf_sel      : 1;
66*437bfbebSnyanmisaka         RK_U32 reserved1         : 5;
67*437bfbebSnyanmisaka     } vs_ldly;
68*437bfbebSnyanmisaka 
69*437bfbebSnyanmisaka     /* 0x1c */
70*437bfbebSnyanmisaka     RK_U32 reserved_7;
71*437bfbebSnyanmisaka 
72*437bfbebSnyanmisaka     /* 0x00000020 reg8 */
73*437bfbebSnyanmisaka     struct {
74*437bfbebSnyanmisaka         RK_U32 enc_done_en          : 1;
75*437bfbebSnyanmisaka         RK_U32 lkt_node_done_en     : 1;
76*437bfbebSnyanmisaka         RK_U32 sclr_done_en         : 1;
77*437bfbebSnyanmisaka         RK_U32 vslc_done_en         : 1;
78*437bfbebSnyanmisaka         RK_U32 vbsf_oflw_en         : 1;
79*437bfbebSnyanmisaka         RK_U32 vbuf_lens_en         : 1;
80*437bfbebSnyanmisaka         RK_U32 enc_err_en           : 1;
81*437bfbebSnyanmisaka         RK_U32 dvbm_fcfg_en         : 1;
82*437bfbebSnyanmisaka         RK_U32 wdg_en               : 1;
83*437bfbebSnyanmisaka         RK_U32 lkt_err_int_en       : 1;
84*437bfbebSnyanmisaka         RK_U32 lkt_err_stop_en      : 1;
85*437bfbebSnyanmisaka         RK_U32 lkt_force_stop_en    : 1;
86*437bfbebSnyanmisaka         RK_U32 jslc_done_en         : 1;
87*437bfbebSnyanmisaka         RK_U32 jbsf_oflw_en         : 1;
88*437bfbebSnyanmisaka         RK_U32 jbuf_lens_en         : 1;
89*437bfbebSnyanmisaka         RK_U32 dvbm_dcnt_en         : 1;
90*437bfbebSnyanmisaka         RK_U32 reserved             : 16;
91*437bfbebSnyanmisaka     } int_en;
92*437bfbebSnyanmisaka 
93*437bfbebSnyanmisaka     /* 0x00000024 reg9 */
94*437bfbebSnyanmisaka     struct {
95*437bfbebSnyanmisaka         RK_U32 enc_done_msk          : 1;
96*437bfbebSnyanmisaka         RK_U32 lkt_node_done_msk     : 1;
97*437bfbebSnyanmisaka         RK_U32 sclr_done_msk         : 1;
98*437bfbebSnyanmisaka         RK_U32 vslc_done_msk         : 1;
99*437bfbebSnyanmisaka         RK_U32 vbsf_oflw_msk         : 1;
100*437bfbebSnyanmisaka         RK_U32 vbuf_lens_msk         : 1;
101*437bfbebSnyanmisaka         RK_U32 enc_err_msk           : 1;
102*437bfbebSnyanmisaka         RK_U32 dvbm_fcfg_msk         : 1;
103*437bfbebSnyanmisaka         RK_U32 wdg_msk               : 1;
104*437bfbebSnyanmisaka         RK_U32 lkt_err_int_msk       : 1;
105*437bfbebSnyanmisaka         RK_U32 lkt_err_stop_msk      : 1;
106*437bfbebSnyanmisaka         RK_U32 lkt_force_stop_msk    : 1;
107*437bfbebSnyanmisaka         RK_U32 jslc_done_msk         : 1;
108*437bfbebSnyanmisaka         RK_U32 jbsf_oflw_msk         : 1;
109*437bfbebSnyanmisaka         RK_U32 jbuf_lens_msk         : 1;
110*437bfbebSnyanmisaka         RK_U32 dvbm_dcnt_msk         : 1;
111*437bfbebSnyanmisaka         RK_U32 reserved              : 16;
112*437bfbebSnyanmisaka     } int_msk;
113*437bfbebSnyanmisaka 
114*437bfbebSnyanmisaka     /* 0x00000028 reg10 */
115*437bfbebSnyanmisaka     struct {
116*437bfbebSnyanmisaka         RK_U32 enc_done_clr          : 1;
117*437bfbebSnyanmisaka         RK_U32 lkt_node_done_clr     : 1;
118*437bfbebSnyanmisaka         RK_U32 sclr_done_clr         : 1;
119*437bfbebSnyanmisaka         RK_U32 vslc_done_clr         : 1;
120*437bfbebSnyanmisaka         RK_U32 vbsf_oflw_clr         : 1;
121*437bfbebSnyanmisaka         RK_U32 vbuf_lens_clr         : 1;
122*437bfbebSnyanmisaka         RK_U32 enc_err_clr           : 1;
123*437bfbebSnyanmisaka         RK_U32 dvbm_fcfg_clr         : 1;
124*437bfbebSnyanmisaka         RK_U32 wdg_clr               : 1;
125*437bfbebSnyanmisaka         RK_U32 lkt_err_int_clr       : 1;
126*437bfbebSnyanmisaka         RK_U32 lkt_err_stop_clr      : 1;
127*437bfbebSnyanmisaka         RK_U32 lkt_force_stop_clr    : 1;
128*437bfbebSnyanmisaka         RK_U32 jslc_done_clr         : 1;
129*437bfbebSnyanmisaka         RK_U32 jbsf_oflw_clr         : 1;
130*437bfbebSnyanmisaka         RK_U32 jbuf_lens_clr         : 1;
131*437bfbebSnyanmisaka         RK_U32 dvbm_dcnt_clr         : 1;
132*437bfbebSnyanmisaka         RK_U32 reserved              : 16;
133*437bfbebSnyanmisaka     } int_clr;
134*437bfbebSnyanmisaka 
135*437bfbebSnyanmisaka     /* 0x0000002c reg11 */
136*437bfbebSnyanmisaka     struct {
137*437bfbebSnyanmisaka         RK_U32 enc_done_sta          : 1;
138*437bfbebSnyanmisaka         RK_U32 lkt_node_done_sta     : 1;
139*437bfbebSnyanmisaka         RK_U32 sclr_done_sta         : 1;
140*437bfbebSnyanmisaka         RK_U32 vslc_done_sta         : 1;
141*437bfbebSnyanmisaka 
142*437bfbebSnyanmisaka         RK_U32 vbsf_oflw_sta         : 1;
143*437bfbebSnyanmisaka         RK_U32 vbuf_lens_sta         : 1;
144*437bfbebSnyanmisaka         RK_U32 enc_err_sta           : 1;
145*437bfbebSnyanmisaka         RK_U32 dvbm_fcfg_sta         : 1;
146*437bfbebSnyanmisaka 
147*437bfbebSnyanmisaka         RK_U32 wdg_sta               : 1;
148*437bfbebSnyanmisaka         RK_U32 lkt_err_int_sta       : 1;
149*437bfbebSnyanmisaka         RK_U32 lkt_err_stop_sta      : 1;
150*437bfbebSnyanmisaka         RK_U32 lkt_force_stop_sta    : 1;
151*437bfbebSnyanmisaka 
152*437bfbebSnyanmisaka         RK_U32 jslc_done_sta         : 1;
153*437bfbebSnyanmisaka         RK_U32 jbsf_oflw_sta         : 1;
154*437bfbebSnyanmisaka         RK_U32 jbuf_lens_sta         : 1;
155*437bfbebSnyanmisaka         RK_U32 dvbm_dcnt_sta         : 1;
156*437bfbebSnyanmisaka 
157*437bfbebSnyanmisaka         RK_U32 reserved              : 16;
158*437bfbebSnyanmisaka     } int_sta;
159*437bfbebSnyanmisaka 
160*437bfbebSnyanmisaka     /* 0x00000030 reg12 */
161*437bfbebSnyanmisaka     struct {
162*437bfbebSnyanmisaka         RK_U32 jpeg_bus_edin        : 4;
163*437bfbebSnyanmisaka         RK_U32 src_bus_edin         : 4;
164*437bfbebSnyanmisaka         RK_U32 meiw_bus_edin        : 4;
165*437bfbebSnyanmisaka         RK_U32 bsw_bus_edin         : 4;
166*437bfbebSnyanmisaka         RK_U32 lktr_bus_edin        : 4;
167*437bfbebSnyanmisaka         RK_U32 roir_bus_edin        : 4;
168*437bfbebSnyanmisaka         RK_U32 lktw_bus_edin        : 4;
169*437bfbebSnyanmisaka         RK_U32 rec_nfbc_bus_edin    : 4;
170*437bfbebSnyanmisaka     } dtrns_map;
171*437bfbebSnyanmisaka 
172*437bfbebSnyanmisaka     /* 0x00000034 reg13 */
173*437bfbebSnyanmisaka     struct {
174*437bfbebSnyanmisaka         RK_U32 reserved        : 16;
175*437bfbebSnyanmisaka         RK_U32 axi_brsp_cke    : 10;
176*437bfbebSnyanmisaka         RK_U32 reserved1       : 6;
177*437bfbebSnyanmisaka     } dtrns_cfg;
178*437bfbebSnyanmisaka 
179*437bfbebSnyanmisaka     /* 0x00000038 reg14 */
180*437bfbebSnyanmisaka     struct {
181*437bfbebSnyanmisaka         RK_U32 vs_load_thd     : 24;
182*437bfbebSnyanmisaka         RK_U32 rfp_load_thd    : 8;
183*437bfbebSnyanmisaka     } enc_wdg;
184*437bfbebSnyanmisaka 
185*437bfbebSnyanmisaka     /* 0x0000003c reg15 */
186*437bfbebSnyanmisaka     struct {
187*437bfbebSnyanmisaka         RK_U32 hurry_en      : 1;
188*437bfbebSnyanmisaka         RK_U32 hurry_low     : 3;
189*437bfbebSnyanmisaka         RK_U32 hurry_mid     : 3;
190*437bfbebSnyanmisaka         RK_U32 hurry_high    : 3;
191*437bfbebSnyanmisaka         RK_U32 reserved      : 22;
192*437bfbebSnyanmisaka     } qos_cfg;
193*437bfbebSnyanmisaka 
194*437bfbebSnyanmisaka     /* 0x00000040 reg16 */
195*437bfbebSnyanmisaka     struct {
196*437bfbebSnyanmisaka         RK_U32 qos_period    : 16;
197*437bfbebSnyanmisaka         RK_U32 reserved      : 16;
198*437bfbebSnyanmisaka     } qos_perd;
199*437bfbebSnyanmisaka 
200*437bfbebSnyanmisaka     /* 0x00000044 reg17 */
201*437bfbebSnyanmisaka     RK_U32 hurry_thd_low;
202*437bfbebSnyanmisaka 
203*437bfbebSnyanmisaka     /* 0x00000048 reg18 */
204*437bfbebSnyanmisaka     RK_U32 hurry_thd_mid;
205*437bfbebSnyanmisaka 
206*437bfbebSnyanmisaka     /* 0x0000004c reg19 */
207*437bfbebSnyanmisaka     RK_U32 hurry_thd_high;
208*437bfbebSnyanmisaka 
209*437bfbebSnyanmisaka     /* 0x00000050 reg20 */
210*437bfbebSnyanmisaka     struct {
211*437bfbebSnyanmisaka         RK_U32 idle_en_core    : 1;
212*437bfbebSnyanmisaka         RK_U32 idle_en_axi     : 1;
213*437bfbebSnyanmisaka         RK_U32 idle_en_ahb     : 1;
214*437bfbebSnyanmisaka         RK_U32 reserved        : 29;
215*437bfbebSnyanmisaka     } enc_idle_en;
216*437bfbebSnyanmisaka 
217*437bfbebSnyanmisaka     /* 0x00000054 reg21 */
218*437bfbebSnyanmisaka     struct {
219*437bfbebSnyanmisaka         RK_U32 cke                 : 1;
220*437bfbebSnyanmisaka         RK_U32 resetn_hw_en        : 1;
221*437bfbebSnyanmisaka         RK_U32 enc_done_tmvp_en    : 1;
222*437bfbebSnyanmisaka         RK_U32 sram_ckg_en         : 1;
223*437bfbebSnyanmisaka         RK_U32 link_err_stop       : 1;
224*437bfbebSnyanmisaka         RK_U32 reserved            : 27;
225*437bfbebSnyanmisaka     } func_en;
226*437bfbebSnyanmisaka 
227*437bfbebSnyanmisaka     /* 0x00000058 reg22 */
228*437bfbebSnyanmisaka     struct {
229*437bfbebSnyanmisaka         RK_U32 tq8_ckg           : 1;
230*437bfbebSnyanmisaka         RK_U32 tq4_ckg           : 1;
231*437bfbebSnyanmisaka         RK_U32 bits_ckg_8x8      : 1;
232*437bfbebSnyanmisaka         RK_U32 bits_ckg_4x4_1    : 1;
233*437bfbebSnyanmisaka         RK_U32 bits_ckg_4x4_0    : 1;
234*437bfbebSnyanmisaka         RK_U32 inter_mode_ckg    : 1;
235*437bfbebSnyanmisaka         RK_U32 inter_ctrl_ckg    : 1;
236*437bfbebSnyanmisaka         RK_U32 inter_pred_ckg    : 1;
237*437bfbebSnyanmisaka         RK_U32 intra8_ckg        : 1;
238*437bfbebSnyanmisaka         RK_U32 intra4_ckg        : 1;
239*437bfbebSnyanmisaka         RK_U32 reserved          : 22;
240*437bfbebSnyanmisaka     } rdo_ckg;
241*437bfbebSnyanmisaka 
242*437bfbebSnyanmisaka     /* 0x0000005c reg23 */
243*437bfbebSnyanmisaka     struct {
244*437bfbebSnyanmisaka         RK_U32 core_id     : 2;
245*437bfbebSnyanmisaka         RK_U32 reserved    : 30;
246*437bfbebSnyanmisaka     } enc_id;
247*437bfbebSnyanmisaka     /* 0x00000060 reg24 */
248*437bfbebSnyanmisaka     struct {
249*437bfbebSnyanmisaka         RK_U32 dvbm_en            : 1;
250*437bfbebSnyanmisaka         RK_U32 src_badr_sel       : 1;
251*437bfbebSnyanmisaka         RK_U32 vinf_frm_match     : 1;
252*437bfbebSnyanmisaka         RK_U32 reserved           : 1;
253*437bfbebSnyanmisaka         RK_U32 vrsp_half_cycle    : 4;
254*437bfbebSnyanmisaka         RK_U32 reserved1          : 24;
255*437bfbebSnyanmisaka     } dvbm_cfg;
256*437bfbebSnyanmisaka } Vepu540cControlCfg;
257*437bfbebSnyanmisaka 
258*437bfbebSnyanmisaka /* class: buffer/video syntax */
259*437bfbebSnyanmisaka /* 0x00000280 reg160 - 0x000003f4 reg253*/
260*437bfbebSnyanmisaka typedef struct Vepu540cBaseCfg_t {
261*437bfbebSnyanmisaka     vepu540c_online online_addr;
262*437bfbebSnyanmisaka     /* 0x00000280 reg160 */
263*437bfbebSnyanmisaka     RK_U32 adr_src0;
264*437bfbebSnyanmisaka 
265*437bfbebSnyanmisaka     /* 0x00000284 reg161 */
266*437bfbebSnyanmisaka     RK_U32 adr_src1;
267*437bfbebSnyanmisaka 
268*437bfbebSnyanmisaka     /* 0x00000288 reg162 */
269*437bfbebSnyanmisaka     RK_U32 adr_src2;
270*437bfbebSnyanmisaka 
271*437bfbebSnyanmisaka     /* 0x0000028c reg163 */
272*437bfbebSnyanmisaka     RK_U32 rfpw_h_addr;
273*437bfbebSnyanmisaka 
274*437bfbebSnyanmisaka     /* 0x00000290 reg164 */
275*437bfbebSnyanmisaka     RK_U32 rfpw_b_addr;
276*437bfbebSnyanmisaka 
277*437bfbebSnyanmisaka     /* 0x00000294 reg165 */
278*437bfbebSnyanmisaka     RK_U32 rfpr_h_addr;
279*437bfbebSnyanmisaka 
280*437bfbebSnyanmisaka     /* 0x00000298 reg166 */
281*437bfbebSnyanmisaka     RK_U32 rfpr_b_addr;
282*437bfbebSnyanmisaka 
283*437bfbebSnyanmisaka     /* 0x0000029c reg167 */
284*437bfbebSnyanmisaka     RK_U32 cmvw_addr;
285*437bfbebSnyanmisaka 
286*437bfbebSnyanmisaka     /* 0x000002a0 reg168 */
287*437bfbebSnyanmisaka     RK_U32 cmvr_addr;
288*437bfbebSnyanmisaka 
289*437bfbebSnyanmisaka     /* 0x000002a4 reg169 */
290*437bfbebSnyanmisaka     RK_U32 dspw_addr;
291*437bfbebSnyanmisaka 
292*437bfbebSnyanmisaka     /* 0x000002a8 reg170 */
293*437bfbebSnyanmisaka     RK_U32 dspr_addr;
294*437bfbebSnyanmisaka 
295*437bfbebSnyanmisaka     /* 0x000002ac reg171 */
296*437bfbebSnyanmisaka     RK_U32 meiw_addr;
297*437bfbebSnyanmisaka 
298*437bfbebSnyanmisaka     /* 0x000002b0 reg172 */
299*437bfbebSnyanmisaka     RK_U32 bsbt_addr;
300*437bfbebSnyanmisaka 
301*437bfbebSnyanmisaka     /* 0x000002b4 reg173 */
302*437bfbebSnyanmisaka     RK_U32 bsbb_addr;
303*437bfbebSnyanmisaka 
304*437bfbebSnyanmisaka     /* 0x000002b8 reg174 */
305*437bfbebSnyanmisaka     RK_U32 adr_bsbs;
306*437bfbebSnyanmisaka 
307*437bfbebSnyanmisaka     /* 0x000002bc reg175 */
308*437bfbebSnyanmisaka     RK_U32 bsbr_addr;
309*437bfbebSnyanmisaka 
310*437bfbebSnyanmisaka     /* 0x000002c0 reg176 */
311*437bfbebSnyanmisaka     RK_U32 lpfw_addr;
312*437bfbebSnyanmisaka 
313*437bfbebSnyanmisaka     /* 0x000002c4 reg177 */
314*437bfbebSnyanmisaka     RK_U32 lpfr_addr;
315*437bfbebSnyanmisaka 
316*437bfbebSnyanmisaka     /* 0x000002c8 reg178 */
317*437bfbebSnyanmisaka     RK_U32 ebuft_addr ;
318*437bfbebSnyanmisaka 
319*437bfbebSnyanmisaka     /* 0x000002cc reg179 */
320*437bfbebSnyanmisaka     RK_U32 ebufb_addr;
321*437bfbebSnyanmisaka 
322*437bfbebSnyanmisaka     /* 0x000002d0 reg180 */
323*437bfbebSnyanmisaka     RK_U32 rfpt_h_addr;
324*437bfbebSnyanmisaka 
325*437bfbebSnyanmisaka     /* 0x000002d4 reg180 */
326*437bfbebSnyanmisaka     RK_U32 rfpb_h_addr;
327*437bfbebSnyanmisaka 
328*437bfbebSnyanmisaka     /* 0x000002d8 reg182 */
329*437bfbebSnyanmisaka     RK_U32 rfpt_b_addr;
330*437bfbebSnyanmisaka 
331*437bfbebSnyanmisaka     /* 0x000002dc reg183 */
332*437bfbebSnyanmisaka     RK_U32 adr_rfpb_b;
333*437bfbebSnyanmisaka 
334*437bfbebSnyanmisaka     /* 0x000002e0 reg184 */
335*437bfbebSnyanmisaka     RK_U32 adr_smear_rd;
336*437bfbebSnyanmisaka 
337*437bfbebSnyanmisaka     /* 0x000002e4 reg185 */
338*437bfbebSnyanmisaka     RK_U32 adr_smear_wr;
339*437bfbebSnyanmisaka 
340*437bfbebSnyanmisaka     /* 0x000002e8 reg186 */
341*437bfbebSnyanmisaka     RK_U32 adr_roir ;
342*437bfbebSnyanmisaka 
343*437bfbebSnyanmisaka     /* 0x2ec - 0x2fc */
344*437bfbebSnyanmisaka     RK_U32 reserved187_191[5];
345*437bfbebSnyanmisaka 
346*437bfbebSnyanmisaka     /* 0x00000300 reg192 */
347*437bfbebSnyanmisaka     struct {
348*437bfbebSnyanmisaka         RK_U32 enc_stnd           : 2;
349*437bfbebSnyanmisaka         RK_U32 cur_frm_ref        : 1;
350*437bfbebSnyanmisaka         RK_U32 mei_stor           : 1;
351*437bfbebSnyanmisaka 
352*437bfbebSnyanmisaka         RK_U32 bs_scp             : 1;
353*437bfbebSnyanmisaka         RK_U32 reserved           : 3;
354*437bfbebSnyanmisaka 
355*437bfbebSnyanmisaka         RK_U32 pic_qp             : 6;
356*437bfbebSnyanmisaka         RK_U32 num_pic_tot_cur    : 5;
357*437bfbebSnyanmisaka         RK_U32 log2_ctu_num       : 5;
358*437bfbebSnyanmisaka         RK_U32 reserved1          : 6;
359*437bfbebSnyanmisaka         RK_U32 slen_fifo          : 1;
360*437bfbebSnyanmisaka         RK_U32 rec_fbc_dis        : 1;
361*437bfbebSnyanmisaka     } enc_pic;
362*437bfbebSnyanmisaka 
363*437bfbebSnyanmisaka     /* 0x304 */
364*437bfbebSnyanmisaka     RK_U32 reserved_193;
365*437bfbebSnyanmisaka 
366*437bfbebSnyanmisaka     /* 0x00000308 reg194 */
367*437bfbebSnyanmisaka     struct {
368*437bfbebSnyanmisaka         RK_U32 frame_id       : 8;
369*437bfbebSnyanmisaka         RK_U32 reserved       : 8;
370*437bfbebSnyanmisaka         RK_U32 ch_id          : 2;
371*437bfbebSnyanmisaka         RK_U32 vrsp_rtn_en    : 1;
372*437bfbebSnyanmisaka         RK_U32 reserved1      : 13;
373*437bfbebSnyanmisaka     } dvbm_id;
374*437bfbebSnyanmisaka 
375*437bfbebSnyanmisaka     /* 0x0000030c reg195 */
376*437bfbebSnyanmisaka     RK_U32 bsp_size;
377*437bfbebSnyanmisaka     /* 0x00000310 reg196 */
378*437bfbebSnyanmisaka     struct {
379*437bfbebSnyanmisaka         RK_U32 pic_wd8_m1    : 11;
380*437bfbebSnyanmisaka         RK_U32 reserved      : 5;
381*437bfbebSnyanmisaka         RK_U32 pic_hd8_m1    : 11;
382*437bfbebSnyanmisaka         RK_U32 reserved1     : 5;
383*437bfbebSnyanmisaka     } enc_rsl;
384*437bfbebSnyanmisaka 
385*437bfbebSnyanmisaka     /* 0x00000314 reg197 */
386*437bfbebSnyanmisaka     struct {
387*437bfbebSnyanmisaka         RK_U32 pic_wfill    : 6;
388*437bfbebSnyanmisaka         RK_U32 reserved     : 10;
389*437bfbebSnyanmisaka         RK_U32 pic_hfill    : 6;
390*437bfbebSnyanmisaka         RK_U32 reserved1    : 10;
391*437bfbebSnyanmisaka     } src_fill;
392*437bfbebSnyanmisaka 
393*437bfbebSnyanmisaka     /* 0x00000318 reg198 */
394*437bfbebSnyanmisaka     struct {
395*437bfbebSnyanmisaka         RK_U32 alpha_swap            : 1;
396*437bfbebSnyanmisaka         RK_U32 rbuv_swap             : 1;
397*437bfbebSnyanmisaka         RK_U32 src_cfmt              : 4;
398*437bfbebSnyanmisaka         RK_U32 src_rcne              : 1;
399*437bfbebSnyanmisaka         RK_U32 out_fmt               : 1;
400*437bfbebSnyanmisaka         RK_U32 src_range_trns_en     : 1;
401*437bfbebSnyanmisaka         RK_U32 src_range_trns_sel    : 1;
402*437bfbebSnyanmisaka         RK_U32 chroma_ds_mode        : 1;
403*437bfbebSnyanmisaka         RK_U32 reserved              : 21;
404*437bfbebSnyanmisaka     } src_fmt;
405*437bfbebSnyanmisaka 
406*437bfbebSnyanmisaka     /* 0x0000031c reg199 */
407*437bfbebSnyanmisaka     struct {
408*437bfbebSnyanmisaka         RK_U32 csc_wgt_b2y    : 9;
409*437bfbebSnyanmisaka         RK_U32 csc_wgt_g2y    : 9;
410*437bfbebSnyanmisaka         RK_U32 csc_wgt_r2y    : 9;
411*437bfbebSnyanmisaka         RK_U32 reserved       : 5;
412*437bfbebSnyanmisaka     } src_udfy;
413*437bfbebSnyanmisaka 
414*437bfbebSnyanmisaka     /* 0x00000320 reg200 */
415*437bfbebSnyanmisaka     struct {
416*437bfbebSnyanmisaka         RK_U32 csc_wgt_b2u    : 9;
417*437bfbebSnyanmisaka         RK_U32 csc_wgt_g2u    : 9;
418*437bfbebSnyanmisaka         RK_U32 csc_wgt_r2u    : 9;
419*437bfbebSnyanmisaka         RK_U32 reserved       : 5;
420*437bfbebSnyanmisaka     } src_udfu;
421*437bfbebSnyanmisaka 
422*437bfbebSnyanmisaka     /* 0x00000324 reg201 */
423*437bfbebSnyanmisaka     struct {
424*437bfbebSnyanmisaka         RK_U32 csc_wgt_b2v    : 9;
425*437bfbebSnyanmisaka         RK_U32 csc_wgt_g2v    : 9;
426*437bfbebSnyanmisaka         RK_U32 csc_wgt_r2v    : 9;
427*437bfbebSnyanmisaka         RK_U32 reserved       : 5;
428*437bfbebSnyanmisaka     } src_udfv;
429*437bfbebSnyanmisaka 
430*437bfbebSnyanmisaka     /* 0x00000328 reg202 */
431*437bfbebSnyanmisaka     struct {
432*437bfbebSnyanmisaka         RK_U32 csc_ofst_v    : 8;
433*437bfbebSnyanmisaka         RK_U32 csc_ofst_u    : 8;
434*437bfbebSnyanmisaka         RK_U32 csc_ofst_y    : 5;
435*437bfbebSnyanmisaka         RK_U32 reserved      : 11;
436*437bfbebSnyanmisaka     } src_udfo;
437*437bfbebSnyanmisaka 
438*437bfbebSnyanmisaka     /* 0x0000032c reg203 */
439*437bfbebSnyanmisaka     struct {
440*437bfbebSnyanmisaka         RK_U32 reserved     : 26;
441*437bfbebSnyanmisaka         RK_U32 src_mirr     : 1;
442*437bfbebSnyanmisaka         RK_U32 src_rot      : 2;
443*437bfbebSnyanmisaka         RK_U32 reserved1    : 3;
444*437bfbebSnyanmisaka     } src_proc;
445*437bfbebSnyanmisaka 
446*437bfbebSnyanmisaka     /* 0x00000330 reg204 */
447*437bfbebSnyanmisaka     struct {
448*437bfbebSnyanmisaka         RK_U32 pic_ofst_x    : 14;
449*437bfbebSnyanmisaka         RK_U32 reserved      : 2;
450*437bfbebSnyanmisaka         RK_U32 pic_ofst_y    : 14;
451*437bfbebSnyanmisaka         RK_U32 reserved1     : 2;
452*437bfbebSnyanmisaka     } pic_ofst;
453*437bfbebSnyanmisaka 
454*437bfbebSnyanmisaka     /* 0x00000334 reg205 */
455*437bfbebSnyanmisaka     struct {
456*437bfbebSnyanmisaka         RK_U32 src_strd0    : 17;
457*437bfbebSnyanmisaka         RK_U32 reserved     : 15;
458*437bfbebSnyanmisaka     } src_strd0;
459*437bfbebSnyanmisaka 
460*437bfbebSnyanmisaka     /* 0x00000338 reg206 */
461*437bfbebSnyanmisaka     struct {
462*437bfbebSnyanmisaka         RK_U32 src_strd1    : 16;
463*437bfbebSnyanmisaka         RK_U32 reserved     : 16;
464*437bfbebSnyanmisaka     } src_strd1;
465*437bfbebSnyanmisaka 
466*437bfbebSnyanmisaka     /* 0x0000033c reg207 */
467*437bfbebSnyanmisaka     struct {
468*437bfbebSnyanmisaka         RK_U32 pp_corner_filter_strength      : 2;
469*437bfbebSnyanmisaka         RK_U32 reserved                       : 2;
470*437bfbebSnyanmisaka         RK_U32 pp_edge_filter_strength        : 2;
471*437bfbebSnyanmisaka         RK_U32 reserved1                      : 2;
472*437bfbebSnyanmisaka         RK_U32 pp_internal_filter_strength    : 2;
473*437bfbebSnyanmisaka         RK_U32 reserved2                      : 22;
474*437bfbebSnyanmisaka     } src_flt_cfg;
475*437bfbebSnyanmisaka 
476*437bfbebSnyanmisaka     /* 0x340 - 0x34c */
477*437bfbebSnyanmisaka     RK_U32 reserved208_211[4];
478*437bfbebSnyanmisaka 
479*437bfbebSnyanmisaka     /* 0x00000350 reg212 */
480*437bfbebSnyanmisaka     struct {
481*437bfbebSnyanmisaka         RK_U32 rc_en         : 1;
482*437bfbebSnyanmisaka         RK_U32 aq_en         : 1;
483*437bfbebSnyanmisaka         RK_U32 aq_mode       : 1;
484*437bfbebSnyanmisaka         RK_U32 reserved      : 9;
485*437bfbebSnyanmisaka         RK_U32 rc_ctu_num    : 20;
486*437bfbebSnyanmisaka     } rc_cfg;
487*437bfbebSnyanmisaka 
488*437bfbebSnyanmisaka     /* 0x00000354 reg213 */
489*437bfbebSnyanmisaka     struct {
490*437bfbebSnyanmisaka         RK_U32 reserved       : 16;
491*437bfbebSnyanmisaka         RK_U32 rc_qp_range    : 4;
492*437bfbebSnyanmisaka         RK_U32 rc_max_qp      : 6;
493*437bfbebSnyanmisaka         RK_U32 rc_min_qp      : 6;
494*437bfbebSnyanmisaka     } rc_qp;
495*437bfbebSnyanmisaka 
496*437bfbebSnyanmisaka     /* 0x00000358 reg214 */
497*437bfbebSnyanmisaka     struct {
498*437bfbebSnyanmisaka         RK_U32 ctu_ebit    : 20;
499*437bfbebSnyanmisaka         RK_U32 reserved    : 12;
500*437bfbebSnyanmisaka     } rc_tgt;
501*437bfbebSnyanmisaka 
502*437bfbebSnyanmisaka     /* 0x35c */
503*437bfbebSnyanmisaka     RK_U32 reserved_215;
504*437bfbebSnyanmisaka 
505*437bfbebSnyanmisaka     /* 0x00000360 reg216 */
506*437bfbebSnyanmisaka     struct {
507*437bfbebSnyanmisaka         RK_U32 sli_splt          : 1;
508*437bfbebSnyanmisaka         RK_U32 sli_splt_mode     : 1;
509*437bfbebSnyanmisaka         RK_U32 sli_splt_cpst     : 1;
510*437bfbebSnyanmisaka         RK_U32 reserved          : 12;
511*437bfbebSnyanmisaka         RK_U32 sli_flsh          : 1;
512*437bfbebSnyanmisaka         RK_U32 sli_max_num_m1    : 15;
513*437bfbebSnyanmisaka         RK_U32 reserved1         : 1;
514*437bfbebSnyanmisaka     } sli_splt;
515*437bfbebSnyanmisaka 
516*437bfbebSnyanmisaka     /* 0x00000364 reg217 */
517*437bfbebSnyanmisaka     struct {
518*437bfbebSnyanmisaka         RK_U32 sli_splt_byte    : 20;
519*437bfbebSnyanmisaka         RK_U32 reserved         : 12;
520*437bfbebSnyanmisaka     } sli_byte;
521*437bfbebSnyanmisaka 
522*437bfbebSnyanmisaka     /* 0x00000368 reg218 */
523*437bfbebSnyanmisaka     struct {
524*437bfbebSnyanmisaka         RK_U32 sli_splt_cnum_m1    : 20;
525*437bfbebSnyanmisaka         RK_U32 reserved            : 12;
526*437bfbebSnyanmisaka     } sli_cnum;
527*437bfbebSnyanmisaka 
528*437bfbebSnyanmisaka     /* 0x36c */
529*437bfbebSnyanmisaka     /* 0x0000036c reg219 */
530*437bfbebSnyanmisaka     struct {
531*437bfbebSnyanmisaka         RK_U32 uvc_partition0_len    : 12;
532*437bfbebSnyanmisaka         RK_U32 uvc_partition_len     : 12;
533*437bfbebSnyanmisaka         RK_U32 uvc_skip_len          : 6;
534*437bfbebSnyanmisaka         RK_U32 reserved              : 2;
535*437bfbebSnyanmisaka     } uvc_cfg;
536*437bfbebSnyanmisaka 
537*437bfbebSnyanmisaka     /* 0x00000370 reg220 */
538*437bfbebSnyanmisaka     struct {
539*437bfbebSnyanmisaka         RK_U32 cime_srch_dwnh    : 4;
540*437bfbebSnyanmisaka         RK_U32 cime_srch_uph     : 4;
541*437bfbebSnyanmisaka         RK_U32 cime_srch_rgtw    : 4;
542*437bfbebSnyanmisaka         RK_U32 cime_srch_lftw    : 4;
543*437bfbebSnyanmisaka         RK_U32 dlt_frm_num       : 16;
544*437bfbebSnyanmisaka     } me_rnge;
545*437bfbebSnyanmisaka 
546*437bfbebSnyanmisaka     /* 0x00000374 reg221 */
547*437bfbebSnyanmisaka     struct {
548*437bfbebSnyanmisaka         RK_U32 srgn_max_num      : 7;
549*437bfbebSnyanmisaka         RK_U32 cime_dist_thre    : 13;
550*437bfbebSnyanmisaka         RK_U32 rme_srch_h        : 2;
551*437bfbebSnyanmisaka         RK_U32 rme_srch_v        : 2;
552*437bfbebSnyanmisaka         RK_U32 rme_dis           : 3;
553*437bfbebSnyanmisaka         RK_U32 reserved1         : 1;
554*437bfbebSnyanmisaka         RK_U32 fme_dis           : 3;
555*437bfbebSnyanmisaka         RK_U32 reserved2         : 1;
556*437bfbebSnyanmisaka     } me_cfg;
557*437bfbebSnyanmisaka 
558*437bfbebSnyanmisaka     /* 0x00000378 reg222 */
559*437bfbebSnyanmisaka     struct {
560*437bfbebSnyanmisaka         RK_U32 cime_size_rama     : 10;
561*437bfbebSnyanmisaka         RK_U32 reserved           : 1;
562*437bfbebSnyanmisaka         RK_U32 cime_hgt_rama      : 5;
563*437bfbebSnyanmisaka         RK_U32 reserved1          : 2;
564*437bfbebSnyanmisaka         RK_U32 cme_linebuf_w      : 10;
565*437bfbebSnyanmisaka         RK_U32 fme_prefsu_en      : 2;
566*437bfbebSnyanmisaka         RK_U32 colmv_stor_hevc    : 1;
567*437bfbebSnyanmisaka         RK_U32 colmv_load_hevc    : 1;
568*437bfbebSnyanmisaka     } me_cach;
569*437bfbebSnyanmisaka 
570*437bfbebSnyanmisaka     /* 0x37c - 0x39c */
571*437bfbebSnyanmisaka     RK_U32 reserved223_231[9];
572*437bfbebSnyanmisaka     /* 0x000003a0 reg232 */
573*437bfbebSnyanmisaka     struct {
574*437bfbebSnyanmisaka         RK_U32 rect_size      : 1;
575*437bfbebSnyanmisaka         RK_U32 reserved       : 2;
576*437bfbebSnyanmisaka         RK_U32 vlc_lmt        : 1;
577*437bfbebSnyanmisaka         RK_U32 chrm_spcl      : 1;
578*437bfbebSnyanmisaka         RK_U32 reserved1      : 8;
579*437bfbebSnyanmisaka         RK_U32 ccwa_e         : 1;
580*437bfbebSnyanmisaka         RK_U32 reserved2      : 1;
581*437bfbebSnyanmisaka         RK_U32 intra_cost_e   : 1;
582*437bfbebSnyanmisaka         RK_U32 reserved3      : 4;
583*437bfbebSnyanmisaka         RK_U32 scl_lst_sel    : 2;
584*437bfbebSnyanmisaka         RK_U32 reserved4      : 6;
585*437bfbebSnyanmisaka         RK_U32 atf_e          : 1;
586*437bfbebSnyanmisaka         RK_U32 atr_e          : 1;
587*437bfbebSnyanmisaka         RK_U32 reserved5      : 2;
588*437bfbebSnyanmisaka     } rdo_cfg;
589*437bfbebSnyanmisaka 
590*437bfbebSnyanmisaka     /* 0x000003a4 reg233 */
591*437bfbebSnyanmisaka     struct {
592*437bfbebSnyanmisaka         RK_U32 rdo_mark_mode    : 9;
593*437bfbebSnyanmisaka         RK_U32 reserved         : 23;
594*437bfbebSnyanmisaka     } iprd_csts;
595*437bfbebSnyanmisaka 
596*437bfbebSnyanmisaka     /* 0x3a8 - 0x3ac */
597*437bfbebSnyanmisaka     RK_U32 reserved234_235[2];
598*437bfbebSnyanmisaka 
599*437bfbebSnyanmisaka     /* 0x000003b0 reg236 */
600*437bfbebSnyanmisaka     struct {
601*437bfbebSnyanmisaka         RK_U32 nal_ref_idc      : 2;
602*437bfbebSnyanmisaka         RK_U32 nal_unit_type    : 5;
603*437bfbebSnyanmisaka         RK_U32 reserved         : 25;
604*437bfbebSnyanmisaka     } synt_nal;
605*437bfbebSnyanmisaka 
606*437bfbebSnyanmisaka     /* 0x000003b4 reg237 */
607*437bfbebSnyanmisaka     struct {
608*437bfbebSnyanmisaka         RK_U32 max_fnum    : 4;
609*437bfbebSnyanmisaka         RK_U32 drct_8x8    : 1;
610*437bfbebSnyanmisaka         RK_U32 mpoc_lm4    : 4;
611*437bfbebSnyanmisaka         RK_U32 reserved    : 23;
612*437bfbebSnyanmisaka     } synt_sps;
613*437bfbebSnyanmisaka 
614*437bfbebSnyanmisaka     /* 0x000003b8 reg238 */
615*437bfbebSnyanmisaka     struct {
616*437bfbebSnyanmisaka         RK_U32 etpy_mode       : 1;
617*437bfbebSnyanmisaka         RK_U32 trns_8x8        : 1;
618*437bfbebSnyanmisaka         RK_U32 csip_flag       : 1;
619*437bfbebSnyanmisaka         RK_U32 num_ref0_idx    : 2;
620*437bfbebSnyanmisaka         RK_U32 num_ref1_idx    : 2;
621*437bfbebSnyanmisaka         RK_U32 pic_init_qp     : 6;
622*437bfbebSnyanmisaka         RK_U32 cb_ofst         : 5;
623*437bfbebSnyanmisaka         RK_U32 cr_ofst         : 5;
624*437bfbebSnyanmisaka         RK_U32 reserved        : 1;
625*437bfbebSnyanmisaka         RK_U32 dbf_cp_flg      : 1;
626*437bfbebSnyanmisaka         RK_U32 reserved1       : 7;
627*437bfbebSnyanmisaka     } synt_pps;
628*437bfbebSnyanmisaka 
629*437bfbebSnyanmisaka     /* 0x000003bc reg239 */
630*437bfbebSnyanmisaka     struct {
631*437bfbebSnyanmisaka         RK_U32 sli_type        : 2;
632*437bfbebSnyanmisaka         RK_U32 pps_id          : 8;
633*437bfbebSnyanmisaka         RK_U32 drct_smvp       : 1;
634*437bfbebSnyanmisaka         RK_U32 num_ref_ovrd    : 1;
635*437bfbebSnyanmisaka         RK_U32 cbc_init_idc    : 2;
636*437bfbebSnyanmisaka         RK_U32 reserved        : 2;
637*437bfbebSnyanmisaka         RK_U32 frm_num         : 16;
638*437bfbebSnyanmisaka     } synt_sli0;
639*437bfbebSnyanmisaka 
640*437bfbebSnyanmisaka     /* 0x000003c0 reg240 */
641*437bfbebSnyanmisaka     struct {
642*437bfbebSnyanmisaka         RK_U32 idr_pid    : 16;
643*437bfbebSnyanmisaka         RK_U32 poc_lsb    : 16;
644*437bfbebSnyanmisaka     } synt_sli1;
645*437bfbebSnyanmisaka 
646*437bfbebSnyanmisaka     /* 0x000003c4 reg241 */
647*437bfbebSnyanmisaka     struct {
648*437bfbebSnyanmisaka         RK_U32 rodr_pic_idx      : 2;
649*437bfbebSnyanmisaka         RK_U32 ref_list0_rodr    : 1;
650*437bfbebSnyanmisaka         RK_U32 sli_beta_ofst     : 4;
651*437bfbebSnyanmisaka         RK_U32 sli_alph_ofst     : 4;
652*437bfbebSnyanmisaka         RK_U32 dis_dblk_idc      : 2;
653*437bfbebSnyanmisaka         RK_U32 reserved          : 3;
654*437bfbebSnyanmisaka         RK_U32 rodr_pic_num      : 16;
655*437bfbebSnyanmisaka     } synt_sli2;
656*437bfbebSnyanmisaka 
657*437bfbebSnyanmisaka     /* 0x000003c8 reg242 */
658*437bfbebSnyanmisaka     struct {
659*437bfbebSnyanmisaka         RK_U32 nopp_flg      : 1;
660*437bfbebSnyanmisaka         RK_U32 ltrf_flg      : 1;
661*437bfbebSnyanmisaka         RK_U32 arpm_flg      : 1;
662*437bfbebSnyanmisaka         RK_U32 mmco4_pre     : 1;
663*437bfbebSnyanmisaka         RK_U32 mmco_type0    : 3;
664*437bfbebSnyanmisaka         RK_U32 mmco_parm0    : 16;
665*437bfbebSnyanmisaka         RK_U32 mmco_type1    : 3;
666*437bfbebSnyanmisaka         RK_U32 mmco_type2    : 3;
667*437bfbebSnyanmisaka         RK_U32 reserved      : 3;
668*437bfbebSnyanmisaka     } synt_refm0;
669*437bfbebSnyanmisaka 
670*437bfbebSnyanmisaka     /* 0x000003cc reg243 */
671*437bfbebSnyanmisaka     struct {
672*437bfbebSnyanmisaka         RK_U32 mmco_parm1    : 16;
673*437bfbebSnyanmisaka         RK_U32 mmco_parm2    : 16;
674*437bfbebSnyanmisaka     } synt_refm1;
675*437bfbebSnyanmisaka 
676*437bfbebSnyanmisaka     /* 0x000003d0 reg244 */
677*437bfbebSnyanmisaka     struct {
678*437bfbebSnyanmisaka         RK_U32 long_term_frame_idx0    : 4;
679*437bfbebSnyanmisaka         RK_U32 long_term_frame_idx1    : 4;
680*437bfbebSnyanmisaka         RK_U32 long_term_frame_idx2    : 4;
681*437bfbebSnyanmisaka         RK_U32 reserved                : 20;
682*437bfbebSnyanmisaka     } synt_refm2;
683*437bfbebSnyanmisaka 
684*437bfbebSnyanmisaka     /* 0x3d4 - 0x3ec */
685*437bfbebSnyanmisaka     RK_U32 reserved248_251[7];
686*437bfbebSnyanmisaka 
687*437bfbebSnyanmisaka     /* 0x000003f0 reg252 */
688*437bfbebSnyanmisaka     struct {
689*437bfbebSnyanmisaka         RK_U32 mv_v_lmt_thd    : 14;
690*437bfbebSnyanmisaka         RK_U32 reserved        : 1;
691*437bfbebSnyanmisaka         RK_U32 mv_v_lmt_en     : 1;
692*437bfbebSnyanmisaka         RK_U32 reserved1       : 16;
693*437bfbebSnyanmisaka     } sli_cfg;
694*437bfbebSnyanmisaka 
695*437bfbebSnyanmisaka     /* 0x3f4 - 0x3fc */
696*437bfbebSnyanmisaka     RK_U32 reserved253_255[3];
697*437bfbebSnyanmisaka 
698*437bfbebSnyanmisaka     /* 0x00000400 reg256 - 0x00000480 reg288 */
699*437bfbebSnyanmisaka     Vepu540cJpegReg jpegReg;
700*437bfbebSnyanmisaka 
701*437bfbebSnyanmisaka } Vepu540cBaseCfg;
702*437bfbebSnyanmisaka 
703*437bfbebSnyanmisaka /* class: rc/roi/aq/klut */
704*437bfbebSnyanmisaka /* 0x00001000 reg1024 - 0x000010e0 reg1080 */
705*437bfbebSnyanmisaka typedef struct Vepu540cRcROiCfg_t {
706*437bfbebSnyanmisaka     /* 0x00001000 reg1024 */
707*437bfbebSnyanmisaka     struct {
708*437bfbebSnyanmisaka         RK_U32 qp_adj0     : 5;
709*437bfbebSnyanmisaka         RK_U32 qp_adj1     : 5;
710*437bfbebSnyanmisaka         RK_U32 qp_adj2     : 5;
711*437bfbebSnyanmisaka         RK_U32 qp_adj3     : 5;
712*437bfbebSnyanmisaka         RK_U32 qp_adj4     : 5;
713*437bfbebSnyanmisaka         RK_U32 reserved    : 7;
714*437bfbebSnyanmisaka     } rc_adj0;
715*437bfbebSnyanmisaka 
716*437bfbebSnyanmisaka     /* 0x00001004 reg1025 */
717*437bfbebSnyanmisaka     struct {
718*437bfbebSnyanmisaka         RK_U32 qp_adj5     : 5;
719*437bfbebSnyanmisaka         RK_U32 qp_adj6     : 5;
720*437bfbebSnyanmisaka         RK_U32 qp_adj7     : 5;
721*437bfbebSnyanmisaka         RK_U32 qp_adj8     : 5;
722*437bfbebSnyanmisaka         RK_U32 reserved    : 12;
723*437bfbebSnyanmisaka     } rc_adj1;
724*437bfbebSnyanmisaka 
725*437bfbebSnyanmisaka     /* 0x00001008 reg1026 - 0x00001028 reg1034 */
726*437bfbebSnyanmisaka     RK_U32 rc_dthd_0_8[9];
727*437bfbebSnyanmisaka 
728*437bfbebSnyanmisaka     /* 0x102c */
729*437bfbebSnyanmisaka     RK_U32 reserved_1035;
730*437bfbebSnyanmisaka 
731*437bfbebSnyanmisaka     /* 0x00001030 reg1036 */
732*437bfbebSnyanmisaka     struct {
733*437bfbebSnyanmisaka         RK_U32 qpmin_area0    : 6;
734*437bfbebSnyanmisaka         RK_U32 qpmax_area0    : 6;
735*437bfbebSnyanmisaka         RK_U32 qpmin_area1    : 6;
736*437bfbebSnyanmisaka         RK_U32 qpmax_area1    : 6;
737*437bfbebSnyanmisaka         RK_U32 qpmin_area2    : 6;
738*437bfbebSnyanmisaka         RK_U32 reserved       : 2;
739*437bfbebSnyanmisaka     } roi_qthd0;
740*437bfbebSnyanmisaka 
741*437bfbebSnyanmisaka     /* 0x00001034 reg1037 */
742*437bfbebSnyanmisaka     struct {
743*437bfbebSnyanmisaka         RK_U32 qpmax_area2    : 6;
744*437bfbebSnyanmisaka         RK_U32 qpmin_area3    : 6;
745*437bfbebSnyanmisaka         RK_U32 qpmax_area3    : 6;
746*437bfbebSnyanmisaka         RK_U32 qpmin_area4    : 6;
747*437bfbebSnyanmisaka         RK_U32 qpmax_area4    : 6;
748*437bfbebSnyanmisaka         RK_U32 reserved       : 2;
749*437bfbebSnyanmisaka     } roi_qthd1;
750*437bfbebSnyanmisaka 
751*437bfbebSnyanmisaka     /* 0x00001038 reg1038 */
752*437bfbebSnyanmisaka     struct {
753*437bfbebSnyanmisaka         RK_U32 qpmin_area5    : 6;
754*437bfbebSnyanmisaka         RK_U32 qpmax_area5    : 6;
755*437bfbebSnyanmisaka         RK_U32 qpmin_area6    : 6;
756*437bfbebSnyanmisaka         RK_U32 qpmax_area6    : 6;
757*437bfbebSnyanmisaka         RK_U32 qpmin_area7    : 6;
758*437bfbebSnyanmisaka         RK_U32 reserved       : 2;
759*437bfbebSnyanmisaka     } roi_qthd2;
760*437bfbebSnyanmisaka 
761*437bfbebSnyanmisaka     /* 0x0000103c reg1039 */
762*437bfbebSnyanmisaka     struct {
763*437bfbebSnyanmisaka         RK_U32 qpmax_area7    : 6;
764*437bfbebSnyanmisaka         RK_U32 reserved       : 24;
765*437bfbebSnyanmisaka         RK_U32 qpmap_mode     : 2;
766*437bfbebSnyanmisaka     } roi_qthd3;
767*437bfbebSnyanmisaka 
768*437bfbebSnyanmisaka     /* 0x1040 */
769*437bfbebSnyanmisaka     RK_U32 reserved_1040;
770*437bfbebSnyanmisaka 
771*437bfbebSnyanmisaka     /* 0x00001044 reg1041 - 0x00001050 reg1044 */
772*437bfbebSnyanmisaka     RK_U8 aq_tthd[16];
773*437bfbebSnyanmisaka 
774*437bfbebSnyanmisaka     /*
775*437bfbebSnyanmisaka      * 0x00001054 reg1045 - 0x00001060 reg1048
776*437bfbebSnyanmisaka      * only low 6 bits is valid for per step.
777*437bfbebSnyanmisaka      */
778*437bfbebSnyanmisaka     RK_U8 aq_step[16];
779*437bfbebSnyanmisaka 
780*437bfbebSnyanmisaka     /* 0x00001064 reg1049 */
781*437bfbebSnyanmisaka     struct {
782*437bfbebSnyanmisaka         RK_U32 madi_th0    : 8;
783*437bfbebSnyanmisaka         RK_U32 madi_th1    : 8;
784*437bfbebSnyanmisaka         RK_U32 madi_th2    : 8;
785*437bfbebSnyanmisaka         RK_U32 reserved    : 8;
786*437bfbebSnyanmisaka     } madi_st_thd;
787*437bfbebSnyanmisaka 
788*437bfbebSnyanmisaka     /* 0x00001068 reg1050 */
789*437bfbebSnyanmisaka     struct {
790*437bfbebSnyanmisaka         RK_U32 madp_th0     : 12;
791*437bfbebSnyanmisaka         RK_U32 reserved     : 4;
792*437bfbebSnyanmisaka         RK_U32 madp_th1     : 12;
793*437bfbebSnyanmisaka         RK_U32 reserved1    : 4;
794*437bfbebSnyanmisaka     } madp_st_thd0;
795*437bfbebSnyanmisaka 
796*437bfbebSnyanmisaka     /* 0x0000106c reg1051 */
797*437bfbebSnyanmisaka     struct {
798*437bfbebSnyanmisaka         RK_U32 madp_th2    : 12;
799*437bfbebSnyanmisaka         RK_U32 reserved    : 20;
800*437bfbebSnyanmisaka     } madp_st_thd1;
801*437bfbebSnyanmisaka 
802*437bfbebSnyanmisaka     /* 0x1070 - 0x1078 */
803*437bfbebSnyanmisaka     RK_U32 reserved1052_1054[3];
804*437bfbebSnyanmisaka 
805*437bfbebSnyanmisaka     /* 0x0000107c reg1055 */
806*437bfbebSnyanmisaka     struct {
807*437bfbebSnyanmisaka         RK_U32 chrm_klut_ofst                : 4;
808*437bfbebSnyanmisaka         RK_U32 reserved                      : 4;
809*437bfbebSnyanmisaka         RK_U32 inter_chrm_dist_multi_hevc    : 6;
810*437bfbebSnyanmisaka         RK_U32 reserved1                     : 18;
811*437bfbebSnyanmisaka     } klut_ofst;
812*437bfbebSnyanmisaka     /*0x00001080 reg1056 - 0x0000110c reg1091 */
813*437bfbebSnyanmisaka     Vepu540cRoiCfg roi_cfg;
814*437bfbebSnyanmisaka } Vepu540cRcRoiCfg;
815*437bfbebSnyanmisaka 
816*437bfbebSnyanmisaka /* class: iprd/iprd_wgt/rdo_wgta/prei_dif/sobel */
817*437bfbebSnyanmisaka /* 0x00001700 reg1472 - 0x00001cd4 reg1845 */
818*437bfbebSnyanmisaka typedef struct Vepu540cSection3_t {
819*437bfbebSnyanmisaka     /* 0x1700 */
820*437bfbebSnyanmisaka     /* 0x00001700 reg1472 */
821*437bfbebSnyanmisaka     struct {
822*437bfbebSnyanmisaka         RK_U32 iprd_tthdy4_0    : 12;
823*437bfbebSnyanmisaka         RK_U32 reserved         : 4;
824*437bfbebSnyanmisaka         RK_U32 iprd_tthdy4_1    : 12;
825*437bfbebSnyanmisaka         RK_U32 reserved1        : 4;
826*437bfbebSnyanmisaka     } iprd_tthdy4_0;
827*437bfbebSnyanmisaka 
828*437bfbebSnyanmisaka     /* 0x00001704 reg1473 */
829*437bfbebSnyanmisaka     struct {
830*437bfbebSnyanmisaka         RK_U32 iprd_tthdy4_2    : 12;
831*437bfbebSnyanmisaka         RK_U32 reserved         : 4;
832*437bfbebSnyanmisaka         RK_U32 iprd_tthdy4_3    : 12;
833*437bfbebSnyanmisaka         RK_U32 reserved1        : 4;
834*437bfbebSnyanmisaka     } iprd_tthdy4_1;
835*437bfbebSnyanmisaka 
836*437bfbebSnyanmisaka     /* 0x00001708 reg1474 */
837*437bfbebSnyanmisaka     struct {
838*437bfbebSnyanmisaka         RK_U32 iprd_tthdc8_0    : 12;
839*437bfbebSnyanmisaka         RK_U32 reserved         : 4;
840*437bfbebSnyanmisaka         RK_U32 iprd_tthdc8_1    : 12;
841*437bfbebSnyanmisaka         RK_U32 reserved1        : 4;
842*437bfbebSnyanmisaka     } iprd_tthdc8_0;
843*437bfbebSnyanmisaka 
844*437bfbebSnyanmisaka     /* 0x0000170c reg1475 */
845*437bfbebSnyanmisaka     struct {
846*437bfbebSnyanmisaka         RK_U32 iprd_tthdc8_2    : 12;
847*437bfbebSnyanmisaka         RK_U32 reserved         : 4;
848*437bfbebSnyanmisaka         RK_U32 iprd_tthdc8_3    : 12;
849*437bfbebSnyanmisaka         RK_U32 reserved1        : 4;
850*437bfbebSnyanmisaka     } iprd_tthdc8_1;
851*437bfbebSnyanmisaka 
852*437bfbebSnyanmisaka     /* 0x00001710 reg1476 */
853*437bfbebSnyanmisaka     struct {
854*437bfbebSnyanmisaka         RK_U32 iprd_tthdy8_0    : 12;
855*437bfbebSnyanmisaka         RK_U32 reserved         : 4;
856*437bfbebSnyanmisaka         RK_U32 iprd_tthdy8_1    : 12;
857*437bfbebSnyanmisaka         RK_U32 reserved1        : 4;
858*437bfbebSnyanmisaka     } iprd_tthdy8_0;
859*437bfbebSnyanmisaka 
860*437bfbebSnyanmisaka     /* 0x00001714 reg1477 */
861*437bfbebSnyanmisaka     struct {
862*437bfbebSnyanmisaka         RK_U32 iprd_tthdy8_2    : 12;
863*437bfbebSnyanmisaka         RK_U32 reserved         : 4;
864*437bfbebSnyanmisaka         RK_U32 iprd_tthdy8_3    : 12;
865*437bfbebSnyanmisaka         RK_U32 reserved1        : 4;
866*437bfbebSnyanmisaka     } iprd_tthdy8_1;
867*437bfbebSnyanmisaka 
868*437bfbebSnyanmisaka     /* 0x00001718 reg1478 */
869*437bfbebSnyanmisaka     struct {
870*437bfbebSnyanmisaka         RK_U32 iprd_tthd_ul    : 12;
871*437bfbebSnyanmisaka         RK_U32 reserved        : 20;
872*437bfbebSnyanmisaka     } iprd_tthd_ul;
873*437bfbebSnyanmisaka 
874*437bfbebSnyanmisaka     /* 0x0000171c reg1479 */
875*437bfbebSnyanmisaka     struct {
876*437bfbebSnyanmisaka         RK_U32 iprd_wgty8_0    : 8;
877*437bfbebSnyanmisaka         RK_U32 iprd_wgty8_1    : 8;
878*437bfbebSnyanmisaka         RK_U32 iprd_wgty8_2    : 8;
879*437bfbebSnyanmisaka         RK_U32 iprd_wgty8_3    : 8;
880*437bfbebSnyanmisaka     } iprd_wgty8;
881*437bfbebSnyanmisaka 
882*437bfbebSnyanmisaka     /* 0x00001720 reg1480 */
883*437bfbebSnyanmisaka     struct {
884*437bfbebSnyanmisaka         RK_U32 iprd_wgty4_0    : 8;
885*437bfbebSnyanmisaka         RK_U32 iprd_wgty4_1    : 8;
886*437bfbebSnyanmisaka         RK_U32 iprd_wgty4_2    : 8;
887*437bfbebSnyanmisaka         RK_U32 iprd_wgty4_3    : 8;
888*437bfbebSnyanmisaka     } iprd_wgty4;
889*437bfbebSnyanmisaka 
890*437bfbebSnyanmisaka     /* 0x00001724 reg1481 */
891*437bfbebSnyanmisaka     struct {
892*437bfbebSnyanmisaka         RK_U32 iprd_wgty16_0    : 8;
893*437bfbebSnyanmisaka         RK_U32 iprd_wgty16_1    : 8;
894*437bfbebSnyanmisaka         RK_U32 iprd_wgty16_2    : 8;
895*437bfbebSnyanmisaka         RK_U32 iprd_wgty16_3    : 8;
896*437bfbebSnyanmisaka     } iprd_wgty16;
897*437bfbebSnyanmisaka 
898*437bfbebSnyanmisaka     /* 0x00001728 reg1482 */
899*437bfbebSnyanmisaka     struct {
900*437bfbebSnyanmisaka         RK_U32 iprd_wgtc8_0    : 8;
901*437bfbebSnyanmisaka         RK_U32 iprd_wgtc8_1    : 8;
902*437bfbebSnyanmisaka         RK_U32 iprd_wgtc8_2    : 8;
903*437bfbebSnyanmisaka         RK_U32 iprd_wgtc8_3    : 8;
904*437bfbebSnyanmisaka     } iprd_wgtc8;
905*437bfbebSnyanmisaka 
906*437bfbebSnyanmisaka     /* 0x172c */
907*437bfbebSnyanmisaka     RK_U32 reserved_1483;
908*437bfbebSnyanmisaka 
909*437bfbebSnyanmisaka     /* 0x00001730 reg1484 */
910*437bfbebSnyanmisaka     struct {
911*437bfbebSnyanmisaka         RK_U32    quant_f_bias_I : 10;
912*437bfbebSnyanmisaka         RK_U32    quant_f_bias_P : 10;
913*437bfbebSnyanmisaka         RK_U32    reserve : 12;
914*437bfbebSnyanmisaka     } RDO_QUANT;
915*437bfbebSnyanmisaka 
916*437bfbebSnyanmisaka     /* 0x1734 - 0x173c */
917*437bfbebSnyanmisaka     RK_U32 reserved1485_1487[3];
918*437bfbebSnyanmisaka 
919*437bfbebSnyanmisaka     /* 0x00001740 reg1488 */
920*437bfbebSnyanmisaka     // atr
921*437bfbebSnyanmisaka     struct {
922*437bfbebSnyanmisaka         RK_U32    atr_thd0 : 12;
923*437bfbebSnyanmisaka         RK_U32    reserve0 : 4;
924*437bfbebSnyanmisaka         RK_U32    atr_thd1 : 12;
925*437bfbebSnyanmisaka         RK_U32    reserve1 : 4;
926*437bfbebSnyanmisaka     } ATR_THD0; //       only 264
927*437bfbebSnyanmisaka 
928*437bfbebSnyanmisaka     /* 0x1744 */
929*437bfbebSnyanmisaka     struct {
930*437bfbebSnyanmisaka         RK_U32    atr_thd2 : 12;
931*437bfbebSnyanmisaka         RK_U32    reserve0 : 4;
932*437bfbebSnyanmisaka         RK_U32    atr_thdqp : 6;
933*437bfbebSnyanmisaka         RK_U32    reserve1 : 10;
934*437bfbebSnyanmisaka     } ATR_THD1; //       only 264
935*437bfbebSnyanmisaka 
936*437bfbebSnyanmisaka     /* 0x1748 */
937*437bfbebSnyanmisaka     struct {
938*437bfbebSnyanmisaka         RK_U32    atr1_thd0 : 12;
939*437bfbebSnyanmisaka         RK_U32    reserve0 : 4;
940*437bfbebSnyanmisaka         RK_U32    atr1_thd1 : 12;
941*437bfbebSnyanmisaka         RK_U32    reserve1 : 4;
942*437bfbebSnyanmisaka     } ATR_THD10; //       only 264
943*437bfbebSnyanmisaka 
944*437bfbebSnyanmisaka     /* 0x174c */
945*437bfbebSnyanmisaka     struct {
946*437bfbebSnyanmisaka         RK_U32    atr1_thd2 : 12;
947*437bfbebSnyanmisaka         RK_U32    reserve1 : 20;
948*437bfbebSnyanmisaka     } ATR_THD11; //       only 264
949*437bfbebSnyanmisaka 
950*437bfbebSnyanmisaka     // /* 0x1748 - 0x174c */
951*437bfbebSnyanmisaka     // RK_U32 reserved1490_1491[2];
952*437bfbebSnyanmisaka 
953*437bfbebSnyanmisaka     /* 0x00001750 reg1492 */
954*437bfbebSnyanmisaka     struct {
955*437bfbebSnyanmisaka         RK_U32    lvl16_atr_wgt0 : 8;
956*437bfbebSnyanmisaka         RK_U32    lvl16_atr_wgt1 : 8;
957*437bfbebSnyanmisaka         RK_U32    lvl16_atr_wgt2 : 8;
958*437bfbebSnyanmisaka         RK_U32    reserved       : 8;
959*437bfbebSnyanmisaka     } Lvl16_ATR_WGT; //      only 264
960*437bfbebSnyanmisaka 
961*437bfbebSnyanmisaka     /* 0x1754 */
962*437bfbebSnyanmisaka     struct {
963*437bfbebSnyanmisaka         RK_U32    lvl8_atr_wgt0 : 8;
964*437bfbebSnyanmisaka         RK_U32    lvl8_atr_wgt1 : 8;
965*437bfbebSnyanmisaka         RK_U32    lvl8_atr_wgt2 : 8;
966*437bfbebSnyanmisaka         RK_U32    reserved      : 8;
967*437bfbebSnyanmisaka     } Lvl8_ATR_WGT; //      only 264
968*437bfbebSnyanmisaka 
969*437bfbebSnyanmisaka     /* 0x1758 */
970*437bfbebSnyanmisaka     struct {
971*437bfbebSnyanmisaka         RK_U32    lvl4_atr_wgt0 : 8;
972*437bfbebSnyanmisaka         RK_U32    lvl4_atr_wgt1 : 8;
973*437bfbebSnyanmisaka         RK_U32    lvl4_atr_wgt2 : 8;
974*437bfbebSnyanmisaka         RK_U32    reserved      : 8;
975*437bfbebSnyanmisaka     } Lvl4_ATR_WGT; //      only 264
976*437bfbebSnyanmisaka 
977*437bfbebSnyanmisaka     /* 0x175c */
978*437bfbebSnyanmisaka     RK_U32 reserved_1495;
979*437bfbebSnyanmisaka 
980*437bfbebSnyanmisaka     /* 0x00001760 reg1496 */
981*437bfbebSnyanmisaka     struct {
982*437bfbebSnyanmisaka         RK_U32 cime_pmv_num      : 1;
983*437bfbebSnyanmisaka         RK_U32 cime_fuse         : 1;
984*437bfbebSnyanmisaka         RK_U32 itp_mode          : 1;
985*437bfbebSnyanmisaka         RK_U32 reserved          : 1;
986*437bfbebSnyanmisaka         RK_U32 move_lambda       : 4;
987*437bfbebSnyanmisaka         RK_U32 rime_lvl_mrg      : 2;
988*437bfbebSnyanmisaka         RK_U32 rime_prelvl_en    : 2;
989*437bfbebSnyanmisaka         RK_U32 rime_prersu_en    : 3;
990*437bfbebSnyanmisaka         RK_U32 reserved1         : 17;
991*437bfbebSnyanmisaka     } cime_sqi_cfg;
992*437bfbebSnyanmisaka 
993*437bfbebSnyanmisaka     /* 0x00001764 reg1497 */
994*437bfbebSnyanmisaka     struct {
995*437bfbebSnyanmisaka         RK_U32 cime_mvd_th0    : 9;
996*437bfbebSnyanmisaka         RK_U32 reserved        : 1;
997*437bfbebSnyanmisaka         RK_U32 cime_mvd_th1    : 9;
998*437bfbebSnyanmisaka         RK_U32 reserved1       : 1;
999*437bfbebSnyanmisaka         RK_U32 cime_mvd_th2    : 9;
1000*437bfbebSnyanmisaka         RK_U32 reserved2       : 3;
1001*437bfbebSnyanmisaka     }  cime_mvd_th;
1002*437bfbebSnyanmisaka 
1003*437bfbebSnyanmisaka     /* 0x00001768 reg1498 */
1004*437bfbebSnyanmisaka     struct {
1005*437bfbebSnyanmisaka         RK_U32 cime_madp_th    : 12;
1006*437bfbebSnyanmisaka         RK_U32 reserved        : 20;
1007*437bfbebSnyanmisaka     } cime_madp_th;
1008*437bfbebSnyanmisaka 
1009*437bfbebSnyanmisaka     /* 0x0000176c reg1499 */
1010*437bfbebSnyanmisaka     struct {
1011*437bfbebSnyanmisaka         RK_U32 cime_multi0    : 8;
1012*437bfbebSnyanmisaka         RK_U32 cime_multi1    : 8;
1013*437bfbebSnyanmisaka         RK_U32 cime_multi2    : 8;
1014*437bfbebSnyanmisaka         RK_U32 cime_multi3    : 8;
1015*437bfbebSnyanmisaka     } cime_multi;
1016*437bfbebSnyanmisaka 
1017*437bfbebSnyanmisaka     /* 0x00001770 reg1500 */
1018*437bfbebSnyanmisaka     struct {
1019*437bfbebSnyanmisaka         RK_U32 rime_mvd_th0    : 3;
1020*437bfbebSnyanmisaka         RK_U32 reserved        : 1;
1021*437bfbebSnyanmisaka         RK_U32 rime_mvd_th1    : 3;
1022*437bfbebSnyanmisaka         RK_U32 reserved1       : 9;
1023*437bfbebSnyanmisaka         RK_U32 fme_madp_th     : 12;
1024*437bfbebSnyanmisaka         RK_U32 reserved2       : 4;
1025*437bfbebSnyanmisaka     } rime_mvd_th;
1026*437bfbebSnyanmisaka 
1027*437bfbebSnyanmisaka     /* 0x00001774 reg1501 */
1028*437bfbebSnyanmisaka     struct {
1029*437bfbebSnyanmisaka         RK_U32 rime_madp_th0    : 12;
1030*437bfbebSnyanmisaka         RK_U32 reserved         : 4;
1031*437bfbebSnyanmisaka         RK_U32 rime_madp_th1    : 12;
1032*437bfbebSnyanmisaka         RK_U32 reserved1        : 4;
1033*437bfbebSnyanmisaka     } rime_madp_th;
1034*437bfbebSnyanmisaka 
1035*437bfbebSnyanmisaka     /* 0x00001778 reg1502 */
1036*437bfbebSnyanmisaka     struct {
1037*437bfbebSnyanmisaka         RK_U32 rime_multi0    : 10;
1038*437bfbebSnyanmisaka         RK_U32 rime_multi1    : 10;
1039*437bfbebSnyanmisaka         RK_U32 rime_multi2    : 10;
1040*437bfbebSnyanmisaka         RK_U32 reserved       : 2;
1041*437bfbebSnyanmisaka     } rime_multi;
1042*437bfbebSnyanmisaka 
1043*437bfbebSnyanmisaka     /* 0x0000177c reg1503 */
1044*437bfbebSnyanmisaka     struct {
1045*437bfbebSnyanmisaka         RK_U32 cmv_th0     : 8;
1046*437bfbebSnyanmisaka         RK_U32 cmv_th1     : 8;
1047*437bfbebSnyanmisaka         RK_U32 cmv_th2     : 8;
1048*437bfbebSnyanmisaka         RK_U32 reserved    : 8;
1049*437bfbebSnyanmisaka     }  cmv_st_th;
1050*437bfbebSnyanmisaka 
1051*437bfbebSnyanmisaka     /* 0x1780 - 0x17fc */
1052*437bfbebSnyanmisaka     RK_U32 reserved1504_1535[32];
1053*437bfbebSnyanmisaka 
1054*437bfbebSnyanmisaka     /* 0x00001800 - 0x18fc */
1055*437bfbebSnyanmisaka     RK_U32 reserved1537_1599[64];
1056*437bfbebSnyanmisaka 
1057*437bfbebSnyanmisaka     /* wgt_qp48_grpa */
1058*437bfbebSnyanmisaka     /* 0x00001900 reg1600 - 0x19cc */
1059*437bfbebSnyanmisaka     RK_U32 rdo_wgta_qp_grpa_0_51[52];
1060*437bfbebSnyanmisaka } Vepu540cSection3;
1061*437bfbebSnyanmisaka 
1062*437bfbebSnyanmisaka /* class: mmu */
1063*437bfbebSnyanmisaka /* 0x0000f000 reg15360 - 0x0000f064 reg15385 */
1064*437bfbebSnyanmisaka 
1065*437bfbebSnyanmisaka typedef struct HalVepu540cReg_t {
1066*437bfbebSnyanmisaka     Vepu540cControlCfg   reg_ctl;
1067*437bfbebSnyanmisaka     Vepu540cBaseCfg      reg_base;
1068*437bfbebSnyanmisaka     Vepu540cRcRoiCfg     reg_rc_roi;
1069*437bfbebSnyanmisaka     Vepu540cSection3     reg_s3;
1070*437bfbebSnyanmisaka     vepu540c_rdo_cfg     reg_rdo;
1071*437bfbebSnyanmisaka     vepu540c_scl_cfg     reg_scl;
1072*437bfbebSnyanmisaka     vepu540c_jpeg_tab    jpeg_table;
1073*437bfbebSnyanmisaka     vepu540c_status      reg_st;
1074*437bfbebSnyanmisaka } HalVepu540cRegSet;
1075*437bfbebSnyanmisaka 
1076*437bfbebSnyanmisaka #endif
1077