xref: /rockchip-linux_mpp/mpp/hal/rkenc/h265e/hal_h265e_vepu540c_reg.h (revision 437bfbeb9567cca9cd9080e3f6954aa9d6a94f18)
1*437bfbebSnyanmisaka /*
2*437bfbebSnyanmisaka  * Copyright 2021 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_H265E_VEPU540C_REG_H__
18*437bfbebSnyanmisaka #define __HAL_H265E_VEPU540C_REG_H__
19*437bfbebSnyanmisaka 
20*437bfbebSnyanmisaka #include "rk_type.h"
21*437bfbebSnyanmisaka #include "vepu540c_common.h"
22*437bfbebSnyanmisaka /* class: control/link */
23*437bfbebSnyanmisaka /* 0x00000000 reg0 - 0x00000120 reg72 */
24*437bfbebSnyanmisaka typedef struct HevcVepu540cControlCfg_t {
25*437bfbebSnyanmisaka     /* 0x00000000 reg0 */
26*437bfbebSnyanmisaka     struct {
27*437bfbebSnyanmisaka         RK_U32 sub_ver      : 8;
28*437bfbebSnyanmisaka         RK_U32 h264_cap     : 1;
29*437bfbebSnyanmisaka         RK_U32 hevc_cap     : 1;
30*437bfbebSnyanmisaka         RK_U32 reserved     : 2;
31*437bfbebSnyanmisaka         RK_U32 res_cap      : 4;
32*437bfbebSnyanmisaka         RK_U32 osd_cap      : 2;
33*437bfbebSnyanmisaka         RK_U32 filtr_cap    : 2;
34*437bfbebSnyanmisaka         RK_U32 bfrm_cap     : 1;
35*437bfbebSnyanmisaka         RK_U32 fbc_cap      : 2;
36*437bfbebSnyanmisaka         RK_U32 reserved1    : 1;
37*437bfbebSnyanmisaka         RK_U32 ip_id        : 8;
38*437bfbebSnyanmisaka     } reg0001_version;
39*437bfbebSnyanmisaka 
40*437bfbebSnyanmisaka     /* 0x4 - 0xc */
41*437bfbebSnyanmisaka     RK_U32 reserved1_3[3];
42*437bfbebSnyanmisaka 
43*437bfbebSnyanmisaka     /* 0x00000010 reg4 */
44*437bfbebSnyanmisaka     struct {
45*437bfbebSnyanmisaka         RK_U32 lkt_num     : 8;
46*437bfbebSnyanmisaka         RK_U32 vepu_cmd    : 3;
47*437bfbebSnyanmisaka         RK_U32 reserved    : 21;
48*437bfbebSnyanmisaka     } reg0004_enc_strt;
49*437bfbebSnyanmisaka 
50*437bfbebSnyanmisaka     /* 0x00000014 reg5 */
51*437bfbebSnyanmisaka     struct {
52*437bfbebSnyanmisaka         RK_U32 safe_clr     : 1;
53*437bfbebSnyanmisaka         RK_U32 force_clr    : 1;
54*437bfbebSnyanmisaka         RK_U32 reserved     : 30;
55*437bfbebSnyanmisaka     } reg0005_enc_clr;
56*437bfbebSnyanmisaka 
57*437bfbebSnyanmisaka     /* 0x18 */
58*437bfbebSnyanmisaka     struct {
59*437bfbebSnyanmisaka         RK_U32 vswm_lcnt_soft    : 14;
60*437bfbebSnyanmisaka         RK_U32 vswm_fcnt_soft    : 8;
61*437bfbebSnyanmisaka         RK_U32 reserved          : 2;
62*437bfbebSnyanmisaka         RK_U32 dvbm_ack_soft     : 1;
63*437bfbebSnyanmisaka         RK_U32 dvbm_ack_sel      : 1;
64*437bfbebSnyanmisaka         RK_U32 dvbm_inf_sel      : 1;
65*437bfbebSnyanmisaka         RK_U32 reserved1         : 5;
66*437bfbebSnyanmisaka     } reg0006_vs_ldly;
67*437bfbebSnyanmisaka 
68*437bfbebSnyanmisaka     /* 0x1c */
69*437bfbebSnyanmisaka     RK_U32 reserved007;
70*437bfbebSnyanmisaka 
71*437bfbebSnyanmisaka     /* 0x00000020 reg8 */
72*437bfbebSnyanmisaka     struct {
73*437bfbebSnyanmisaka         RK_U32 enc_done_en          : 1;
74*437bfbebSnyanmisaka         RK_U32 lkt_node_done_en     : 1;
75*437bfbebSnyanmisaka         RK_U32 sclr_done_en         : 1;
76*437bfbebSnyanmisaka         RK_U32 vslc_done_en         : 1;
77*437bfbebSnyanmisaka         RK_U32 vbsf_oflw_en         : 1;
78*437bfbebSnyanmisaka         RK_U32 vbuf_lens_en         : 1;
79*437bfbebSnyanmisaka         RK_U32 enc_err_en           : 1;
80*437bfbebSnyanmisaka         RK_U32 dvbm_fcfg_en         : 1;
81*437bfbebSnyanmisaka         RK_U32 wdg_en               : 1;
82*437bfbebSnyanmisaka         RK_U32 lkt_err_int_en       : 1;
83*437bfbebSnyanmisaka         RK_U32 lkt_err_stop_en      : 1;
84*437bfbebSnyanmisaka         RK_U32 lkt_force_stop_en    : 1;
85*437bfbebSnyanmisaka         RK_U32 jslc_done_en         : 1;
86*437bfbebSnyanmisaka         RK_U32 jbsf_oflw_en         : 1;
87*437bfbebSnyanmisaka         RK_U32 jbuf_lens_en         : 1;
88*437bfbebSnyanmisaka         RK_U32 dvbm_dcnt_en         : 1;
89*437bfbebSnyanmisaka         RK_U32 reserved             : 16;
90*437bfbebSnyanmisaka     } reg0008_int_en;
91*437bfbebSnyanmisaka 
92*437bfbebSnyanmisaka     /* 0x00000024 reg9 */
93*437bfbebSnyanmisaka     struct {
94*437bfbebSnyanmisaka         RK_U32 enc_done_msk          : 1;
95*437bfbebSnyanmisaka         RK_U32 lkt_node_done_msk     : 1;
96*437bfbebSnyanmisaka         RK_U32 sclr_done_msk         : 1;
97*437bfbebSnyanmisaka         RK_U32 vslc_done_msk         : 1;
98*437bfbebSnyanmisaka         RK_U32 vbsf_oflw_msk         : 1;
99*437bfbebSnyanmisaka         RK_U32 vbuf_lens_msk         : 1;
100*437bfbebSnyanmisaka         RK_U32 enc_err_msk           : 1;
101*437bfbebSnyanmisaka         RK_U32 dvbm_fcfg_msk         : 1;
102*437bfbebSnyanmisaka         RK_U32 wdg_msk               : 1;
103*437bfbebSnyanmisaka         RK_U32 lkt_err_int_msk       : 1;
104*437bfbebSnyanmisaka         RK_U32 lkt_err_stop_msk      : 1;
105*437bfbebSnyanmisaka         RK_U32 lkt_force_stop_msk    : 1;
106*437bfbebSnyanmisaka         RK_U32 jslc_done_msk         : 1;
107*437bfbebSnyanmisaka         RK_U32 jbsf_oflw_msk         : 1;
108*437bfbebSnyanmisaka         RK_U32 jbuf_lens_msk         : 1;
109*437bfbebSnyanmisaka         RK_U32 dvbm_dcnt_msk         : 1;
110*437bfbebSnyanmisaka         RK_U32 reserved              : 16;
111*437bfbebSnyanmisaka     } reg0009_int_msk;
112*437bfbebSnyanmisaka 
113*437bfbebSnyanmisaka     /* 0x00000028 reg10 */
114*437bfbebSnyanmisaka     struct {
115*437bfbebSnyanmisaka         RK_U32 enc_done_clr          : 1;
116*437bfbebSnyanmisaka         RK_U32 lkt_node_done_clr     : 1;
117*437bfbebSnyanmisaka         RK_U32 sclr_done_clr         : 1;
118*437bfbebSnyanmisaka         RK_U32 vslc_done_clr         : 1;
119*437bfbebSnyanmisaka         RK_U32 vbsf_oflw_clr         : 1;
120*437bfbebSnyanmisaka         RK_U32 vbuf_lens_clr         : 1;
121*437bfbebSnyanmisaka         RK_U32 enc_err_clr           : 1;
122*437bfbebSnyanmisaka         RK_U32 dvbm_fcfg_clr         : 1;
123*437bfbebSnyanmisaka         RK_U32 wdg_clr               : 1;
124*437bfbebSnyanmisaka         RK_U32 lkt_err_int_clr       : 1;
125*437bfbebSnyanmisaka         RK_U32 lkt_err_stop_clr      : 1;
126*437bfbebSnyanmisaka         RK_U32 lkt_force_stop_clr    : 1;
127*437bfbebSnyanmisaka         RK_U32 jslc_done_clr         : 1;
128*437bfbebSnyanmisaka         RK_U32 jbsf_oflw_clr         : 1;
129*437bfbebSnyanmisaka         RK_U32 jbuf_lens_clr         : 1;
130*437bfbebSnyanmisaka         RK_U32 dvbm_dcnt_clr         : 1;
131*437bfbebSnyanmisaka         RK_U32 reserved              : 16;
132*437bfbebSnyanmisaka     } reg0010_int_clr;
133*437bfbebSnyanmisaka 
134*437bfbebSnyanmisaka     /* 0x0000002c reg11 */
135*437bfbebSnyanmisaka     struct {
136*437bfbebSnyanmisaka         RK_U32 enc_done_sta          : 1;
137*437bfbebSnyanmisaka         RK_U32 lkt_node_done_sta     : 1;
138*437bfbebSnyanmisaka         RK_U32 sclr_done_sta         : 1;
139*437bfbebSnyanmisaka         RK_U32 vslc_done_sta         : 1;
140*437bfbebSnyanmisaka         RK_U32 vbsf_oflw_sta         : 1;
141*437bfbebSnyanmisaka         RK_U32 vbuf_lens_sta         : 1;
142*437bfbebSnyanmisaka         RK_U32 enc_err_sta           : 1;
143*437bfbebSnyanmisaka         RK_U32 dvbm_fcfg_sta         : 1;
144*437bfbebSnyanmisaka         RK_U32 wdg_sta               : 1;
145*437bfbebSnyanmisaka         RK_U32 lkt_err_int_sta       : 1;
146*437bfbebSnyanmisaka         RK_U32 lkt_err_stop_sta      : 1;
147*437bfbebSnyanmisaka         RK_U32 lkt_force_stop_sta    : 1;
148*437bfbebSnyanmisaka         RK_U32 jslc_done_sta         : 1;
149*437bfbebSnyanmisaka         RK_U32 jbsf_oflw_sta         : 1;
150*437bfbebSnyanmisaka         RK_U32 jbuf_lens_sta         : 1;
151*437bfbebSnyanmisaka         RK_U32 dvbm_dcnt_sta         : 1;
152*437bfbebSnyanmisaka         RK_U32 reserved              : 16;
153*437bfbebSnyanmisaka     } reg0011_int_sta;
154*437bfbebSnyanmisaka 
155*437bfbebSnyanmisaka     /* 0x00000030 reg12 */
156*437bfbebSnyanmisaka     struct {
157*437bfbebSnyanmisaka         RK_U32 jpeg_bus_edin        : 4;
158*437bfbebSnyanmisaka         RK_U32 src_bus_edin         : 4;
159*437bfbebSnyanmisaka         RK_U32 meiw_bus_edin        : 4;
160*437bfbebSnyanmisaka         RK_U32 bsw_bus_edin         : 4;
161*437bfbebSnyanmisaka         RK_U32 lktr_bus_edin        : 4;
162*437bfbebSnyanmisaka         RK_U32 roir_bus_edin        : 4;
163*437bfbebSnyanmisaka         RK_U32 lktw_bus_edin        : 4;
164*437bfbebSnyanmisaka         RK_U32 rec_nfbc_bus_edin    : 4;
165*437bfbebSnyanmisaka     } reg0012_dtrns_map;
166*437bfbebSnyanmisaka 
167*437bfbebSnyanmisaka     /* 0x00000034 reg13 */
168*437bfbebSnyanmisaka     struct {
169*437bfbebSnyanmisaka         RK_U32 reserved        : 16;
170*437bfbebSnyanmisaka         RK_U32 axi_brsp_cke    : 10;
171*437bfbebSnyanmisaka         RK_U32 reserved1       : 6;
172*437bfbebSnyanmisaka     } reg0013_dtrns_cfg;
173*437bfbebSnyanmisaka 
174*437bfbebSnyanmisaka     /* 0x00000038 reg14 */
175*437bfbebSnyanmisaka     struct {
176*437bfbebSnyanmisaka         RK_U32 vs_load_thd     : 24;
177*437bfbebSnyanmisaka         RK_U32 rfp_load_thd    : 8;
178*437bfbebSnyanmisaka     } reg0014_enc_wdg;
179*437bfbebSnyanmisaka 
180*437bfbebSnyanmisaka     /* 0x0000003c reg15 */
181*437bfbebSnyanmisaka     struct {
182*437bfbebSnyanmisaka         RK_U32 hurry_en      : 1;
183*437bfbebSnyanmisaka         RK_U32 hurry_low     : 3;
184*437bfbebSnyanmisaka         RK_U32 hurry_mid     : 3;
185*437bfbebSnyanmisaka         RK_U32 hurry_high    : 3;
186*437bfbebSnyanmisaka         RK_U32 reserved      : 22;
187*437bfbebSnyanmisaka     } reg0015_qos_cfg;
188*437bfbebSnyanmisaka 
189*437bfbebSnyanmisaka     /* 0x00000040 reg16 */
190*437bfbebSnyanmisaka     struct {
191*437bfbebSnyanmisaka         RK_U32 qos_period    : 16;
192*437bfbebSnyanmisaka         RK_U32 reserved      : 16;
193*437bfbebSnyanmisaka     } reg0016_qos_perd;
194*437bfbebSnyanmisaka 
195*437bfbebSnyanmisaka     /* 0x00000044 reg17 */
196*437bfbebSnyanmisaka     RK_U32 reg0017_hurry_thd_low;
197*437bfbebSnyanmisaka 
198*437bfbebSnyanmisaka     /* 0x00000048 reg18 */
199*437bfbebSnyanmisaka     RK_U32 reg0018_hurry_thd_mid;
200*437bfbebSnyanmisaka 
201*437bfbebSnyanmisaka     /* 0x0000004c reg19 */
202*437bfbebSnyanmisaka     RK_U32 reg0019_hurry_thd_high;
203*437bfbebSnyanmisaka 
204*437bfbebSnyanmisaka     /* 0x00000050 reg20 */
205*437bfbebSnyanmisaka     struct {
206*437bfbebSnyanmisaka         RK_U32 idle_en_core    : 1;
207*437bfbebSnyanmisaka         RK_U32 idle_en_axi     : 1;
208*437bfbebSnyanmisaka         RK_U32 idle_en_ahb     : 1;
209*437bfbebSnyanmisaka         RK_U32 reserved        : 29;
210*437bfbebSnyanmisaka     } reg0020_enc_idle_en;
211*437bfbebSnyanmisaka 
212*437bfbebSnyanmisaka     /* 0x00000054 reg21 */
213*437bfbebSnyanmisaka     struct {
214*437bfbebSnyanmisaka         RK_U32 cke                 : 1;
215*437bfbebSnyanmisaka         RK_U32 resetn_hw_en        : 1;
216*437bfbebSnyanmisaka         RK_U32 enc_done_tmvp_en    : 1;
217*437bfbebSnyanmisaka         RK_U32 sram_ckg_en         : 1;
218*437bfbebSnyanmisaka         RK_U32 link_err_stop       : 1;
219*437bfbebSnyanmisaka         RK_U32 reserved            : 27;
220*437bfbebSnyanmisaka     } reg0021_func_en;
221*437bfbebSnyanmisaka 
222*437bfbebSnyanmisaka     /* 0x00000058 reg22 */
223*437bfbebSnyanmisaka     struct {
224*437bfbebSnyanmisaka         RK_U32 recon32_ckg       : 1;
225*437bfbebSnyanmisaka         RK_U32 iqit32_ckg        : 1;
226*437bfbebSnyanmisaka         RK_U32 q32_ckg           : 1;
227*437bfbebSnyanmisaka         RK_U32 t32_ckg           : 1;
228*437bfbebSnyanmisaka         RK_U32 cabac32_ckg       : 1;
229*437bfbebSnyanmisaka         RK_U32 recon16_ckg       : 1;
230*437bfbebSnyanmisaka         RK_U32 iqit16_ckg        : 1;
231*437bfbebSnyanmisaka         RK_U32 q16_ckg           : 1;
232*437bfbebSnyanmisaka         RK_U32 t16_ckg           : 1;
233*437bfbebSnyanmisaka         RK_U32 cabac16_ckg       : 1;
234*437bfbebSnyanmisaka         RK_U32 recon8_ckg        : 1;
235*437bfbebSnyanmisaka         RK_U32 iqit8_ckg         : 1;
236*437bfbebSnyanmisaka         RK_U32 q8_ckg            : 1;
237*437bfbebSnyanmisaka         RK_U32 t8_ckg            : 1;
238*437bfbebSnyanmisaka         RK_U32 cabac8_ckg        : 1;
239*437bfbebSnyanmisaka         RK_U32 recon4_ckg        : 1;
240*437bfbebSnyanmisaka         RK_U32 iqit4_ckg         : 1;
241*437bfbebSnyanmisaka         RK_U32 q4_ckg            : 1;
242*437bfbebSnyanmisaka         RK_U32 t4_ckg            : 1;
243*437bfbebSnyanmisaka         RK_U32 cabac4_ckg        : 1;
244*437bfbebSnyanmisaka         RK_U32 intra32_ckg       : 1;
245*437bfbebSnyanmisaka         RK_U32 intra16_ckg       : 1;
246*437bfbebSnyanmisaka         RK_U32 intra8_ckg        : 1;
247*437bfbebSnyanmisaka         RK_U32 intra4_ckg        : 1;
248*437bfbebSnyanmisaka         RK_U32 inter_pred_ckg    : 1;
249*437bfbebSnyanmisaka         RK_U32 reserved          : 7;
250*437bfbebSnyanmisaka     } reg0022_rdo_ckg;
251*437bfbebSnyanmisaka 
252*437bfbebSnyanmisaka     /* 0x0000005c reg23 */
253*437bfbebSnyanmisaka     struct {
254*437bfbebSnyanmisaka         RK_U32 core_id     : 2;
255*437bfbebSnyanmisaka         RK_U32 reserved    : 30;
256*437bfbebSnyanmisaka     } reg0023_enc_id;
257*437bfbebSnyanmisaka 
258*437bfbebSnyanmisaka 
259*437bfbebSnyanmisaka     /* 0x00000060 reg24 */
260*437bfbebSnyanmisaka     struct {
261*437bfbebSnyanmisaka         RK_U32 dvbm_en            : 1;
262*437bfbebSnyanmisaka         RK_U32 src_badr_sel       : 1;
263*437bfbebSnyanmisaka         RK_U32 vinf_frm_match     : 1;
264*437bfbebSnyanmisaka         RK_U32 reserved           : 1;
265*437bfbebSnyanmisaka         RK_U32 vrsp_half_cycle    : 4;
266*437bfbebSnyanmisaka         RK_U32 reserved1          : 24;
267*437bfbebSnyanmisaka     } reg0024_dvbm_cfg;
268*437bfbebSnyanmisaka 
269*437bfbebSnyanmisaka     /* 0x00000064 - 0x6c*/
270*437bfbebSnyanmisaka     RK_U32 reg025_027[3];
271*437bfbebSnyanmisaka 
272*437bfbebSnyanmisaka     /* 0x00000070*/
273*437bfbebSnyanmisaka     struct {
274*437bfbebSnyanmisaka         RK_U32 reserved    : 4;
275*437bfbebSnyanmisaka         RK_U32 lkt_addr    : 28;
276*437bfbebSnyanmisaka     } reg0028_lkt_base_addr;
277*437bfbebSnyanmisaka 
278*437bfbebSnyanmisaka     /* 0x74 - 0xfc */
279*437bfbebSnyanmisaka     RK_U32 reserved29_63[35];
280*437bfbebSnyanmisaka 
281*437bfbebSnyanmisaka     struct {
282*437bfbebSnyanmisaka         RK_U32 node_core_id    : 2;
283*437bfbebSnyanmisaka         RK_U32 node_int        : 1;
284*437bfbebSnyanmisaka         RK_U32 reserved        : 1;
285*437bfbebSnyanmisaka         RK_U32 task_id         : 12;
286*437bfbebSnyanmisaka         RK_U32 reserved1       : 16;
287*437bfbebSnyanmisaka     } reg0064_lkt_node_cfg;
288*437bfbebSnyanmisaka 
289*437bfbebSnyanmisaka     /* 0x00000104 reg65 */
290*437bfbebSnyanmisaka     struct {
291*437bfbebSnyanmisaka         RK_U32 pcfg_rd_en       : 1;
292*437bfbebSnyanmisaka         RK_U32 reserved         : 3;
293*437bfbebSnyanmisaka         RK_U32 lkt_addr_pcfg    : 28;
294*437bfbebSnyanmisaka     } reg0065_lkt_addr_pcfg;
295*437bfbebSnyanmisaka 
296*437bfbebSnyanmisaka     /* 0x00000108 reg66 */
297*437bfbebSnyanmisaka     struct {
298*437bfbebSnyanmisaka         RK_U32 rc_cfg_rd_en       : 1;
299*437bfbebSnyanmisaka         RK_U32 reserved           : 3;
300*437bfbebSnyanmisaka         RK_U32 lkt_addr_rc_cfg    : 28;
301*437bfbebSnyanmisaka     } reg0066_lkt_addr_rc_cfg;
302*437bfbebSnyanmisaka 
303*437bfbebSnyanmisaka     /* 0x0000010c reg67 */
304*437bfbebSnyanmisaka     struct {
305*437bfbebSnyanmisaka         RK_U32 par_cfg_rd_en       : 1;
306*437bfbebSnyanmisaka         RK_U32 reserved            : 3;
307*437bfbebSnyanmisaka         RK_U32 lkt_addr_par_cfg    : 28;
308*437bfbebSnyanmisaka     } reg0067_lkt_addr_par_cfg;
309*437bfbebSnyanmisaka 
310*437bfbebSnyanmisaka     /* 0x00000110 reg68 */
311*437bfbebSnyanmisaka     struct {
312*437bfbebSnyanmisaka         RK_U32 sqi_cfg_rd_en       : 1;
313*437bfbebSnyanmisaka         RK_U32 reserved            : 3;
314*437bfbebSnyanmisaka         RK_U32 lkt_addr_sqi_cfg    : 28;
315*437bfbebSnyanmisaka     } reg0068_lkt_addr_sqi_cfg;
316*437bfbebSnyanmisaka 
317*437bfbebSnyanmisaka     /* 0x00000114 reg69 */
318*437bfbebSnyanmisaka     struct {
319*437bfbebSnyanmisaka         RK_U32 scal_cfg_rd_en       : 1;
320*437bfbebSnyanmisaka         RK_U32 reserved             : 3;
321*437bfbebSnyanmisaka         RK_U32 lkt_addr_scal_cfg    : 28;
322*437bfbebSnyanmisaka     } reg0069_lkt_addr_scal_cfg;
323*437bfbebSnyanmisaka 
324*437bfbebSnyanmisaka     /* 0x00000118 reg70 */
325*437bfbebSnyanmisaka     struct {
326*437bfbebSnyanmisaka         RK_U32 pp_cfg_rd_en       : 1;
327*437bfbebSnyanmisaka         RK_U32 reserved           : 3;
328*437bfbebSnyanmisaka         RK_U32 lkt_addr_pp_cfg    : 28;
329*437bfbebSnyanmisaka     } reg0070_lkt_addr_osd_cfg;
330*437bfbebSnyanmisaka 
331*437bfbebSnyanmisaka     /* 0x0000011c reg71 */
332*437bfbebSnyanmisaka     struct {
333*437bfbebSnyanmisaka         RK_U32 st_out_en      : 1;
334*437bfbebSnyanmisaka         RK_U32 reserved       : 3;
335*437bfbebSnyanmisaka         RK_U32 lkt_addr_st    : 28;
336*437bfbebSnyanmisaka     } reg0071_lkt_addr_st;
337*437bfbebSnyanmisaka 
338*437bfbebSnyanmisaka     /* 0x00000120 reg72 */
339*437bfbebSnyanmisaka     struct {
340*437bfbebSnyanmisaka         RK_U32 nxt_node_vld    : 1;
341*437bfbebSnyanmisaka         RK_U32 reserved        : 3;
342*437bfbebSnyanmisaka         RK_U32 lkt_addr_nxt    : 28;
343*437bfbebSnyanmisaka     } reg0072_lkt_addr_nxt;
344*437bfbebSnyanmisaka } hevc_vepu540c_control_cfg;
345*437bfbebSnyanmisaka 
346*437bfbebSnyanmisaka /* class: buffer/video syntax */
347*437bfbebSnyanmisaka /* 0x00000280 reg160 - 0x000003f4 reg253*/
348*437bfbebSnyanmisaka typedef struct HevcVepu540cBase_t {
349*437bfbebSnyanmisaka     vepu540c_online online_addr;
350*437bfbebSnyanmisaka     /* 0x00000280 reg160 */
351*437bfbebSnyanmisaka     RK_U32 reg0160_adr_src0;
352*437bfbebSnyanmisaka 
353*437bfbebSnyanmisaka     /* 0x00000284 reg161 */
354*437bfbebSnyanmisaka     RK_U32 reg0161_adr_src1;
355*437bfbebSnyanmisaka 
356*437bfbebSnyanmisaka     /* 0x00000288 reg162 */
357*437bfbebSnyanmisaka     RK_U32 reg0162_adr_src2;
358*437bfbebSnyanmisaka 
359*437bfbebSnyanmisaka     /* 0x0000028c reg163 */
360*437bfbebSnyanmisaka     RK_U32 reg0163_rfpw_h_addr;
361*437bfbebSnyanmisaka 
362*437bfbebSnyanmisaka     /* 0x00000290 reg164 */
363*437bfbebSnyanmisaka     RK_U32 reg0164_rfpw_b_addr;
364*437bfbebSnyanmisaka 
365*437bfbebSnyanmisaka     /* 0x00000294 reg165 */
366*437bfbebSnyanmisaka     RK_U32 reg0165_rfpr_h_addr;
367*437bfbebSnyanmisaka 
368*437bfbebSnyanmisaka     /* 0x00000298 reg166 */
369*437bfbebSnyanmisaka     RK_U32 reg0166_rfpr_b_addr;
370*437bfbebSnyanmisaka 
371*437bfbebSnyanmisaka     /* 0x0000029c reg167 */
372*437bfbebSnyanmisaka     RK_U32 reg0167_cmvw_addr;
373*437bfbebSnyanmisaka 
374*437bfbebSnyanmisaka     /* 0x000002a0 reg168 */
375*437bfbebSnyanmisaka     RK_U32 reg0168_cmvr_addr;
376*437bfbebSnyanmisaka 
377*437bfbebSnyanmisaka     /* 0x000002a4 reg169 */
378*437bfbebSnyanmisaka     RK_U32 reg0169_dspw_addr;
379*437bfbebSnyanmisaka 
380*437bfbebSnyanmisaka     /* 0x000002a8 reg170 */
381*437bfbebSnyanmisaka     RK_U32 reg0170_dspr_addr;
382*437bfbebSnyanmisaka 
383*437bfbebSnyanmisaka     /* 0x000002ac reg171 */
384*437bfbebSnyanmisaka     RK_U32 reg0171_meiw_addr;
385*437bfbebSnyanmisaka 
386*437bfbebSnyanmisaka     /* 0x000002b0 reg172 */
387*437bfbebSnyanmisaka     RK_U32 reg0172_bsbt_addr;
388*437bfbebSnyanmisaka 
389*437bfbebSnyanmisaka     /* 0x000002b4 reg173 */
390*437bfbebSnyanmisaka     RK_U32 reg0173_bsbb_addr;
391*437bfbebSnyanmisaka 
392*437bfbebSnyanmisaka     /* 0x000002b8 reg174 */
393*437bfbebSnyanmisaka     RK_U32 reg0174_adr_bsbs;
394*437bfbebSnyanmisaka 
395*437bfbebSnyanmisaka     /* 0x000002bc reg175 */
396*437bfbebSnyanmisaka     RK_U32 reg0175_bsbr_addr;
397*437bfbebSnyanmisaka 
398*437bfbebSnyanmisaka     /* 0x000002c0 reg176 */
399*437bfbebSnyanmisaka     RK_U32 reg0176_lpfw_addr;
400*437bfbebSnyanmisaka 
401*437bfbebSnyanmisaka     /* 0x000002c4 reg177 */
402*437bfbebSnyanmisaka     RK_U32 reg0177_lpfr_addr;
403*437bfbebSnyanmisaka 
404*437bfbebSnyanmisaka     /* 0x000002c8 reg178 */
405*437bfbebSnyanmisaka     RK_U32 reg0178_adr_ebuft;
406*437bfbebSnyanmisaka 
407*437bfbebSnyanmisaka     /* 0x000002cc reg179 */
408*437bfbebSnyanmisaka     RK_U32 reg0179_adr_ebufb;
409*437bfbebSnyanmisaka 
410*437bfbebSnyanmisaka     /* 0x000002d0 reg180 */
411*437bfbebSnyanmisaka     RK_U32 reg0180_adr_rfpt_h;
412*437bfbebSnyanmisaka 
413*437bfbebSnyanmisaka     /* 0x000002d4 reg181 */
414*437bfbebSnyanmisaka     RK_U32 reg0181_adr_rfpb_h;
415*437bfbebSnyanmisaka 
416*437bfbebSnyanmisaka     /* 0x000002d8 reg182 */
417*437bfbebSnyanmisaka     RK_U32 reg0182_adr_rfpt_b;
418*437bfbebSnyanmisaka 
419*437bfbebSnyanmisaka     /* 0x000002dc reg183 */
420*437bfbebSnyanmisaka     RK_U32 reg0183_adr_rfpb_b;
421*437bfbebSnyanmisaka 
422*437bfbebSnyanmisaka     /* 0x000002e0 reg184 */
423*437bfbebSnyanmisaka     RK_U32 reg0184_adr_smr_rd;
424*437bfbebSnyanmisaka 
425*437bfbebSnyanmisaka     /* 0x000002e4 reg185 */
426*437bfbebSnyanmisaka     RK_U32 reg0185_adr_smr_wr;
427*437bfbebSnyanmisaka 
428*437bfbebSnyanmisaka     /* 0x000002e8 reg186 */
429*437bfbebSnyanmisaka     RK_U32 reg0186_adr_roir;
430*437bfbebSnyanmisaka 
431*437bfbebSnyanmisaka     /* 0x2ec - 0x2fc */
432*437bfbebSnyanmisaka     RK_U32 reserved187_191[5];
433*437bfbebSnyanmisaka 
434*437bfbebSnyanmisaka     /* 0x00000300 reg192 */
435*437bfbebSnyanmisaka     struct {
436*437bfbebSnyanmisaka         RK_U32 enc_stnd                : 2;
437*437bfbebSnyanmisaka         RK_U32 cur_frm_ref             : 1;
438*437bfbebSnyanmisaka         RK_U32 mei_stor                : 1;
439*437bfbebSnyanmisaka         RK_U32 bs_scp                  : 1;
440*437bfbebSnyanmisaka         RK_U32 reserved                : 3;
441*437bfbebSnyanmisaka         RK_U32 pic_qp                  : 6;
442*437bfbebSnyanmisaka         RK_U32 num_pic_tot_cur         : 5;
443*437bfbebSnyanmisaka         RK_U32 log2_ctu_num            : 5;
444*437bfbebSnyanmisaka         RK_U32 reserved1               : 6;
445*437bfbebSnyanmisaka         RK_U32 slen_fifo               : 1;
446*437bfbebSnyanmisaka         RK_U32 rec_fbc_dis             : 1;
447*437bfbebSnyanmisaka     } reg0192_enc_pic;
448*437bfbebSnyanmisaka 
449*437bfbebSnyanmisaka 
450*437bfbebSnyanmisaka     /* 0x304 */
451*437bfbebSnyanmisaka     RK_U32 reserved_193;
452*437bfbebSnyanmisaka 
453*437bfbebSnyanmisaka     /* 0x00000308 reg194 */
454*437bfbebSnyanmisaka     struct {
455*437bfbebSnyanmisaka         RK_U32 frame_id       : 8;
456*437bfbebSnyanmisaka         RK_U32 reserved       : 8;
457*437bfbebSnyanmisaka         RK_U32 ch_id          : 2;
458*437bfbebSnyanmisaka         RK_U32 vrsp_rtn_en    : 1;
459*437bfbebSnyanmisaka         RK_U32 reserved1      : 13;
460*437bfbebSnyanmisaka     } reg0194_dvbm_id;
461*437bfbebSnyanmisaka 
462*437bfbebSnyanmisaka     /* 0x0000030c reg195 */
463*437bfbebSnyanmisaka     RK_U32 bsp_size;
464*437bfbebSnyanmisaka 
465*437bfbebSnyanmisaka     /* 0x00000310 reg196 */
466*437bfbebSnyanmisaka     struct {
467*437bfbebSnyanmisaka         RK_U32 pic_wd8_m1    : 11;
468*437bfbebSnyanmisaka         RK_U32 reserved      : 5;
469*437bfbebSnyanmisaka         RK_U32 pic_hd8_m1    : 11;
470*437bfbebSnyanmisaka         RK_U32 reserved1     : 5;
471*437bfbebSnyanmisaka     } reg0196_enc_rsl;
472*437bfbebSnyanmisaka 
473*437bfbebSnyanmisaka     /* 0x00000314 reg197 */
474*437bfbebSnyanmisaka     struct {
475*437bfbebSnyanmisaka         RK_U32 pic_wfill    : 6;
476*437bfbebSnyanmisaka         RK_U32 reserved     : 10;
477*437bfbebSnyanmisaka         RK_U32 pic_hfill    : 6;
478*437bfbebSnyanmisaka         RK_U32 reserved1    : 10;
479*437bfbebSnyanmisaka     } reg0197_src_fill;
480*437bfbebSnyanmisaka 
481*437bfbebSnyanmisaka     /* 0x00000318 reg198 */
482*437bfbebSnyanmisaka     struct {
483*437bfbebSnyanmisaka         RK_U32 alpha_swap            : 1;
484*437bfbebSnyanmisaka         RK_U32 rbuv_swap             : 1;
485*437bfbebSnyanmisaka         RK_U32 src_cfmt              : 4;
486*437bfbebSnyanmisaka         RK_U32 src_rcne              : 1;
487*437bfbebSnyanmisaka         RK_U32 out_fmt               : 1;
488*437bfbebSnyanmisaka         RK_U32 src_range_trns_en     : 1;
489*437bfbebSnyanmisaka         RK_U32 src_range_trns_sel    : 1;
490*437bfbebSnyanmisaka         RK_U32 chroma_ds_mode        : 1;
491*437bfbebSnyanmisaka         RK_U32 reserved              : 21;
492*437bfbebSnyanmisaka     }  reg0198_src_fmt;
493*437bfbebSnyanmisaka 
494*437bfbebSnyanmisaka     /* 0x0000031c reg199 */
495*437bfbebSnyanmisaka     struct {
496*437bfbebSnyanmisaka         RK_U32 csc_wgt_b2y    : 9;
497*437bfbebSnyanmisaka         RK_U32 csc_wgt_g2y    : 9;
498*437bfbebSnyanmisaka         RK_U32 csc_wgt_r2y    : 9;
499*437bfbebSnyanmisaka         RK_U32 reserved       : 5;
500*437bfbebSnyanmisaka     } reg0199_src_udfy;
501*437bfbebSnyanmisaka 
502*437bfbebSnyanmisaka     /* 0x00000320 reg200 */
503*437bfbebSnyanmisaka     struct {
504*437bfbebSnyanmisaka         RK_U32 csc_wgt_b2u    : 9;
505*437bfbebSnyanmisaka         RK_U32 csc_wgt_g2u    : 9;
506*437bfbebSnyanmisaka         RK_U32 csc_wgt_r2u    : 9;
507*437bfbebSnyanmisaka         RK_U32 reserved       : 5;
508*437bfbebSnyanmisaka     } reg0200_src_udfu;
509*437bfbebSnyanmisaka 
510*437bfbebSnyanmisaka     /* 0x00000324 reg201 */
511*437bfbebSnyanmisaka     struct {
512*437bfbebSnyanmisaka         RK_U32 csc_wgt_b2v    : 9;
513*437bfbebSnyanmisaka         RK_U32 csc_wgt_g2v    : 9;
514*437bfbebSnyanmisaka         RK_U32 csc_wgt_r2v    : 9;
515*437bfbebSnyanmisaka         RK_U32 reserved       : 5;
516*437bfbebSnyanmisaka     } reg0201_src_udfv;
517*437bfbebSnyanmisaka 
518*437bfbebSnyanmisaka     /* 0x00000328 reg202 */
519*437bfbebSnyanmisaka     struct {
520*437bfbebSnyanmisaka         RK_U32 csc_ofst_v    : 8;
521*437bfbebSnyanmisaka         RK_U32 csc_ofst_u    : 8;
522*437bfbebSnyanmisaka         RK_U32 csc_ofst_y    : 5;
523*437bfbebSnyanmisaka         RK_U32 reserved      : 11;
524*437bfbebSnyanmisaka     } reg0202_src_udfo;
525*437bfbebSnyanmisaka 
526*437bfbebSnyanmisaka     /* 0x0000032c reg203 */
527*437bfbebSnyanmisaka     struct {
528*437bfbebSnyanmisaka         RK_U32 reserved     : 26;
529*437bfbebSnyanmisaka         RK_U32 src_mirr     : 1;
530*437bfbebSnyanmisaka         RK_U32 src_rot      : 2;
531*437bfbebSnyanmisaka         RK_U32 reserved1    : 3;
532*437bfbebSnyanmisaka     } reg0203_src_proc;
533*437bfbebSnyanmisaka 
534*437bfbebSnyanmisaka     /* 0x00000330 reg204 */
535*437bfbebSnyanmisaka     struct {
536*437bfbebSnyanmisaka         RK_U32 pic_ofst_x    : 14;
537*437bfbebSnyanmisaka         RK_U32 reserved      : 2;
538*437bfbebSnyanmisaka         RK_U32 pic_ofst_y    : 14;
539*437bfbebSnyanmisaka         RK_U32 reserved1     : 2;
540*437bfbebSnyanmisaka     } reg0204_pic_ofst;
541*437bfbebSnyanmisaka 
542*437bfbebSnyanmisaka     /* 0x00000334 reg205 */
543*437bfbebSnyanmisaka     struct {
544*437bfbebSnyanmisaka         RK_U32 src_strd0    : 17;
545*437bfbebSnyanmisaka         RK_U32 reserved     : 15;
546*437bfbebSnyanmisaka     } reg0205_src_strd0;
547*437bfbebSnyanmisaka 
548*437bfbebSnyanmisaka     /* 0x00000338 reg206 */
549*437bfbebSnyanmisaka     struct {
550*437bfbebSnyanmisaka         RK_U32 src_strd1    : 16;
551*437bfbebSnyanmisaka         RK_U32 reserved     : 16;
552*437bfbebSnyanmisaka     } reg0206_src_strd1;
553*437bfbebSnyanmisaka 
554*437bfbebSnyanmisaka     /* 0x0000033c reg207 */
555*437bfbebSnyanmisaka     struct {
556*437bfbebSnyanmisaka         RK_U32 pp_corner_filter_strength      : 2;
557*437bfbebSnyanmisaka         RK_U32 reserved                       : 2;
558*437bfbebSnyanmisaka         RK_U32 pp_edge_filter_strength        : 2;
559*437bfbebSnyanmisaka         RK_U32 reserved1                      : 2;
560*437bfbebSnyanmisaka         RK_U32 pp_internal_filter_strength    : 2;
561*437bfbebSnyanmisaka         RK_U32 reserved2                      : 22;
562*437bfbebSnyanmisaka     } reg0207_src_flt_cfg;
563*437bfbebSnyanmisaka 
564*437bfbebSnyanmisaka     /* 0x340 - 0x34c */
565*437bfbebSnyanmisaka     RK_U32 reserved208_211[4];
566*437bfbebSnyanmisaka 
567*437bfbebSnyanmisaka     /* 0x00000350 reg212 */
568*437bfbebSnyanmisaka     struct {
569*437bfbebSnyanmisaka         RK_U32 rc_en         : 1;
570*437bfbebSnyanmisaka         RK_U32 aq_en         : 1;
571*437bfbebSnyanmisaka         RK_U32 aq_mode       : 1;
572*437bfbebSnyanmisaka         RK_U32 reserved      : 9;
573*437bfbebSnyanmisaka         RK_U32 rc_ctu_num    : 20;
574*437bfbebSnyanmisaka     } reg212_rc_cfg;
575*437bfbebSnyanmisaka 
576*437bfbebSnyanmisaka     /* 0x00000354 reg213 */
577*437bfbebSnyanmisaka     struct {
578*437bfbebSnyanmisaka         RK_U32 reserved       : 16;
579*437bfbebSnyanmisaka         RK_U32 rc_qp_range    : 4;
580*437bfbebSnyanmisaka         RK_U32 rc_max_qp      : 6;
581*437bfbebSnyanmisaka         RK_U32 rc_min_qp      : 6;
582*437bfbebSnyanmisaka     } reg213_rc_qp;
583*437bfbebSnyanmisaka 
584*437bfbebSnyanmisaka     /* 0x00000358 reg214 */
585*437bfbebSnyanmisaka     struct {
586*437bfbebSnyanmisaka         RK_U32 ctu_ebit    : 20;
587*437bfbebSnyanmisaka         RK_U32 reserved    : 12;
588*437bfbebSnyanmisaka     } reg214_rc_tgt;
589*437bfbebSnyanmisaka 
590*437bfbebSnyanmisaka     /* 0x35c */
591*437bfbebSnyanmisaka     RK_U32 reserved_215;
592*437bfbebSnyanmisaka 
593*437bfbebSnyanmisaka     /* 0x00000360 reg216 */
594*437bfbebSnyanmisaka     struct {
595*437bfbebSnyanmisaka         RK_U32 sli_splt          : 1;
596*437bfbebSnyanmisaka         RK_U32 sli_splt_mode     : 1;
597*437bfbebSnyanmisaka         RK_U32 sli_splt_cpst     : 1;
598*437bfbebSnyanmisaka         RK_U32 reserved          : 12;
599*437bfbebSnyanmisaka         RK_U32 sli_flsh          : 1;
600*437bfbebSnyanmisaka         RK_U32 sli_max_num_m1    : 15;
601*437bfbebSnyanmisaka         RK_U32 reserved1         : 1;
602*437bfbebSnyanmisaka     } reg0216_sli_splt;
603*437bfbebSnyanmisaka 
604*437bfbebSnyanmisaka     /* 0x00000364 reg217 */
605*437bfbebSnyanmisaka     struct {
606*437bfbebSnyanmisaka         RK_U32 sli_splt_byte    : 20;
607*437bfbebSnyanmisaka         RK_U32 reserved         : 12;
608*437bfbebSnyanmisaka     } reg0217_sli_byte;
609*437bfbebSnyanmisaka 
610*437bfbebSnyanmisaka     /* 0x00000368 reg218 */
611*437bfbebSnyanmisaka     struct {
612*437bfbebSnyanmisaka         RK_U32 sli_splt_cnum_m1    : 20;
613*437bfbebSnyanmisaka         RK_U32 reserved            : 12;
614*437bfbebSnyanmisaka     } reg0218_sli_cnum;
615*437bfbebSnyanmisaka 
616*437bfbebSnyanmisaka     /* 0x0000036c reg219 */
617*437bfbebSnyanmisaka     struct {
618*437bfbebSnyanmisaka         RK_U32 uvc_partition0_len    : 12;
619*437bfbebSnyanmisaka         RK_U32 uvc_partition_len     : 12;
620*437bfbebSnyanmisaka         RK_U32 uvc_skip_len          : 6;
621*437bfbebSnyanmisaka         RK_U32 reserved              : 2;
622*437bfbebSnyanmisaka     } reg0218_uvc_cfg;
623*437bfbebSnyanmisaka 
624*437bfbebSnyanmisaka     /* 0x00000370 reg220 */
625*437bfbebSnyanmisaka     struct {
626*437bfbebSnyanmisaka         RK_U32 cime_srch_dwnh    : 4;
627*437bfbebSnyanmisaka         RK_U32 cime_srch_uph     : 4;
628*437bfbebSnyanmisaka         RK_U32 cime_srch_rgtw    : 4;
629*437bfbebSnyanmisaka         RK_U32 cime_srch_lftw    : 4;
630*437bfbebSnyanmisaka         RK_U32 dlt_frm_num       : 16;
631*437bfbebSnyanmisaka     } reg0220_me_rnge;
632*437bfbebSnyanmisaka 
633*437bfbebSnyanmisaka     /* 0x00000374 reg221 */
634*437bfbebSnyanmisaka     struct {
635*437bfbebSnyanmisaka         RK_U32 srgn_max_num      : 7;
636*437bfbebSnyanmisaka         RK_U32 cime_dist_thre    : 13;
637*437bfbebSnyanmisaka         RK_U32 rme_srch_h        : 2;
638*437bfbebSnyanmisaka         RK_U32 rme_srch_v        : 2;
639*437bfbebSnyanmisaka         RK_U32 rme_dis           : 3;
640*437bfbebSnyanmisaka         RK_U32 reserved1         : 1;
641*437bfbebSnyanmisaka         RK_U32 fme_dis           : 3;
642*437bfbebSnyanmisaka         RK_U32 reserved2         : 1;
643*437bfbebSnyanmisaka     } reg0221_me_cfg;
644*437bfbebSnyanmisaka 
645*437bfbebSnyanmisaka     /* 0x00000378 reg222 */
646*437bfbebSnyanmisaka     struct {
647*437bfbebSnyanmisaka         RK_U32 cime_size_rama     : 10;
648*437bfbebSnyanmisaka         RK_U32 reserved           : 1;
649*437bfbebSnyanmisaka         RK_U32 cime_hgt_rama      : 5;
650*437bfbebSnyanmisaka         RK_U32 reserved1          : 2;
651*437bfbebSnyanmisaka         RK_U32 cme_linebuf_w      : 10;
652*437bfbebSnyanmisaka         RK_U32 fme_prefsu_en      : 2;
653*437bfbebSnyanmisaka         RK_U32 colmv_stor         : 1;
654*437bfbebSnyanmisaka         RK_U32 colmv_load         : 1;
655*437bfbebSnyanmisaka     } reg0222_me_cach;
656*437bfbebSnyanmisaka 
657*437bfbebSnyanmisaka 
658*437bfbebSnyanmisaka     /* 0x37c - 0x39c */
659*437bfbebSnyanmisaka     RK_U32 reserved223_231[9];
660*437bfbebSnyanmisaka 
661*437bfbebSnyanmisaka     /* 0x000003a0 reg232 */
662*437bfbebSnyanmisaka     struct {
663*437bfbebSnyanmisaka         RK_U32 ltm_col                        : 1;
664*437bfbebSnyanmisaka         RK_U32 ltm_idx0l0                     : 1;
665*437bfbebSnyanmisaka         RK_U32 chrm_spcl                      : 1;
666*437bfbebSnyanmisaka         RK_U32 cu_inter_e                     : 12;
667*437bfbebSnyanmisaka         RK_U32 reserved                       : 4;
668*437bfbebSnyanmisaka         RK_U32 cu_intra_e                     : 4;
669*437bfbebSnyanmisaka         RK_U32 ccwa_e                         : 1;
670*437bfbebSnyanmisaka         RK_U32 scl_lst_sel                    : 2;
671*437bfbebSnyanmisaka         RK_U32 lambda_qp_use_avg_cu16_flag    : 1;
672*437bfbebSnyanmisaka         RK_U32 yuvskip_calc_en                : 1;
673*437bfbebSnyanmisaka         RK_U32 atf_e                          : 1;
674*437bfbebSnyanmisaka         RK_U32 atr_e                          : 1;
675*437bfbebSnyanmisaka         RK_U32 reserved1                      : 2;
676*437bfbebSnyanmisaka     }  reg0232_rdo_cfg;
677*437bfbebSnyanmisaka 
678*437bfbebSnyanmisaka     /* 0x000003a4 reg233 */
679*437bfbebSnyanmisaka     struct {
680*437bfbebSnyanmisaka         RK_U32 rdo_mark_mode    : 9;
681*437bfbebSnyanmisaka         RK_U32 reserved         : 23;
682*437bfbebSnyanmisaka     }  reg0233_iprd_csts;
683*437bfbebSnyanmisaka 
684*437bfbebSnyanmisaka     /* 0x3a8 - 0x3ac */
685*437bfbebSnyanmisaka     RK_U32 reserved234_235[2];
686*437bfbebSnyanmisaka 
687*437bfbebSnyanmisaka     /* 0x000003b0 reg236 */
688*437bfbebSnyanmisaka 
689*437bfbebSnyanmisaka     struct {
690*437bfbebSnyanmisaka         RK_U32 nal_unit_type    : 6;
691*437bfbebSnyanmisaka         RK_U32 reserved         : 26;
692*437bfbebSnyanmisaka     } reg0236_synt_nal;
693*437bfbebSnyanmisaka 
694*437bfbebSnyanmisaka     /* 0x000003b4 reg237 */
695*437bfbebSnyanmisaka     struct {
696*437bfbebSnyanmisaka         RK_U32 smpl_adpt_ofst_e    : 1;
697*437bfbebSnyanmisaka         RK_U32 num_st_ref_pic      : 7;
698*437bfbebSnyanmisaka         RK_U32 lt_ref_pic_prsnt    : 1;
699*437bfbebSnyanmisaka         RK_U32 num_lt_ref_pic      : 6;
700*437bfbebSnyanmisaka         RK_U32 tmpl_mvp_e          : 1;
701*437bfbebSnyanmisaka         RK_U32 log2_max_poc_lsb    : 4;
702*437bfbebSnyanmisaka         RK_U32 strg_intra_smth     : 1;
703*437bfbebSnyanmisaka         RK_U32 reserved            : 11;
704*437bfbebSnyanmisaka     } reg0237_synt_sps;
705*437bfbebSnyanmisaka 
706*437bfbebSnyanmisaka     /* 0x000003b8 reg238 */
707*437bfbebSnyanmisaka     struct {
708*437bfbebSnyanmisaka         RK_U32 dpdnt_sli_seg_en       : 1;
709*437bfbebSnyanmisaka         RK_U32 out_flg_prsnt_flg      : 1;
710*437bfbebSnyanmisaka         RK_U32 num_extr_sli_hdr       : 3;
711*437bfbebSnyanmisaka         RK_U32 sgn_dat_hid_en         : 1;
712*437bfbebSnyanmisaka         RK_U32 cbc_init_prsnt_flg     : 1;
713*437bfbebSnyanmisaka         RK_U32 pic_init_qp            : 6;
714*437bfbebSnyanmisaka         RK_U32 cu_qp_dlt_en           : 1;
715*437bfbebSnyanmisaka         RK_U32 chrm_qp_ofst_prsn      : 1;
716*437bfbebSnyanmisaka         RK_U32 lp_fltr_acrs_sli       : 1;
717*437bfbebSnyanmisaka         RK_U32 dblk_fltr_ovrd_en      : 1;
718*437bfbebSnyanmisaka         RK_U32 lst_mdfy_prsnt_flg     : 1;
719*437bfbebSnyanmisaka         RK_U32 sli_seg_hdr_extn       : 1;
720*437bfbebSnyanmisaka         RK_U32 cu_qp_dlt_depth        : 2;
721*437bfbebSnyanmisaka         RK_U32 lpf_fltr_acrs_til      : 1;
722*437bfbebSnyanmisaka         RK_U32 reserved               : 10;
723*437bfbebSnyanmisaka     } reg0238_synt_pps;
724*437bfbebSnyanmisaka 
725*437bfbebSnyanmisaka     /* 0x000003bc reg239 */
726*437bfbebSnyanmisaka     struct {
727*437bfbebSnyanmisaka         RK_U32 cbc_init_flg           : 1;
728*437bfbebSnyanmisaka         RK_U32 mvd_l1_zero_flg        : 1;
729*437bfbebSnyanmisaka         RK_U32 mrg_up_flg             : 1;
730*437bfbebSnyanmisaka         RK_U32 mrg_lft_flg            : 1;
731*437bfbebSnyanmisaka         RK_U32 reserved               : 1;
732*437bfbebSnyanmisaka         RK_U32 ref_pic_lst_mdf_l0     : 1;
733*437bfbebSnyanmisaka         RK_U32 num_refidx_l1_act      : 2;
734*437bfbebSnyanmisaka         RK_U32 num_refidx_l0_act      : 2;
735*437bfbebSnyanmisaka         RK_U32 num_refidx_act_ovrd    : 1;
736*437bfbebSnyanmisaka         RK_U32 sli_sao_chrm_flg       : 1;
737*437bfbebSnyanmisaka         RK_U32 sli_sao_luma_flg       : 1;
738*437bfbebSnyanmisaka         RK_U32 sli_tmprl_mvp_e        : 1;
739*437bfbebSnyanmisaka         RK_U32 pic_out_flg            : 1;
740*437bfbebSnyanmisaka         RK_U32 sli_type               : 2;
741*437bfbebSnyanmisaka         RK_U32 sli_rsrv_flg           : 7;
742*437bfbebSnyanmisaka         RK_U32 dpdnt_sli_seg_flg      : 1;
743*437bfbebSnyanmisaka         RK_U32 sli_pps_id             : 6;
744*437bfbebSnyanmisaka         RK_U32 no_out_pri_pic         : 1;
745*437bfbebSnyanmisaka     } reg0239_synt_sli0;
746*437bfbebSnyanmisaka 
747*437bfbebSnyanmisaka     /* 0x000003c0 reg240 */
748*437bfbebSnyanmisaka     struct {
749*437bfbebSnyanmisaka         RK_U32 sp_tc_ofst_div2         : 4;
750*437bfbebSnyanmisaka         RK_U32 sp_beta_ofst_div2       : 4;
751*437bfbebSnyanmisaka         RK_U32 sli_lp_fltr_acrs_sli    : 1;
752*437bfbebSnyanmisaka         RK_U32 sp_dblk_fltr_dis        : 1;
753*437bfbebSnyanmisaka         RK_U32 dblk_fltr_ovrd_flg      : 1;
754*437bfbebSnyanmisaka         RK_U32 sli_cb_qp_ofst          : 5;
755*437bfbebSnyanmisaka         RK_U32 sli_qp                  : 6;
756*437bfbebSnyanmisaka         RK_U32 max_mrg_cnd             : 2;
757*437bfbebSnyanmisaka         RK_U32 reserved                : 1;
758*437bfbebSnyanmisaka         RK_U32 col_ref_idx             : 1;
759*437bfbebSnyanmisaka         RK_U32 col_frm_l0_flg          : 1;
760*437bfbebSnyanmisaka         RK_U32 lst_entry_l0            : 4;
761*437bfbebSnyanmisaka         RK_U32 reserved1               : 1;
762*437bfbebSnyanmisaka     } reg0240_synt_sli1;
763*437bfbebSnyanmisaka 
764*437bfbebSnyanmisaka     /* 0x000003c4 reg241 */
765*437bfbebSnyanmisaka     struct {
766*437bfbebSnyanmisaka         RK_U32 sli_poc_lsb        : 16;
767*437bfbebSnyanmisaka         RK_U32 sli_hdr_ext_len    : 9;
768*437bfbebSnyanmisaka         RK_U32 reserved           : 7;
769*437bfbebSnyanmisaka     } reg0241_synt_sli2;
770*437bfbebSnyanmisaka 
771*437bfbebSnyanmisaka     /* 0x000003c8 reg242 */
772*437bfbebSnyanmisaka 
773*437bfbebSnyanmisaka     struct {
774*437bfbebSnyanmisaka         RK_U32 st_ref_pic_flg    : 1;
775*437bfbebSnyanmisaka         RK_U32 poc_lsb_lt0       : 16;
776*437bfbebSnyanmisaka         RK_U32 lt_idx_sps        : 5;
777*437bfbebSnyanmisaka         RK_U32 num_lt_pic        : 2;
778*437bfbebSnyanmisaka         RK_U32 st_ref_pic_idx    : 6;
779*437bfbebSnyanmisaka         RK_U32 num_lt_sps        : 2;
780*437bfbebSnyanmisaka     } reg0242_synt_refm0;
781*437bfbebSnyanmisaka 
782*437bfbebSnyanmisaka     /* 0x000003cc reg243 */
783*437bfbebSnyanmisaka     struct {
784*437bfbebSnyanmisaka         RK_U32 used_by_s0_flg        : 4;
785*437bfbebSnyanmisaka         RK_U32 num_pos_pic           : 1;
786*437bfbebSnyanmisaka         RK_U32 num_negative_pics     : 5;
787*437bfbebSnyanmisaka         RK_U32 dlt_poc_msb_cycl0     : 16;
788*437bfbebSnyanmisaka         RK_U32 dlt_poc_msb_prsnt0    : 1;
789*437bfbebSnyanmisaka         RK_U32 dlt_poc_msb_prsnt1    : 1;
790*437bfbebSnyanmisaka         RK_U32 dlt_poc_msb_prsnt2    : 1;
791*437bfbebSnyanmisaka         RK_U32 used_by_lt_flg0       : 1;
792*437bfbebSnyanmisaka         RK_U32 used_by_lt_flg1       : 1;
793*437bfbebSnyanmisaka         RK_U32 used_by_lt_flg2       : 1;
794*437bfbebSnyanmisaka     } reg0243_synt_refm1;
795*437bfbebSnyanmisaka 
796*437bfbebSnyanmisaka     /* 0x000003d0 reg244 */
797*437bfbebSnyanmisaka     struct {
798*437bfbebSnyanmisaka         RK_U32 dlt_poc_s0_m10    : 16;
799*437bfbebSnyanmisaka         RK_U32 dlt_poc_s0_m11    : 16;
800*437bfbebSnyanmisaka     } reg0244_synt_refm2;
801*437bfbebSnyanmisaka     /* 0x000003d4 reg245 */
802*437bfbebSnyanmisaka     struct {
803*437bfbebSnyanmisaka         RK_U32 dlt_poc_s0_m12    : 16;
804*437bfbebSnyanmisaka         RK_U32 dlt_poc_s0_m13    : 16;
805*437bfbebSnyanmisaka     } reg0245_synt_refm3;
806*437bfbebSnyanmisaka 
807*437bfbebSnyanmisaka     /* 0x000003d8 reg246 */
808*437bfbebSnyanmisaka     struct {
809*437bfbebSnyanmisaka         RK_U32 poc_lsb_lt1    : 16;
810*437bfbebSnyanmisaka         RK_U32 poc_lsb_lt2    : 16;
811*437bfbebSnyanmisaka     } reg0246_synt_long_refm0;
812*437bfbebSnyanmisaka 
813*437bfbebSnyanmisaka     /* 0x000003dc reg247 */
814*437bfbebSnyanmisaka     struct {
815*437bfbebSnyanmisaka         RK_U32 dlt_poc_msb_cycl1    : 16;
816*437bfbebSnyanmisaka         RK_U32 dlt_poc_msb_cycl2    : 16;
817*437bfbebSnyanmisaka     } reg0247_synt_long_refm1;
818*437bfbebSnyanmisaka 
819*437bfbebSnyanmisaka     struct {
820*437bfbebSnyanmisaka         RK_U32 sao_lambda_multi    : 3;
821*437bfbebSnyanmisaka         RK_U32 reserved            : 29;
822*437bfbebSnyanmisaka     } reg0248_sao_cfg;
823*437bfbebSnyanmisaka 
824*437bfbebSnyanmisaka     /* 0x3e4 - 0x3ec */
825*437bfbebSnyanmisaka     RK_U32 reserved249_251[3];
826*437bfbebSnyanmisaka 
827*437bfbebSnyanmisaka     /* 0x000003f0 reg252 */
828*437bfbebSnyanmisaka     struct {
829*437bfbebSnyanmisaka         RK_U32 tile_w_m1    : 8;
830*437bfbebSnyanmisaka         RK_U32 reserved     : 8;
831*437bfbebSnyanmisaka         RK_U32 tile_h_m1    : 8;
832*437bfbebSnyanmisaka         RK_U32 reserved1    : 7;
833*437bfbebSnyanmisaka         RK_U32 tile_en      : 1;
834*437bfbebSnyanmisaka     } reg0252_tile_cfg;
835*437bfbebSnyanmisaka     /* 0x000003f4 reg253 */
836*437bfbebSnyanmisaka     struct {
837*437bfbebSnyanmisaka         RK_U32 tile_x       : 8;
838*437bfbebSnyanmisaka         RK_U32 reserved     : 8;
839*437bfbebSnyanmisaka         RK_U32 tile_y       : 8;
840*437bfbebSnyanmisaka         RK_U32 reserved1    : 8;
841*437bfbebSnyanmisaka     } reg0253_tile_pos;
842*437bfbebSnyanmisaka 
843*437bfbebSnyanmisaka     /* 0x3f8 - 0x3fc */
844*437bfbebSnyanmisaka     RK_U32 reserved254_255[2];
845*437bfbebSnyanmisaka 
846*437bfbebSnyanmisaka     /* 0x00000400 reg256 - 0x00000480 reg288 */
847*437bfbebSnyanmisaka     Vepu540cJpegReg jpegReg;
848*437bfbebSnyanmisaka 
849*437bfbebSnyanmisaka } hevc_vepu540c_base;
850*437bfbebSnyanmisaka 
851*437bfbebSnyanmisaka /* class: rc/roi/aq/klut */
852*437bfbebSnyanmisaka /* 0x00001000 reg1024 - 0x000010e0 reg1080 */
853*437bfbebSnyanmisaka typedef struct HevcVepu540cRcRoi_t {
854*437bfbebSnyanmisaka     /* 0x00001000 reg1024 */
855*437bfbebSnyanmisaka     struct {
856*437bfbebSnyanmisaka         RK_U32 qp_adj0     : 5;
857*437bfbebSnyanmisaka         RK_U32 qp_adj1     : 5;
858*437bfbebSnyanmisaka         RK_U32 qp_adj2     : 5;
859*437bfbebSnyanmisaka         RK_U32 qp_adj3     : 5;
860*437bfbebSnyanmisaka         RK_U32 qp_adj4     : 5;
861*437bfbebSnyanmisaka         RK_U32 reserved    : 7;
862*437bfbebSnyanmisaka     } rc_adj0;
863*437bfbebSnyanmisaka 
864*437bfbebSnyanmisaka     /* 0x00001004 reg1025 */
865*437bfbebSnyanmisaka     struct {
866*437bfbebSnyanmisaka         RK_U32 qp_adj5     : 5;
867*437bfbebSnyanmisaka         RK_U32 qp_adj6     : 5;
868*437bfbebSnyanmisaka         RK_U32 qp_adj7     : 5;
869*437bfbebSnyanmisaka         RK_U32 qp_adj8     : 5;
870*437bfbebSnyanmisaka         RK_U32 reserved    : 12;
871*437bfbebSnyanmisaka     } rc_adj1;
872*437bfbebSnyanmisaka 
873*437bfbebSnyanmisaka     /* 0x00001008 reg1026 - 0x00001028 reg1034 */
874*437bfbebSnyanmisaka     RK_U32 rc_dthd_0_8[9];
875*437bfbebSnyanmisaka 
876*437bfbebSnyanmisaka     /* 0x102c */
877*437bfbebSnyanmisaka     RK_U32 reserved_1035;
878*437bfbebSnyanmisaka 
879*437bfbebSnyanmisaka     /* 0x00001030 reg1036 */
880*437bfbebSnyanmisaka     struct {
881*437bfbebSnyanmisaka         RK_U32 qpmin_area0    : 6;
882*437bfbebSnyanmisaka         RK_U32 qpmax_area0    : 6;
883*437bfbebSnyanmisaka         RK_U32 qpmin_area1    : 6;
884*437bfbebSnyanmisaka         RK_U32 qpmax_area1    : 6;
885*437bfbebSnyanmisaka         RK_U32 qpmin_area2    : 6;
886*437bfbebSnyanmisaka         RK_U32 reserved       : 2;
887*437bfbebSnyanmisaka     } roi_qthd0;
888*437bfbebSnyanmisaka 
889*437bfbebSnyanmisaka     /* 0x00001034 reg1037 */
890*437bfbebSnyanmisaka     struct {
891*437bfbebSnyanmisaka         RK_U32 qpmax_area2    : 6;
892*437bfbebSnyanmisaka         RK_U32 qpmin_area3    : 6;
893*437bfbebSnyanmisaka         RK_U32 qpmax_area3    : 6;
894*437bfbebSnyanmisaka         RK_U32 qpmin_area4    : 6;
895*437bfbebSnyanmisaka         RK_U32 qpmax_area4    : 6;
896*437bfbebSnyanmisaka         RK_U32 reserved       : 2;
897*437bfbebSnyanmisaka     } roi_qthd1;
898*437bfbebSnyanmisaka 
899*437bfbebSnyanmisaka     /* 0x00001038 reg1038 */
900*437bfbebSnyanmisaka     struct {
901*437bfbebSnyanmisaka         RK_U32 qpmin_area5    : 6;
902*437bfbebSnyanmisaka         RK_U32 qpmax_area5    : 6;
903*437bfbebSnyanmisaka         RK_U32 qpmin_area6    : 6;
904*437bfbebSnyanmisaka         RK_U32 qpmax_area6    : 6;
905*437bfbebSnyanmisaka         RK_U32 qpmin_area7    : 6;
906*437bfbebSnyanmisaka         RK_U32 reserved       : 2;
907*437bfbebSnyanmisaka     } roi_qthd2;
908*437bfbebSnyanmisaka 
909*437bfbebSnyanmisaka     /* 0x0000103c reg1039 */
910*437bfbebSnyanmisaka     struct {
911*437bfbebSnyanmisaka         RK_U32 qpmax_area7    : 6;
912*437bfbebSnyanmisaka         RK_U32 reserved       : 24;
913*437bfbebSnyanmisaka         RK_U32 qpmap_mode     : 2;
914*437bfbebSnyanmisaka     } roi_qthd3;
915*437bfbebSnyanmisaka 
916*437bfbebSnyanmisaka     /* 0x00001040 reg1040 */
917*437bfbebSnyanmisaka     RK_U32 reserved_1040;
918*437bfbebSnyanmisaka 
919*437bfbebSnyanmisaka     /* 0x00001044 reg1041 - 0x00001050 reg1044 */
920*437bfbebSnyanmisaka     RK_U8 aq_tthd[16];
921*437bfbebSnyanmisaka 
922*437bfbebSnyanmisaka     /*
923*437bfbebSnyanmisaka      * 0x00001054 reg1045 - 0x00001060 reg1048
924*437bfbebSnyanmisaka      * only low 6 bits is valid for per step.
925*437bfbebSnyanmisaka      */
926*437bfbebSnyanmisaka     RK_U8 aq_step[16];
927*437bfbebSnyanmisaka 
928*437bfbebSnyanmisaka     /* 0x00001064 reg1049 */
929*437bfbebSnyanmisaka     struct {
930*437bfbebSnyanmisaka         RK_U32 madi_th0    : 8;
931*437bfbebSnyanmisaka         RK_U32 madi_th1    : 8;
932*437bfbebSnyanmisaka         RK_U32 madi_th2    : 8;
933*437bfbebSnyanmisaka         RK_U32 reserved    : 8;
934*437bfbebSnyanmisaka     } madi_st_thd;
935*437bfbebSnyanmisaka 
936*437bfbebSnyanmisaka     /* 0x00001068 reg1050 */
937*437bfbebSnyanmisaka     struct {
938*437bfbebSnyanmisaka         RK_U32 madp_th0     : 12;
939*437bfbebSnyanmisaka         RK_U32 reserved     : 4;
940*437bfbebSnyanmisaka         RK_U32 madp_th1     : 12;
941*437bfbebSnyanmisaka         RK_U32 reserved1    : 4;
942*437bfbebSnyanmisaka     } madp_st_thd0;
943*437bfbebSnyanmisaka 
944*437bfbebSnyanmisaka     /* 0x0000106c reg1051 */
945*437bfbebSnyanmisaka     struct {
946*437bfbebSnyanmisaka         RK_U32 madp_th2    : 12;
947*437bfbebSnyanmisaka         RK_U32 reserved    : 20;
948*437bfbebSnyanmisaka     } madp_st_thd1;
949*437bfbebSnyanmisaka 
950*437bfbebSnyanmisaka     /* 0x1078 - 0x107c */
951*437bfbebSnyanmisaka     RK_U32 reserved1052_1054[3];
952*437bfbebSnyanmisaka 
953*437bfbebSnyanmisaka     /* 0x0000107c reg1055 */
954*437bfbebSnyanmisaka     struct {
955*437bfbebSnyanmisaka         RK_U32 chrm_klut_ofst                : 4;
956*437bfbebSnyanmisaka         RK_U32 reserved                      : 4;
957*437bfbebSnyanmisaka         RK_U32 inter_chrm_dist_multi         : 6;
958*437bfbebSnyanmisaka         RK_U32 reserved1                     : 18;
959*437bfbebSnyanmisaka     } klut_ofst;
960*437bfbebSnyanmisaka 
961*437bfbebSnyanmisaka     /*0x00001080 reg1056 - 0x0000110c reg1091 */
962*437bfbebSnyanmisaka     Vepu540cRoiCfg roi_cfg;
963*437bfbebSnyanmisaka } hevc_vepu540c_rc_roi;
964*437bfbebSnyanmisaka 
965*437bfbebSnyanmisaka /* class: iprd/iprd_wgt/rdo_wgta/prei_dif*/
966*437bfbebSnyanmisaka /* 0x00001700 reg1472 - 0x00001cd4 reg1845 */
967*437bfbebSnyanmisaka typedef struct HevcVepu540cWgt_t {
968*437bfbebSnyanmisaka     /* 0x00001700 - 0x0000172c reg1472 */
969*437bfbebSnyanmisaka     RK_U32 reserved1472_1483[12];
970*437bfbebSnyanmisaka 
971*437bfbebSnyanmisaka     /* 0x00001730 reg1484 */
972*437bfbebSnyanmisaka     struct {
973*437bfbebSnyanmisaka         RK_U32 qnt_bias_i    : 10;
974*437bfbebSnyanmisaka         RK_U32 qnt_bias_p    : 10;
975*437bfbebSnyanmisaka         RK_U32 reserved      : 12;
976*437bfbebSnyanmisaka     } reg1484_qnt_bias_comb;
977*437bfbebSnyanmisaka 
978*437bfbebSnyanmisaka     /* 0x1734 - 0x175c */
979*437bfbebSnyanmisaka     RK_U32 reserved1485_1495[11];
980*437bfbebSnyanmisaka 
981*437bfbebSnyanmisaka     /* 0x00001760 reg1496 */
982*437bfbebSnyanmisaka     struct {
983*437bfbebSnyanmisaka         RK_U32 cime_pmv_num      : 1;
984*437bfbebSnyanmisaka         RK_U32 cime_fuse         : 1;
985*437bfbebSnyanmisaka         RK_U32 itp_mode          : 1;
986*437bfbebSnyanmisaka         RK_U32 reserved          : 1;
987*437bfbebSnyanmisaka         RK_U32 move_lambda       : 4;
988*437bfbebSnyanmisaka         RK_U32 rime_lvl_mrg      : 2;
989*437bfbebSnyanmisaka         RK_U32 rime_prelvl_en    : 2;
990*437bfbebSnyanmisaka         RK_U32 rime_prersu_en    : 3;
991*437bfbebSnyanmisaka         RK_U32 reserved1         : 17;
992*437bfbebSnyanmisaka     } me_sqi_cfg;
993*437bfbebSnyanmisaka 
994*437bfbebSnyanmisaka     /* 0x00001764 reg1497 */
995*437bfbebSnyanmisaka     struct {
996*437bfbebSnyanmisaka         RK_U32 cime_mvd_th0    : 9;
997*437bfbebSnyanmisaka         RK_U32 reserved        : 1;
998*437bfbebSnyanmisaka         RK_U32 cime_mvd_th1    : 9;
999*437bfbebSnyanmisaka         RK_U32 reserved1       : 1;
1000*437bfbebSnyanmisaka         RK_U32 cime_mvd_th2    : 9;
1001*437bfbebSnyanmisaka         RK_U32 reserved2       : 3;
1002*437bfbebSnyanmisaka     } cime_mvd_th;
1003*437bfbebSnyanmisaka 
1004*437bfbebSnyanmisaka     /* 0x00001768 reg1498 */
1005*437bfbebSnyanmisaka     struct {
1006*437bfbebSnyanmisaka         RK_U32 cime_madp_th    : 12;
1007*437bfbebSnyanmisaka         RK_U32 reserved        : 20;
1008*437bfbebSnyanmisaka     } cime_madp_th;
1009*437bfbebSnyanmisaka 
1010*437bfbebSnyanmisaka     /* 0x0000176c reg1499 */
1011*437bfbebSnyanmisaka     struct {
1012*437bfbebSnyanmisaka         RK_U32 cime_multi0    : 8;
1013*437bfbebSnyanmisaka         RK_U32 cime_multi1    : 8;
1014*437bfbebSnyanmisaka         RK_U32 cime_multi2    : 8;
1015*437bfbebSnyanmisaka         RK_U32 cime_multi3    : 8;
1016*437bfbebSnyanmisaka     } cime_multi;
1017*437bfbebSnyanmisaka 
1018*437bfbebSnyanmisaka     /* 0x00001770 reg1500 */
1019*437bfbebSnyanmisaka     struct {
1020*437bfbebSnyanmisaka         RK_U32 rime_mvd_th0    : 3;
1021*437bfbebSnyanmisaka         RK_U32 reserved        : 1;
1022*437bfbebSnyanmisaka         RK_U32 rime_mvd_th1    : 3;
1023*437bfbebSnyanmisaka         RK_U32 reserved1       : 9;
1024*437bfbebSnyanmisaka         RK_U32 fme_madp_th     : 12;
1025*437bfbebSnyanmisaka         RK_U32 reserved2       : 4;
1026*437bfbebSnyanmisaka     } rime_mvd_th;
1027*437bfbebSnyanmisaka 
1028*437bfbebSnyanmisaka     /* 0x00001774 reg1501 */
1029*437bfbebSnyanmisaka     struct {
1030*437bfbebSnyanmisaka         RK_U32 rime_madp_th0    : 12;
1031*437bfbebSnyanmisaka         RK_U32 reserved         : 4;
1032*437bfbebSnyanmisaka         RK_U32 rime_madp_th1    : 12;
1033*437bfbebSnyanmisaka         RK_U32 reserved1        : 4;
1034*437bfbebSnyanmisaka     } rime_madp_th;
1035*437bfbebSnyanmisaka 
1036*437bfbebSnyanmisaka     /* 0x00001778 reg1502 */
1037*437bfbebSnyanmisaka     struct {
1038*437bfbebSnyanmisaka         RK_U32 rime_multi0    : 10;
1039*437bfbebSnyanmisaka         RK_U32 rime_multi1    : 10;
1040*437bfbebSnyanmisaka         RK_U32 rime_multi2    : 10;
1041*437bfbebSnyanmisaka         RK_U32 reserved       : 2;
1042*437bfbebSnyanmisaka     } rime_multi;
1043*437bfbebSnyanmisaka 
1044*437bfbebSnyanmisaka     /* 0x0000177c reg1503 */
1045*437bfbebSnyanmisaka     struct {
1046*437bfbebSnyanmisaka         RK_U32 cmv_th0     : 8;
1047*437bfbebSnyanmisaka         RK_U32 cmv_th1     : 8;
1048*437bfbebSnyanmisaka         RK_U32 cmv_th2     : 8;
1049*437bfbebSnyanmisaka         RK_U32 reserved    : 8;
1050*437bfbebSnyanmisaka     } cmv_st_th;
1051*437bfbebSnyanmisaka 
1052*437bfbebSnyanmisaka     /* 0x1780 - 0x17fc */
1053*437bfbebSnyanmisaka     RK_U32 reserved1504_1535[32];
1054*437bfbebSnyanmisaka 
1055*437bfbebSnyanmisaka     /* 0x00001800 reg1536 */
1056*437bfbebSnyanmisaka     struct {
1057*437bfbebSnyanmisaka         RK_U32 lambda_satd_offset    : 5;
1058*437bfbebSnyanmisaka         RK_U32 reserved              : 27;
1059*437bfbebSnyanmisaka     } iprd_lamb_satd_ofst;
1060*437bfbebSnyanmisaka 
1061*437bfbebSnyanmisaka     /* 0x1804 - 0x18fc */
1062*437bfbebSnyanmisaka     RK_U32 reserved1537_1599[63];;
1063*437bfbebSnyanmisaka 
1064*437bfbebSnyanmisaka     /* wgt_qp48_grpa */
1065*437bfbebSnyanmisaka     /* 0x00001900 reg1600 */
1066*437bfbebSnyanmisaka     RK_U32 rdo_wgta_qp_grpa_0_51[52];
1067*437bfbebSnyanmisaka } hevc_vepu540c_wgt;
1068*437bfbebSnyanmisaka 
1069*437bfbebSnyanmisaka typedef struct H265eV540cRegSet_t {
1070*437bfbebSnyanmisaka     hevc_vepu540c_control_cfg reg_ctl;
1071*437bfbebSnyanmisaka     hevc_vepu540c_base reg_base;
1072*437bfbebSnyanmisaka     hevc_vepu540c_rc_roi reg_rc_roi;
1073*437bfbebSnyanmisaka     hevc_vepu540c_wgt reg_wgt;
1074*437bfbebSnyanmisaka     vepu540c_rdo_cfg reg_rdo;
1075*437bfbebSnyanmisaka     vepu540c_scl_cfg   reg_scl;
1076*437bfbebSnyanmisaka     vepu540c_jpeg_tab jpeg_table;
1077*437bfbebSnyanmisaka     vepu540c_dbg reg_dbg;
1078*437bfbebSnyanmisaka } H265eV540cRegSet;
1079*437bfbebSnyanmisaka 
1080*437bfbebSnyanmisaka typedef struct H265eV540cStatusElem_t {
1081*437bfbebSnyanmisaka     vepu540c_hw_status hw_status;
1082*437bfbebSnyanmisaka     vepu540c_status st;
1083*437bfbebSnyanmisaka } H265eV540cStatusElem;
1084*437bfbebSnyanmisaka 
1085*437bfbebSnyanmisaka #endif
1086