xref: /rockchip-linux_mpp/mpp/hal/rkenc/common/vepu540c_common.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 __VEPU540C_COMMON_H__
18*437bfbebSnyanmisaka #define __VEPU540C_COMMON_H__
19*437bfbebSnyanmisaka 
20*437bfbebSnyanmisaka #include "rk_venc_cmd.h"
21*437bfbebSnyanmisaka #include "mpp_device.h"
22*437bfbebSnyanmisaka 
23*437bfbebSnyanmisaka #define VEPU540C_CTL_OFFSET          (0 * sizeof(RK_U32))
24*437bfbebSnyanmisaka #define VEPU540C_BASE_OFFSET         (156 * sizeof(RK_U32))
25*437bfbebSnyanmisaka #define VEPU540C_RCROI_OFFSET        (1024 * sizeof(RK_U32))
26*437bfbebSnyanmisaka #define VEPU540C_WEG_OFFSET          (1472 * sizeof(RK_U32))
27*437bfbebSnyanmisaka #define VEPU540C_RDOCFG_OFFSET       (2048 * sizeof(RK_U32))
28*437bfbebSnyanmisaka #define VEPU540C_SCLCFG_OFFSET       (2168 * sizeof(RK_U32))
29*437bfbebSnyanmisaka #define VEPU540C_JPEGTAB_OFFSET      (2848 * sizeof(RK_U32))
30*437bfbebSnyanmisaka 
31*437bfbebSnyanmisaka #define VEPU540C_OSD_OFFSET          (3072 * sizeof(RK_U32))
32*437bfbebSnyanmisaka #define VEPU540C_STATUS_OFFSET       (4096 * sizeof(RK_U32))
33*437bfbebSnyanmisaka #define VEPU540C_DEBUG_OFFSET        (5120 * sizeof(RK_U32))
34*437bfbebSnyanmisaka #define VEPU540C_REG_BASE_HW_STATUS  0x2c
35*437bfbebSnyanmisaka 
36*437bfbebSnyanmisaka #define VEPU540C_MAX_ROI_NUM         8
37*437bfbebSnyanmisaka #define VEPU540C_SLICE_FIFO_LEN      8
38*437bfbebSnyanmisaka 
39*437bfbebSnyanmisaka typedef union {
40*437bfbebSnyanmisaka     struct {
41*437bfbebSnyanmisaka         RK_U32 enc_done_sta          : 1;
42*437bfbebSnyanmisaka         RK_U32 lkt_node_done_sta     : 1;
43*437bfbebSnyanmisaka         RK_U32 sclr_done_sta         : 1;
44*437bfbebSnyanmisaka         RK_U32 vslc_done_sta         : 1;
45*437bfbebSnyanmisaka         RK_U32 vbsf_oflw_sta         : 1;
46*437bfbebSnyanmisaka         RK_U32 vbuf_lens_sta         : 1;
47*437bfbebSnyanmisaka         RK_U32 enc_err_sta           : 1;
48*437bfbebSnyanmisaka         RK_U32 dvbm_fcfg_sta         : 1;
49*437bfbebSnyanmisaka         RK_U32 wdg_sta               : 1;
50*437bfbebSnyanmisaka         RK_U32 lkt_err_int_sta       : 1;
51*437bfbebSnyanmisaka         RK_U32 lkt_err_stop_sta      : 1;
52*437bfbebSnyanmisaka         RK_U32 lkt_force_stop_sta    : 1;
53*437bfbebSnyanmisaka         RK_U32 jslc_done_sta         : 1;
54*437bfbebSnyanmisaka         RK_U32 jbsf_oflw_sta         : 1;
55*437bfbebSnyanmisaka         RK_U32 jbuf_lens_sta         : 1;
56*437bfbebSnyanmisaka         RK_U32 dvbm_dcnt_sta         : 1;
57*437bfbebSnyanmisaka         RK_U32 reserved              : 16;
58*437bfbebSnyanmisaka     } int_sta;
59*437bfbebSnyanmisaka 
60*437bfbebSnyanmisaka     RK_U32 val;
61*437bfbebSnyanmisaka } vepu540c_hw_status;
62*437bfbebSnyanmisaka 
63*437bfbebSnyanmisaka typedef struct Vepu540cOnline_t {
64*437bfbebSnyanmisaka     /* 0x00000270 reg156 */
65*437bfbebSnyanmisaka     RK_U32 reg0156_adr_vsy_t;
66*437bfbebSnyanmisaka     /* 0x00000274 reg157 */
67*437bfbebSnyanmisaka     RK_U32 reg0157_adr_vsc_t;
68*437bfbebSnyanmisaka     /* 0x00000278 reg158 */
69*437bfbebSnyanmisaka     RK_U32 reg0158_adr_vsy_b;
70*437bfbebSnyanmisaka     /* 0x0000027c reg159 */
71*437bfbebSnyanmisaka     RK_U32 reg0159_adr_vsc_b;
72*437bfbebSnyanmisaka } vepu540c_online;
73*437bfbebSnyanmisaka 
74*437bfbebSnyanmisaka typedef struct IpRaw8_t {
75*437bfbebSnyanmisaka     RK_U8 intra_val[8];
76*437bfbebSnyanmisaka     RK_U8 inter_val[8];
77*437bfbebSnyanmisaka } ip_raw8;
78*437bfbebSnyanmisaka 
79*437bfbebSnyanmisaka typedef struct IpRaw32_16_t {
80*437bfbebSnyanmisaka     RK_U16 q_intra16[4];
81*437bfbebSnyanmisaka     RK_U16 q_intra32[2];
82*437bfbebSnyanmisaka     RK_U8  iq_intra16[4];
83*437bfbebSnyanmisaka } ip_raw32_16;
84*437bfbebSnyanmisaka 
85*437bfbebSnyanmisaka /* 0x000021e0 reg2168 - 0x00002c7c reg2847*/
86*437bfbebSnyanmisaka typedef struct Vepu540cSclCfg_t {
87*437bfbebSnyanmisaka     /* 0x000021e0 reg2168 */
88*437bfbebSnyanmisaka     RK_U32  q_dc_y16;
89*437bfbebSnyanmisaka     RK_U32  q_dc_u16;
90*437bfbebSnyanmisaka     RK_U32  q_dc_v16;
91*437bfbebSnyanmisaka     RK_U32  q_dc_y32;
92*437bfbebSnyanmisaka     RK_U32  iq_dc_0;
93*437bfbebSnyanmisaka     RK_U32  iq_dc_1;
94*437bfbebSnyanmisaka 
95*437bfbebSnyanmisaka     /* 0x000021f8 reg2174 */
96*437bfbebSnyanmisaka     struct {
97*437bfbebSnyanmisaka         RK_U32 scal_clk_sel    : 1;
98*437bfbebSnyanmisaka         RK_U32 reserved        : 31;
99*437bfbebSnyanmisaka     } scal_cfg;
100*437bfbebSnyanmisaka     /* 0x21fc */
101*437bfbebSnyanmisaka     RK_U32 reserved_2175;
102*437bfbebSnyanmisaka     /* 0x00002200 reg2176 - 0x0000227c reg2207*/
103*437bfbebSnyanmisaka     RK_U16 q_intra_y8[64];
104*437bfbebSnyanmisaka     /* 0x00002280 reg2208 - 0x000022fc reg2239*/
105*437bfbebSnyanmisaka     RK_U16 q_intra_u8[64];
106*437bfbebSnyanmisaka     /* 0x00002300 reg2240 - 0x0000237c reg2271*/
107*437bfbebSnyanmisaka     RK_U16 q_intra_v8[64];
108*437bfbebSnyanmisaka 
109*437bfbebSnyanmisaka     /* 0x00002380 reg2272 - 0x000023fc reg2303*/
110*437bfbebSnyanmisaka     RK_U16 q_inter_y8[64];
111*437bfbebSnyanmisaka     /* 0x00002400 reg2304 - 0x0000247c reg2335*/
112*437bfbebSnyanmisaka     RK_U16 q_inter_u8[64];
113*437bfbebSnyanmisaka     /* 0x00002480 reg2336 - 0x000024fc reg2367*/
114*437bfbebSnyanmisaka     RK_U16 q_inter_v8[64];
115*437bfbebSnyanmisaka 
116*437bfbebSnyanmisaka     /* 0x00002500 reg2368 - 0x000025fc reg2431*/
117*437bfbebSnyanmisaka     ip_raw32_16 q_intra_y[16];
118*437bfbebSnyanmisaka     /* 0x00002600 reg2432 - 0x000026fc reg2495*/
119*437bfbebSnyanmisaka     ip_raw32_16 q_intra_u[16];
120*437bfbebSnyanmisaka     /* 0x00002700 reg2496 - 0x000027fc reg2559 */
121*437bfbebSnyanmisaka     ip_raw32_16 q_intra_v[16];
122*437bfbebSnyanmisaka 
123*437bfbebSnyanmisaka     /*0x00002800 reg2560 - 0x000028fc reg2623*/
124*437bfbebSnyanmisaka     ip_raw32_16 q_inter_y[16];
125*437bfbebSnyanmisaka     /*0x00002900 reg2624  - 0x000029fc reg2687*/
126*437bfbebSnyanmisaka     ip_raw32_16 q_inter_u[16];
127*437bfbebSnyanmisaka     /*0x00002a00 reg2688 - 0x00002afc reg2751 */
128*437bfbebSnyanmisaka     ip_raw32_16 q_inter_v[16];
129*437bfbebSnyanmisaka 
130*437bfbebSnyanmisaka     /* 0x00002b00 reg2752 - 0x00002b7c reg2783 */
131*437bfbebSnyanmisaka     ip_raw8  ip_y8[8];
132*437bfbebSnyanmisaka     /* 0x00002b80 reg2784 - 0x00002bfc reg2815 */
133*437bfbebSnyanmisaka     ip_raw8  ip_u8[8];
134*437bfbebSnyanmisaka     /* 0x00002c00 reg2816 - 0x00002c7c reg2847 */
135*437bfbebSnyanmisaka     ip_raw8  ip_v8[8];
136*437bfbebSnyanmisaka } vepu540c_scl_cfg;
137*437bfbebSnyanmisaka 
138*437bfbebSnyanmisaka typedef struct PreCstPar_t {
139*437bfbebSnyanmisaka     struct {
140*437bfbebSnyanmisaka         RK_U32 madi_thd0    : 8;
141*437bfbebSnyanmisaka         RK_U32 madi_thd1    : 8;
142*437bfbebSnyanmisaka         RK_U32 madi_thd2    : 8;
143*437bfbebSnyanmisaka         RK_U32 madi_thd3    : 8;
144*437bfbebSnyanmisaka     } cst_madi_thd0;
145*437bfbebSnyanmisaka 
146*437bfbebSnyanmisaka     /* 0x000020c4 reg2097 */
147*437bfbebSnyanmisaka     struct {
148*437bfbebSnyanmisaka         RK_U32 madi_thd4    : 8;
149*437bfbebSnyanmisaka         RK_U32 madi_thd5    : 8;
150*437bfbebSnyanmisaka         RK_U32 reserved     : 16;
151*437bfbebSnyanmisaka     } cst_madi_thd1;
152*437bfbebSnyanmisaka 
153*437bfbebSnyanmisaka     /* 0x000020c8 reg2098 */
154*437bfbebSnyanmisaka     struct {
155*437bfbebSnyanmisaka         RK_U32 wgt0    : 8;
156*437bfbebSnyanmisaka         RK_U32 wgt1    : 8;
157*437bfbebSnyanmisaka         RK_U32 wgt2    : 8;
158*437bfbebSnyanmisaka         RK_U32 wgt3    : 8;
159*437bfbebSnyanmisaka     } cst_wgt0;
160*437bfbebSnyanmisaka 
161*437bfbebSnyanmisaka     /* 0x000020cc reg2099 */
162*437bfbebSnyanmisaka     struct {
163*437bfbebSnyanmisaka         RK_U32 wgt4    : 8;
164*437bfbebSnyanmisaka         RK_U32 wgt5    : 8;
165*437bfbebSnyanmisaka         RK_U32 wgt6    : 8;
166*437bfbebSnyanmisaka         RK_U32 wgt7    : 8;
167*437bfbebSnyanmisaka     } cst_wgt1;
168*437bfbebSnyanmisaka 
169*437bfbebSnyanmisaka     /* 0x000020d0 reg2100 */
170*437bfbebSnyanmisaka     struct {
171*437bfbebSnyanmisaka         RK_U32 wgt8        : 8;
172*437bfbebSnyanmisaka         RK_U32 wgt9        : 8;
173*437bfbebSnyanmisaka         RK_U32 mode_th     : 3;
174*437bfbebSnyanmisaka         RK_U32 reserved    : 13;
175*437bfbebSnyanmisaka     } cst_wgt2;
176*437bfbebSnyanmisaka } pre_cst_par;
177*437bfbebSnyanmisaka 
178*437bfbebSnyanmisaka typedef struct RdoSkipPar_t {
179*437bfbebSnyanmisaka     struct {
180*437bfbebSnyanmisaka         RK_U32 madp_thd0    : 12;
181*437bfbebSnyanmisaka         RK_U32 reserved     : 4;
182*437bfbebSnyanmisaka         RK_U32 madp_thd1    : 12;
183*437bfbebSnyanmisaka         RK_U32 reserved1    : 4;
184*437bfbebSnyanmisaka     } atf_thd0;
185*437bfbebSnyanmisaka 
186*437bfbebSnyanmisaka     /* 0x00002064 reg2073 */
187*437bfbebSnyanmisaka     struct {
188*437bfbebSnyanmisaka         RK_U32 madp_thd2    : 12;
189*437bfbebSnyanmisaka         RK_U32 reserved     : 4;
190*437bfbebSnyanmisaka         RK_U32 madp_thd3    : 12;
191*437bfbebSnyanmisaka         RK_U32 reserved1    : 4;
192*437bfbebSnyanmisaka     } atf_thd1;
193*437bfbebSnyanmisaka 
194*437bfbebSnyanmisaka     /* 0x00002068 reg2074 */
195*437bfbebSnyanmisaka     struct {
196*437bfbebSnyanmisaka         RK_U32 wgt0    : 8;
197*437bfbebSnyanmisaka         RK_U32 wgt1    : 8;
198*437bfbebSnyanmisaka         RK_U32 wgt2    : 8;
199*437bfbebSnyanmisaka         RK_U32 wgt3    : 8;
200*437bfbebSnyanmisaka     } atf_wgt0;
201*437bfbebSnyanmisaka 
202*437bfbebSnyanmisaka     /* 0x0000206c reg2075 */
203*437bfbebSnyanmisaka     struct {
204*437bfbebSnyanmisaka         RK_U32 wgt4    : 8;
205*437bfbebSnyanmisaka         RK_U32 reserved                  : 24;
206*437bfbebSnyanmisaka     } atf_wgt1;
207*437bfbebSnyanmisaka } rdo_skip_par;
208*437bfbebSnyanmisaka 
209*437bfbebSnyanmisaka typedef struct RdoNoSkipPar_t {
210*437bfbebSnyanmisaka     /* 0x00002080 reg2080 */
211*437bfbebSnyanmisaka     struct {
212*437bfbebSnyanmisaka         RK_U32 madp_thd0    : 12;
213*437bfbebSnyanmisaka         RK_U32 reserved     : 4;
214*437bfbebSnyanmisaka         RK_U32 madp_thd1    : 12;
215*437bfbebSnyanmisaka         RK_U32 reserved1    : 4;
216*437bfbebSnyanmisaka     } ratf_thd0;
217*437bfbebSnyanmisaka 
218*437bfbebSnyanmisaka     /* 0x00002084 reg2081 */
219*437bfbebSnyanmisaka     struct {
220*437bfbebSnyanmisaka         RK_U32 madp_thd2    : 12;
221*437bfbebSnyanmisaka         RK_U32 reserved     : 20;
222*437bfbebSnyanmisaka     } ratf_thd1;
223*437bfbebSnyanmisaka 
224*437bfbebSnyanmisaka     /* 0x00002088 reg2082 */
225*437bfbebSnyanmisaka     struct {
226*437bfbebSnyanmisaka         RK_U32 wgt0    : 8;
227*437bfbebSnyanmisaka         RK_U32 wgt1    : 8;
228*437bfbebSnyanmisaka         RK_U32 wgt2    : 8;
229*437bfbebSnyanmisaka         RK_U32 wgt3    : 8;
230*437bfbebSnyanmisaka     } atf_wgt;
231*437bfbebSnyanmisaka } rdo_noskip_par;
232*437bfbebSnyanmisaka 
233*437bfbebSnyanmisaka /* class: rdo/q_i */
234*437bfbebSnyanmisaka /* 0x00002000 reg2048 - 0x00002c7c reg2847*/
235*437bfbebSnyanmisaka typedef struct Vepu540cRdoCfg_t {
236*437bfbebSnyanmisaka 
237*437bfbebSnyanmisaka     /* 0x2000 - 0x200c */
238*437bfbebSnyanmisaka     RK_U32 reserved2048_2051[4];
239*437bfbebSnyanmisaka 
240*437bfbebSnyanmisaka     /* 0x00002010 reg2052 */
241*437bfbebSnyanmisaka     struct {
242*437bfbebSnyanmisaka         RK_U32 rdo_segment_multi       : 8;
243*437bfbebSnyanmisaka         RK_U32 rdo_segment_en          : 1;
244*437bfbebSnyanmisaka         RK_U32 reserved                : 7;
245*437bfbebSnyanmisaka         RK_U32 rdo_smear_lvl4_multi    : 8;
246*437bfbebSnyanmisaka         RK_U32 rdo_smear_lvl8_multi    : 8;
247*437bfbebSnyanmisaka     } rdo_segment_cfg;
248*437bfbebSnyanmisaka 
249*437bfbebSnyanmisaka     /* 0x00002014 reg2053 */
250*437bfbebSnyanmisaka     struct {
251*437bfbebSnyanmisaka         RK_U32 rdo_smear_lvl16_multi    : 8;
252*437bfbebSnyanmisaka         RK_U32 rdo_smear_dlt_qp         : 4;
253*437bfbebSnyanmisaka         RK_U32 rdo_smear_order_state    : 1;
254*437bfbebSnyanmisaka         RK_U32 stated_mode              : 2;
255*437bfbebSnyanmisaka         RK_U32 rdo_smear_en             : 1;
256*437bfbebSnyanmisaka         RK_U32 online_en                : 1;
257*437bfbebSnyanmisaka         RK_U32 reserved                 : 3;
258*437bfbebSnyanmisaka         RK_U32 smear_stride             : 12;
259*437bfbebSnyanmisaka     } rdo_smear_cfg_comb;
260*437bfbebSnyanmisaka 
261*437bfbebSnyanmisaka     /* 0x00002018 reg2054 */
262*437bfbebSnyanmisaka     struct {
263*437bfbebSnyanmisaka         RK_U32 rdo_smear_madp_cur_thd0    : 12;
264*437bfbebSnyanmisaka         RK_U32 reserved                   : 4;
265*437bfbebSnyanmisaka         RK_U32 rdo_smear_madp_cur_thd1    : 12;
266*437bfbebSnyanmisaka         RK_U32 reserved1                  : 4;
267*437bfbebSnyanmisaka     } rdo_smear_madp_thd0_comb;
268*437bfbebSnyanmisaka 
269*437bfbebSnyanmisaka     /* 0x0000201c reg2055 */
270*437bfbebSnyanmisaka     struct {
271*437bfbebSnyanmisaka         RK_U32 rdo_smear_madp_cur_thd2    : 12;
272*437bfbebSnyanmisaka         RK_U32 reserved                   : 4;
273*437bfbebSnyanmisaka         RK_U32 rdo_smear_madp_cur_thd3    : 12;
274*437bfbebSnyanmisaka         RK_U32 reserved1                  : 4;
275*437bfbebSnyanmisaka     } rdo_smear_madp_thd1_comb;
276*437bfbebSnyanmisaka 
277*437bfbebSnyanmisaka     /* 0x00002020 reg2056 */
278*437bfbebSnyanmisaka     struct {
279*437bfbebSnyanmisaka         RK_U32 rdo_smear_madp_around_thd0    : 12;
280*437bfbebSnyanmisaka         RK_U32 reserved                      : 4;
281*437bfbebSnyanmisaka         RK_U32 rdo_smear_madp_around_thd1    : 12;
282*437bfbebSnyanmisaka         RK_U32 reserved1                     : 4;
283*437bfbebSnyanmisaka     } rdo_smear_madp_thd2_comb;
284*437bfbebSnyanmisaka 
285*437bfbebSnyanmisaka     /* 0x00002024 reg2057 */
286*437bfbebSnyanmisaka     struct {
287*437bfbebSnyanmisaka         RK_U32 rdo_smear_madp_around_thd2    : 12;
288*437bfbebSnyanmisaka         RK_U32 reserved                      : 4;
289*437bfbebSnyanmisaka         RK_U32 rdo_smear_madp_around_thd3    : 12;
290*437bfbebSnyanmisaka         RK_U32 reserved1                     : 4;
291*437bfbebSnyanmisaka     } rdo_smear_madp_thd3_comb;
292*437bfbebSnyanmisaka 
293*437bfbebSnyanmisaka     /* 0x00002028 reg2058 */
294*437bfbebSnyanmisaka     struct {
295*437bfbebSnyanmisaka         RK_U32 rdo_smear_madp_around_thd4    : 12;
296*437bfbebSnyanmisaka         RK_U32 reserved                      : 4;
297*437bfbebSnyanmisaka         RK_U32 rdo_smear_madp_around_thd5    : 12;
298*437bfbebSnyanmisaka         RK_U32 reserved1                     : 4;
299*437bfbebSnyanmisaka     } rdo_smear_madp_thd4_comb;
300*437bfbebSnyanmisaka 
301*437bfbebSnyanmisaka     /* 0x0000202c reg2059 */
302*437bfbebSnyanmisaka     struct {
303*437bfbebSnyanmisaka         RK_U32 rdo_smear_madp_ref_thd0    : 12;
304*437bfbebSnyanmisaka         RK_U32 reserved                   : 4;
305*437bfbebSnyanmisaka         RK_U32 rdo_smear_madp_ref_thd1    : 12;
306*437bfbebSnyanmisaka         RK_U32 reserved1                  : 4;
307*437bfbebSnyanmisaka     } rdo_smear_madp_thd5_comb;
308*437bfbebSnyanmisaka 
309*437bfbebSnyanmisaka     /* 0x00002030 reg2060 */
310*437bfbebSnyanmisaka     struct {
311*437bfbebSnyanmisaka         RK_U32 rdo_smear_cnt_cur_thd0    : 4;
312*437bfbebSnyanmisaka         RK_U32 reserved                  : 4;
313*437bfbebSnyanmisaka         RK_U32 rdo_smear_cnt_cur_thd1    : 4;
314*437bfbebSnyanmisaka         RK_U32 reserved1                 : 4;
315*437bfbebSnyanmisaka         RK_U32 rdo_smear_cnt_cur_thd2    : 4;
316*437bfbebSnyanmisaka         RK_U32 reserved2                 : 4;
317*437bfbebSnyanmisaka         RK_U32 rdo_smear_cnt_cur_thd3    : 4;
318*437bfbebSnyanmisaka         RK_U32 reserved3                 : 4;
319*437bfbebSnyanmisaka     } rdo_smear_cnt_thd0_comb;
320*437bfbebSnyanmisaka 
321*437bfbebSnyanmisaka     /* 0x00002034 reg2061 */
322*437bfbebSnyanmisaka     struct {
323*437bfbebSnyanmisaka         RK_U32 rdo_smear_cnt_around_thd0    : 4;
324*437bfbebSnyanmisaka         RK_U32 reserved                     : 4;
325*437bfbebSnyanmisaka         RK_U32 rdo_smear_cnt_around_thd1    : 4;
326*437bfbebSnyanmisaka         RK_U32 reserved1                    : 4;
327*437bfbebSnyanmisaka         RK_U32 rdo_smear_cnt_around_thd2    : 4;
328*437bfbebSnyanmisaka         RK_U32 reserved2                    : 4;
329*437bfbebSnyanmisaka         RK_U32 rdo_smear_cnt_around_thd3    : 4;
330*437bfbebSnyanmisaka         RK_U32 reserved3                    : 4;
331*437bfbebSnyanmisaka     } rdo_smear_cnt_thd1_comb;
332*437bfbebSnyanmisaka 
333*437bfbebSnyanmisaka     /* 0x00002038 reg2062 */
334*437bfbebSnyanmisaka     struct {
335*437bfbebSnyanmisaka         RK_U32 rdo_smear_cnt_around_thd4    : 4;
336*437bfbebSnyanmisaka         RK_U32 reserved                     : 4;
337*437bfbebSnyanmisaka         RK_U32 rdo_smear_cnt_around_thd5    : 4;
338*437bfbebSnyanmisaka         RK_U32 reserved1                    : 4;
339*437bfbebSnyanmisaka         RK_U32 rdo_smear_cnt_around_thd6    : 4;
340*437bfbebSnyanmisaka         RK_U32 reserved2                    : 4;
341*437bfbebSnyanmisaka         RK_U32 rdo_smear_cnt_around_thd7    : 4;
342*437bfbebSnyanmisaka         RK_U32 reserved3                    : 4;
343*437bfbebSnyanmisaka     } rdo_smear_cnt_thd2_comb;
344*437bfbebSnyanmisaka 
345*437bfbebSnyanmisaka     /* 0x0000203c reg2063 */
346*437bfbebSnyanmisaka     struct {
347*437bfbebSnyanmisaka         RK_U32 rdo_smear_cnt_ref_thd0    : 4;
348*437bfbebSnyanmisaka         RK_U32 reserved                  : 4;
349*437bfbebSnyanmisaka         RK_U32 rdo_smear_cnt_ref_thd1    : 4;
350*437bfbebSnyanmisaka         RK_U32 reserved1                 : 20;
351*437bfbebSnyanmisaka     } rdo_smear_cnt_thd3_comb;
352*437bfbebSnyanmisaka 
353*437bfbebSnyanmisaka     /* 0x00002040 reg2064 */
354*437bfbebSnyanmisaka     struct {
355*437bfbebSnyanmisaka         RK_U32 rdo_smear_resi_small_cur_th0    : 6;
356*437bfbebSnyanmisaka         RK_U32 reserved                        : 2;
357*437bfbebSnyanmisaka         RK_U32 rdo_smear_resi_big_cur_th0      : 6;
358*437bfbebSnyanmisaka         RK_U32 reserved1                       : 2;
359*437bfbebSnyanmisaka         RK_U32 rdo_smear_resi_small_cur_th1    : 6;
360*437bfbebSnyanmisaka         RK_U32 reserved2                       : 2;
361*437bfbebSnyanmisaka         RK_U32 rdo_smear_resi_big_cur_th1      : 6;
362*437bfbebSnyanmisaka         RK_U32 reserved3                       : 2;
363*437bfbebSnyanmisaka     } rdo_smear_resi_thd0_comb;
364*437bfbebSnyanmisaka 
365*437bfbebSnyanmisaka     /* 0x00002044 reg2065 */
366*437bfbebSnyanmisaka     struct {
367*437bfbebSnyanmisaka         RK_U32 rdo_smear_resi_small_around_th0    : 6;
368*437bfbebSnyanmisaka         RK_U32 reserved                           : 2;
369*437bfbebSnyanmisaka         RK_U32 rdo_smear_resi_big_around_th0      : 6;
370*437bfbebSnyanmisaka         RK_U32 reserved1                          : 2;
371*437bfbebSnyanmisaka         RK_U32 rdo_smear_resi_small_around_th1    : 6;
372*437bfbebSnyanmisaka         RK_U32 reserved2                          : 2;
373*437bfbebSnyanmisaka         RK_U32 rdo_smear_resi_big_around_th1      : 6;
374*437bfbebSnyanmisaka         RK_U32 reserved3                          : 2;
375*437bfbebSnyanmisaka     } rdo_smear_resi_thd1_comb;
376*437bfbebSnyanmisaka 
377*437bfbebSnyanmisaka     /* 0x00002048 reg2066 */
378*437bfbebSnyanmisaka     struct {
379*437bfbebSnyanmisaka         RK_U32 rdo_smear_resi_small_around_th2    : 6;
380*437bfbebSnyanmisaka         RK_U32 reserved                           : 2;
381*437bfbebSnyanmisaka         RK_U32 rdo_smear_resi_big_around_th2      : 6;
382*437bfbebSnyanmisaka         RK_U32 reserved1                          : 2;
383*437bfbebSnyanmisaka         RK_U32 rdo_smear_resi_small_around_th3    : 6;
384*437bfbebSnyanmisaka         RK_U32 reserved2                          : 2;
385*437bfbebSnyanmisaka         RK_U32 rdo_smear_resi_big_around_th3      : 6;
386*437bfbebSnyanmisaka         RK_U32 reserved3                          : 2;
387*437bfbebSnyanmisaka     } rdo_smear_resi_thd2_comb;
388*437bfbebSnyanmisaka 
389*437bfbebSnyanmisaka     /* 0x0000204c reg2067 */
390*437bfbebSnyanmisaka     struct {
391*437bfbebSnyanmisaka         RK_U32 rdo_smear_resi_small_ref_th0    : 6;
392*437bfbebSnyanmisaka         RK_U32 reserved                        : 2;
393*437bfbebSnyanmisaka         RK_U32 rdo_smear_resi_big_ref_th0      : 6;
394*437bfbebSnyanmisaka         RK_U32 reserved1                       : 18;
395*437bfbebSnyanmisaka     } rdo_smear_resi_thd3_comb;
396*437bfbebSnyanmisaka 
397*437bfbebSnyanmisaka     /* 0x00002050 reg2068 */
398*437bfbebSnyanmisaka     struct {
399*437bfbebSnyanmisaka         RK_U32 rdo_smear_resi_th0    : 8;
400*437bfbebSnyanmisaka         RK_U32 reserved              : 8;
401*437bfbebSnyanmisaka         RK_U32 rdo_smear_resi_th1    : 8;
402*437bfbebSnyanmisaka         RK_U32 reserved1             : 8;
403*437bfbebSnyanmisaka     } rdo_smear_st_thd0_comb;
404*437bfbebSnyanmisaka 
405*437bfbebSnyanmisaka     /* 0x00002054 reg2069 */
406*437bfbebSnyanmisaka     struct {
407*437bfbebSnyanmisaka         RK_U32 rdo_smear_madp_cnt_th0    : 4;
408*437bfbebSnyanmisaka         RK_U32 rdo_smear_madp_cnt_th1    : 4;
409*437bfbebSnyanmisaka         RK_U32 rdo_smear_madp_cnt_th2    : 4;
410*437bfbebSnyanmisaka         RK_U32 rdo_smear_madp_cnt_th3    : 4;
411*437bfbebSnyanmisaka         RK_U32 rdo_smear_madp_cnt_th4    : 4;
412*437bfbebSnyanmisaka         RK_U32 rdo_smear_madp_cnt_th5    : 4;
413*437bfbebSnyanmisaka         RK_U32 reserved                  : 8;
414*437bfbebSnyanmisaka     } rdo_smear_st_thd1_comb;
415*437bfbebSnyanmisaka 
416*437bfbebSnyanmisaka     /* 0x2058 - 0x205c */
417*437bfbebSnyanmisaka     RK_U32 reserved2070_2071[2];
418*437bfbebSnyanmisaka     /* 0x00002060 reg2072 - 0x0000206c reg2075 */
419*437bfbebSnyanmisaka     rdo_skip_par rdo_b32_skip;
420*437bfbebSnyanmisaka     /* 0x00002070 reg2076 - 0x0000207c reg2079*/
421*437bfbebSnyanmisaka     rdo_skip_par rdo_b16_skip;
422*437bfbebSnyanmisaka 
423*437bfbebSnyanmisaka     /* 0x00002080 reg2080 - 0x00002088 reg2082 */
424*437bfbebSnyanmisaka     rdo_noskip_par rdo_b32_inter;
425*437bfbebSnyanmisaka 
426*437bfbebSnyanmisaka     /* 0x0000208c reg2083 - 0x00002094 reg2085 */
427*437bfbebSnyanmisaka     rdo_noskip_par rdo_b16_inter;
428*437bfbebSnyanmisaka 
429*437bfbebSnyanmisaka     /* 0x00002098 reg2086 - 0x000020a4 reg2089 */
430*437bfbebSnyanmisaka     rdo_noskip_par rdo_b32_intra;
431*437bfbebSnyanmisaka 
432*437bfbebSnyanmisaka     /* 0x000020a8 reg2090 - 0x000020ac reg2091 */
433*437bfbebSnyanmisaka     rdo_noskip_par rdo_b16_intra;
434*437bfbebSnyanmisaka 
435*437bfbebSnyanmisaka     /* 0x000020b0 reg2092 */
436*437bfbebSnyanmisaka     struct {
437*437bfbebSnyanmisaka         RK_U32 thd0    : 6;
438*437bfbebSnyanmisaka         RK_U32 reserved                       : 2;
439*437bfbebSnyanmisaka         RK_U32 thd1    : 6;
440*437bfbebSnyanmisaka         RK_U32 reserved1                      : 2;
441*437bfbebSnyanmisaka         RK_U32 thd2    : 6;
442*437bfbebSnyanmisaka         RK_U32 reserved2                      : 2;
443*437bfbebSnyanmisaka         RK_U32 thd3    : 6;
444*437bfbebSnyanmisaka         RK_U32 reserved3                      : 2;
445*437bfbebSnyanmisaka     } rdo_b32_intra_atf_cnt_thd;
446*437bfbebSnyanmisaka 
447*437bfbebSnyanmisaka     /* 0x000020b4 reg2093 */
448*437bfbebSnyanmisaka     struct {
449*437bfbebSnyanmisaka         RK_U32 thd0    : 4;
450*437bfbebSnyanmisaka         RK_U32 reserved                       : 4;
451*437bfbebSnyanmisaka         RK_U32 thd1    : 4;
452*437bfbebSnyanmisaka         RK_U32 reserved1                      : 4;
453*437bfbebSnyanmisaka         RK_U32 thd2    : 4;
454*437bfbebSnyanmisaka         RK_U32 reserved2                      : 4;
455*437bfbebSnyanmisaka         RK_U32 thd3    : 4;
456*437bfbebSnyanmisaka         RK_U32 reserved3                      : 4;
457*437bfbebSnyanmisaka     } rdo_b16_intra_atf_cnt_thd_comb;
458*437bfbebSnyanmisaka 
459*437bfbebSnyanmisaka     /* 0x000020b8 reg2094 */
460*437bfbebSnyanmisaka     struct {
461*437bfbebSnyanmisaka         RK_U32 big_th0      : 6;
462*437bfbebSnyanmisaka         RK_U32 reserved                  : 2;
463*437bfbebSnyanmisaka         RK_U32 big_th1      : 6;
464*437bfbebSnyanmisaka         RK_U32 reserved1                 : 2;
465*437bfbebSnyanmisaka         RK_U32 small_th0    : 6;
466*437bfbebSnyanmisaka         RK_U32 reserved2                 : 2;
467*437bfbebSnyanmisaka         RK_U32 small_th1    : 6;
468*437bfbebSnyanmisaka         RK_U32 reserved3                 : 2;
469*437bfbebSnyanmisaka     } rdo_atf_resi_thd_comb;
470*437bfbebSnyanmisaka 
471*437bfbebSnyanmisaka     /* 0x20bc */
472*437bfbebSnyanmisaka     RK_U32 reserved_2095;
473*437bfbebSnyanmisaka 
474*437bfbebSnyanmisaka     /* 0x000020c0 reg2096 - 0x000020d0 reg2100 */
475*437bfbebSnyanmisaka     pre_cst_par preintra32_cst;
476*437bfbebSnyanmisaka     /* 0x000020d4 reg2101 - 0x000020e4 reg2105 */
477*437bfbebSnyanmisaka     pre_cst_par preintra16_cst;
478*437bfbebSnyanmisaka 
479*437bfbebSnyanmisaka     /* 0x20e8 - 0x20ec */
480*437bfbebSnyanmisaka     RK_U32 reserved2106_2107[2];
481*437bfbebSnyanmisaka 
482*437bfbebSnyanmisaka     /* 0x000020f0 reg2108 */
483*437bfbebSnyanmisaka     struct {
484*437bfbebSnyanmisaka         RK_U32 pre_intra_qp_thd             : 6;
485*437bfbebSnyanmisaka         RK_U32 reserved                     : 2;
486*437bfbebSnyanmisaka         RK_U32 pre_intra4_lambda_mv_bit     : 3;
487*437bfbebSnyanmisaka         RK_U32 reserved1                    : 1;
488*437bfbebSnyanmisaka         RK_U32 pre_intra8_lambda_mv_bit     : 3;
489*437bfbebSnyanmisaka         RK_U32 reserved2                    : 1;
490*437bfbebSnyanmisaka         RK_U32 pre_intra16_lambda_mv_bit    : 3;
491*437bfbebSnyanmisaka         RK_U32 reserved3                    : 1;
492*437bfbebSnyanmisaka         RK_U32 pre_intra32_lambda_mv_bit    : 3;
493*437bfbebSnyanmisaka         RK_U32 reserved4                    : 9;
494*437bfbebSnyanmisaka     } preintra_sqi_cfg;
495*437bfbebSnyanmisaka 
496*437bfbebSnyanmisaka     /* 0x000020f4 reg2109 */
497*437bfbebSnyanmisaka     struct {
498*437bfbebSnyanmisaka         RK_U32 i_cu32_madi_thd0    : 8;
499*437bfbebSnyanmisaka         RK_U32 i_cu32_madi_thd1    : 8;
500*437bfbebSnyanmisaka         RK_U32 i_cu32_madi_thd2    : 8;
501*437bfbebSnyanmisaka         RK_U32 reserved            : 8;
502*437bfbebSnyanmisaka     } rdo_atr_i_cu32_madi_cfg0;
503*437bfbebSnyanmisaka 
504*437bfbebSnyanmisaka     /* 0x000020f8 reg2110 */
505*437bfbebSnyanmisaka     struct {
506*437bfbebSnyanmisaka         RK_U32 i_cu32_madi_cnt_thd3      : 5;
507*437bfbebSnyanmisaka         RK_U32 reserved                  : 3;
508*437bfbebSnyanmisaka         RK_U32 i_cu32_madi_thd4          : 8;
509*437bfbebSnyanmisaka         RK_U32 i_cu32_madi_cost_multi    : 8;
510*437bfbebSnyanmisaka         RK_U32 reserved1                 : 8;
511*437bfbebSnyanmisaka     } rdo_atr_i_cu32_madi_cfg1;
512*437bfbebSnyanmisaka 
513*437bfbebSnyanmisaka     /* 0x000020fc reg2111 */
514*437bfbebSnyanmisaka     struct {
515*437bfbebSnyanmisaka         RK_U32 i_cu16_madi_thd0          : 8;
516*437bfbebSnyanmisaka         RK_U32 i_cu16_madi_thd1          : 8;
517*437bfbebSnyanmisaka         RK_U32 i_cu16_madi_cost_multi    : 8;
518*437bfbebSnyanmisaka         RK_U32 reserved                  : 8;
519*437bfbebSnyanmisaka     } rdo_atr_i_cu16_madi_cfg0;
520*437bfbebSnyanmisaka } vepu540c_rdo_cfg;
521*437bfbebSnyanmisaka 
522*437bfbebSnyanmisaka typedef struct Vepu540cJpegReg_t {
523*437bfbebSnyanmisaka 
524*437bfbebSnyanmisaka     RK_U32  reg0256_adr_bsbt;
525*437bfbebSnyanmisaka 
526*437bfbebSnyanmisaka     /* 0x00000404 reg257 */
527*437bfbebSnyanmisaka     RK_U32  reg0257_adr_bsbb;
528*437bfbebSnyanmisaka 
529*437bfbebSnyanmisaka     /* 0x00000408 reg258 */
530*437bfbebSnyanmisaka     RK_U32 reg0258_adr_bsbs;
531*437bfbebSnyanmisaka 
532*437bfbebSnyanmisaka     /* 0x0000040c reg259 */
533*437bfbebSnyanmisaka     RK_U32 reg0259_adr_bsbr;
534*437bfbebSnyanmisaka 
535*437bfbebSnyanmisaka     /* 0x00000410 reg260 */
536*437bfbebSnyanmisaka     RK_U32 reg0260_adr_vsy_b;
537*437bfbebSnyanmisaka 
538*437bfbebSnyanmisaka     /* 0x00000414 reg261 */
539*437bfbebSnyanmisaka     RK_U32 reg0261_adr_vsc_b;
540*437bfbebSnyanmisaka 
541*437bfbebSnyanmisaka     /* 0x00000418 reg262 */
542*437bfbebSnyanmisaka     RK_U32 reg0262_adr_vsy_t;
543*437bfbebSnyanmisaka 
544*437bfbebSnyanmisaka     /* 0x0000041c reg263 */
545*437bfbebSnyanmisaka     RK_U32 reg0263_adr_vsc_t;
546*437bfbebSnyanmisaka 
547*437bfbebSnyanmisaka     /* 0x00000420 reg264 */
548*437bfbebSnyanmisaka     RK_U32 reg0264_adr_src0;
549*437bfbebSnyanmisaka 
550*437bfbebSnyanmisaka     /* 0x00000424 reg265 */
551*437bfbebSnyanmisaka     RK_U32 reg0265_adr_src1;
552*437bfbebSnyanmisaka 
553*437bfbebSnyanmisaka     /* 0x00000428 reg266 */
554*437bfbebSnyanmisaka     RK_U32 reg0266_adr_src2;
555*437bfbebSnyanmisaka 
556*437bfbebSnyanmisaka     /* 0x0000042c reg267 */
557*437bfbebSnyanmisaka     struct {
558*437bfbebSnyanmisaka         RK_U32 bsp_size_jpeg    : 1;
559*437bfbebSnyanmisaka         RK_U32 reserved         : 31;
560*437bfbebSnyanmisaka     } bsp_size_jpeg;
561*437bfbebSnyanmisaka 
562*437bfbebSnyanmisaka     /* 0x430 - 0x43c */
563*437bfbebSnyanmisaka     RK_U32 reserved268_271[4];
564*437bfbebSnyanmisaka 
565*437bfbebSnyanmisaka     /* 0x00000440 reg272 */
566*437bfbebSnyanmisaka     struct {
567*437bfbebSnyanmisaka         RK_U32 pic_wd8_m1         : 11;
568*437bfbebSnyanmisaka         RK_U32 reserved           : 5;
569*437bfbebSnyanmisaka         RK_U32 pic_hd8_m1         : 11;
570*437bfbebSnyanmisaka         RK_U32 reserved1          : 5;
571*437bfbebSnyanmisaka     } reg0272_enc_rsl;
572*437bfbebSnyanmisaka 
573*437bfbebSnyanmisaka     /* 0x00000444 reg273 */
574*437bfbebSnyanmisaka     struct {
575*437bfbebSnyanmisaka         RK_U32 pic_wfill         : 6;
576*437bfbebSnyanmisaka         RK_U32 reserved          : 10;
577*437bfbebSnyanmisaka         RK_U32 pic_hfill         : 6;
578*437bfbebSnyanmisaka         RK_U32 reserved1         : 10;
579*437bfbebSnyanmisaka     } reg0273_src_fill;
580*437bfbebSnyanmisaka 
581*437bfbebSnyanmisaka     /* 0x00000448 reg274 */
582*437bfbebSnyanmisaka     struct {
583*437bfbebSnyanmisaka         RK_U32 alpha_swap            : 1;
584*437bfbebSnyanmisaka         RK_U32 rbuv_swap             : 1;
585*437bfbebSnyanmisaka         RK_U32 src_cfmt              : 4;
586*437bfbebSnyanmisaka         RK_U32 reserved              : 1;
587*437bfbebSnyanmisaka         RK_U32 out_fmt               : 1;
588*437bfbebSnyanmisaka         RK_U32 src_range_trns_en     : 1;
589*437bfbebSnyanmisaka         RK_U32 src_range_trns_sel    : 1;
590*437bfbebSnyanmisaka         RK_U32 chroma_ds_mode        : 1;
591*437bfbebSnyanmisaka         RK_U32 reserved1             : 21;
592*437bfbebSnyanmisaka     } reg0274_src_fmt;
593*437bfbebSnyanmisaka 
594*437bfbebSnyanmisaka     /* 0x0000044c reg275 */
595*437bfbebSnyanmisaka     struct {
596*437bfbebSnyanmisaka         RK_U32 csc_wgt_b2y    : 9;
597*437bfbebSnyanmisaka         RK_U32 csc_wgt_g2y    : 9;
598*437bfbebSnyanmisaka         RK_U32 csc_wgt_r2y    : 9;
599*437bfbebSnyanmisaka         RK_U32 reserved            : 5;
600*437bfbebSnyanmisaka     } reg0275_src_udfy;
601*437bfbebSnyanmisaka 
602*437bfbebSnyanmisaka     /* 0x00000450 reg276 */
603*437bfbebSnyanmisaka     struct {
604*437bfbebSnyanmisaka         RK_U32 csc_wgt_b2u    : 9;
605*437bfbebSnyanmisaka         RK_U32 csc_wgt_g2u    : 9;
606*437bfbebSnyanmisaka         RK_U32 csc_wgt_r2u    : 9;
607*437bfbebSnyanmisaka         RK_U32 reserved            : 5;
608*437bfbebSnyanmisaka     } reg0276_src_udfu;
609*437bfbebSnyanmisaka 
610*437bfbebSnyanmisaka     /* 0x00000454 reg277 */
611*437bfbebSnyanmisaka     struct {
612*437bfbebSnyanmisaka         RK_U32 csc_wgt_b2v    : 9;
613*437bfbebSnyanmisaka         RK_U32 csc_wgt_g2v    : 9;
614*437bfbebSnyanmisaka         RK_U32 csc_wgt_r2v    : 9;
615*437bfbebSnyanmisaka         RK_U32 reserved            : 5;
616*437bfbebSnyanmisaka     } reg0277_src_udfv;
617*437bfbebSnyanmisaka 
618*437bfbebSnyanmisaka     /* 0x00000458 reg278 */
619*437bfbebSnyanmisaka     struct {
620*437bfbebSnyanmisaka         RK_U32 csc_ofst_v    : 8;
621*437bfbebSnyanmisaka         RK_U32 csc_ofst_u    : 8;
622*437bfbebSnyanmisaka         RK_U32 csc_ofst_y    : 5;
623*437bfbebSnyanmisaka         RK_U32 reserved           : 11;
624*437bfbebSnyanmisaka     } reg0278_src_udfo;
625*437bfbebSnyanmisaka 
626*437bfbebSnyanmisaka     /* 0x0000045c reg279 */
627*437bfbebSnyanmisaka     struct {
628*437bfbebSnyanmisaka         RK_U32 reserved         : 26;
629*437bfbebSnyanmisaka         RK_U32 src_mirr    : 1;
630*437bfbebSnyanmisaka         RK_U32 src_rot     : 2;
631*437bfbebSnyanmisaka         RK_U32 reserved1        : 3;
632*437bfbebSnyanmisaka     } reg0279_src_proc;
633*437bfbebSnyanmisaka 
634*437bfbebSnyanmisaka     /* 0x00000460 reg280 */
635*437bfbebSnyanmisaka     struct {
636*437bfbebSnyanmisaka         RK_U32 pic_ofst_x    : 14;
637*437bfbebSnyanmisaka         RK_U32 reserved           : 2;
638*437bfbebSnyanmisaka         RK_U32 pic_ofst_y    : 14;
639*437bfbebSnyanmisaka         RK_U32 reserved1          : 2;
640*437bfbebSnyanmisaka     } reg0280_pic_ofst;
641*437bfbebSnyanmisaka 
642*437bfbebSnyanmisaka     /* 0x00000464 reg281 */
643*437bfbebSnyanmisaka     struct {
644*437bfbebSnyanmisaka         RK_U32 src_strd0    : 17;
645*437bfbebSnyanmisaka         RK_U32 reserved          : 15;
646*437bfbebSnyanmisaka     } reg0281_src_strd0;
647*437bfbebSnyanmisaka 
648*437bfbebSnyanmisaka     /* 0x00000468 reg282 */
649*437bfbebSnyanmisaka     struct {
650*437bfbebSnyanmisaka         RK_U32 src_strd1    : 16;
651*437bfbebSnyanmisaka         RK_U32 reserved          : 16;
652*437bfbebSnyanmisaka     } reg0282_src_strd1;
653*437bfbebSnyanmisaka 
654*437bfbebSnyanmisaka     /* 0x0000046c reg283 */
655*437bfbebSnyanmisaka     struct {
656*437bfbebSnyanmisaka         RK_U32 pp_corner_filter_strength      : 2;
657*437bfbebSnyanmisaka         RK_U32 reserved                            : 2;
658*437bfbebSnyanmisaka         RK_U32 pp_edge_filter_strength        : 2;
659*437bfbebSnyanmisaka         RK_U32 reserved1                           : 2;
660*437bfbebSnyanmisaka         RK_U32 pp_internal_filter_strength    : 2;
661*437bfbebSnyanmisaka         RK_U32 reserved2                           : 22;
662*437bfbebSnyanmisaka     } reg0283_src_flt;
663*437bfbebSnyanmisaka 
664*437bfbebSnyanmisaka     /* 0x00000470 reg284 */
665*437bfbebSnyanmisaka     struct {
666*437bfbebSnyanmisaka         RK_U32 bias_y    : 15;
667*437bfbebSnyanmisaka         RK_U32 reserved       : 17;
668*437bfbebSnyanmisaka     } reg0284_y_cfg;
669*437bfbebSnyanmisaka 
670*437bfbebSnyanmisaka     /* 0x00000474 reg285 */
671*437bfbebSnyanmisaka     struct {
672*437bfbebSnyanmisaka         RK_U32 bias_u    : 15;
673*437bfbebSnyanmisaka         RK_U32 reserved       : 17;
674*437bfbebSnyanmisaka     } reg0285_u_cfg;
675*437bfbebSnyanmisaka 
676*437bfbebSnyanmisaka     /* 0x00000478 reg286 */
677*437bfbebSnyanmisaka     struct {
678*437bfbebSnyanmisaka         RK_U32 bias_v    : 15;
679*437bfbebSnyanmisaka         RK_U32 reserved       : 17;
680*437bfbebSnyanmisaka     } reg0286_v_cfg;
681*437bfbebSnyanmisaka 
682*437bfbebSnyanmisaka     /* 0x0000047c reg287 */
683*437bfbebSnyanmisaka     struct {
684*437bfbebSnyanmisaka         RK_U32 jpeg_ri              : 25;
685*437bfbebSnyanmisaka         RK_U32 jpeg_out_mode        : 1;
686*437bfbebSnyanmisaka         RK_U32 jpeg_start_rst_m     : 3;
687*437bfbebSnyanmisaka         RK_U32 jpeg_pic_last_ecs    : 1;
688*437bfbebSnyanmisaka         RK_U32 jpeg_slen_fifo       : 1;
689*437bfbebSnyanmisaka         RK_U32 jpeg_stnd            : 1;
690*437bfbebSnyanmisaka     } reg0287_base_cfg;
691*437bfbebSnyanmisaka 
692*437bfbebSnyanmisaka     /* 0x00000480 reg288 */
693*437bfbebSnyanmisaka     struct {
694*437bfbebSnyanmisaka         RK_U32 uvc_partition0_len    : 12;
695*437bfbebSnyanmisaka         RK_U32 uvc_partition_len     : 12;
696*437bfbebSnyanmisaka         RK_U32 uvc_skip_len          : 6;
697*437bfbebSnyanmisaka         RK_U32 reserved              : 2;
698*437bfbebSnyanmisaka     } reg0288_uvc_cfg;
699*437bfbebSnyanmisaka } Vepu540cJpegReg;
700*437bfbebSnyanmisaka 
701*437bfbebSnyanmisaka /* 0x00002c80 reg2848 - - 0x00002dfc reg2943*/
702*437bfbebSnyanmisaka typedef struct Vepu540cJpegTab_t {
703*437bfbebSnyanmisaka     /* 0x00002c80 reg2848 - 0x00002cfc reg2879 */
704*437bfbebSnyanmisaka     RK_U16 qua_tab0[64];
705*437bfbebSnyanmisaka     /*  0x00002d00 reg2880 -  0x00002d7c reg2911 */
706*437bfbebSnyanmisaka     RK_U16 qua_tab1[64];
707*437bfbebSnyanmisaka     /* 0x00002d80 reg2912 - 0x00002dfc reg2943 */
708*437bfbebSnyanmisaka     RK_U16 qua_tab2[64];
709*437bfbebSnyanmisaka } vepu540c_jpeg_tab;
710*437bfbebSnyanmisaka 
711*437bfbebSnyanmisaka typedef struct Vepu540cRoiRegion_t {
712*437bfbebSnyanmisaka 
713*437bfbebSnyanmisaka     struct {
714*437bfbebSnyanmisaka         RK_U32 roi_lt_x    : 10;
715*437bfbebSnyanmisaka         RK_U32 reserved     : 6;
716*437bfbebSnyanmisaka         RK_U32 roi_lt_y    : 10;
717*437bfbebSnyanmisaka         RK_U32 reserved1    : 6;
718*437bfbebSnyanmisaka     } roi_pos_lt;
719*437bfbebSnyanmisaka 
720*437bfbebSnyanmisaka     struct {
721*437bfbebSnyanmisaka         RK_U32 roi_rb_x    : 10;
722*437bfbebSnyanmisaka         RK_U32 reserved     : 6;
723*437bfbebSnyanmisaka         RK_U32 roi_rb_y    : 10;
724*437bfbebSnyanmisaka         RK_U32 reserved1    : 6;
725*437bfbebSnyanmisaka     } roi_pos_rb;
726*437bfbebSnyanmisaka 
727*437bfbebSnyanmisaka     struct {
728*437bfbebSnyanmisaka         RK_U32 roi_qp_value       : 7;
729*437bfbebSnyanmisaka         RK_U32 roi_qp_adj_mode    : 1;
730*437bfbebSnyanmisaka         RK_U32 roi_pri            : 5;
731*437bfbebSnyanmisaka         RK_U32 roi_en             : 1;
732*437bfbebSnyanmisaka         RK_U32 reserved           : 18;
733*437bfbebSnyanmisaka     } roi_base;
734*437bfbebSnyanmisaka     struct {
735*437bfbebSnyanmisaka         RK_U32 roi_mdc_inter16         : 4;
736*437bfbebSnyanmisaka         RK_U32 roi_mdc_skip16          : 4;
737*437bfbebSnyanmisaka         RK_U32 roi_mdc_intra16         : 4;
738*437bfbebSnyanmisaka         RK_U32 roi0_mdc_inter32_hevc   : 4;
739*437bfbebSnyanmisaka         RK_U32 roi0_mdc_skip32_hevc    : 4;
740*437bfbebSnyanmisaka         RK_U32 roi0_mdc_intra32_hevc   : 4;
741*437bfbebSnyanmisaka         RK_U32 roi0_mdc_dpth_hevc      : 1;
742*437bfbebSnyanmisaka         RK_U32 reserved                : 7;
743*437bfbebSnyanmisaka     } roi_mdc;
744*437bfbebSnyanmisaka } Vepu540cRoiRegion;
745*437bfbebSnyanmisaka 
746*437bfbebSnyanmisaka /*
747*437bfbebSnyanmisaka  * Vepu540cRoiCfg
748*437bfbebSnyanmisaka  *
749*437bfbebSnyanmisaka  */
750*437bfbebSnyanmisaka typedef struct Vepu540cRoiCfg_t {
751*437bfbebSnyanmisaka     struct {
752*437bfbebSnyanmisaka         RK_U32 fmdc_adju_inter16         : 4;
753*437bfbebSnyanmisaka         RK_U32 fmdc_adju_skip16          : 4;
754*437bfbebSnyanmisaka         RK_U32 fmdc_adju_intra16         : 4;
755*437bfbebSnyanmisaka         RK_U32 fmdc_adju_inter32         : 4;
756*437bfbebSnyanmisaka         RK_U32 fmdc_adju_skip32          : 4;
757*437bfbebSnyanmisaka         RK_U32 fmdc_adju_intra32         : 4;
758*437bfbebSnyanmisaka         RK_U32 fmdc_adj_pri              : 5;
759*437bfbebSnyanmisaka         RK_U32 reserved                  : 3;
760*437bfbebSnyanmisaka     } fmdc_adj0;
761*437bfbebSnyanmisaka 
762*437bfbebSnyanmisaka     /* 0x00001084 reg1057 */
763*437bfbebSnyanmisaka     struct {
764*437bfbebSnyanmisaka         RK_U32 fmdc_adju_inter8         : 4;
765*437bfbebSnyanmisaka         RK_U32 fmdc_adju_skip8          : 4;
766*437bfbebSnyanmisaka         RK_U32 fmdc_adju_intra8         : 4;
767*437bfbebSnyanmisaka         RK_U32 reserved                 : 20;
768*437bfbebSnyanmisaka     } fmdc_adj1;
769*437bfbebSnyanmisaka 
770*437bfbebSnyanmisaka     RK_U32 reserved_1058;
771*437bfbebSnyanmisaka 
772*437bfbebSnyanmisaka     /* 0x0000108c reg1059 */
773*437bfbebSnyanmisaka     struct {
774*437bfbebSnyanmisaka         RK_U32 bmap_en               : 1;
775*437bfbebSnyanmisaka         RK_U32 bmap_pri              : 5;
776*437bfbebSnyanmisaka         RK_U32 bmap_qpmin            : 6;
777*437bfbebSnyanmisaka         RK_U32 bmap_qpmax            : 6;
778*437bfbebSnyanmisaka         RK_U32 bmap_mdc_dpth         : 1;
779*437bfbebSnyanmisaka         RK_U32 reserved              : 13;
780*437bfbebSnyanmisaka     } bmap_cfg;
781*437bfbebSnyanmisaka 
782*437bfbebSnyanmisaka     Vepu540cRoiRegion regions[8];
783*437bfbebSnyanmisaka } Vepu540cRoiCfg;
784*437bfbebSnyanmisaka 
785*437bfbebSnyanmisaka /* class: st */
786*437bfbebSnyanmisaka /* 0x00004000 reg4096 - 0x000042cc reg4275 */
787*437bfbebSnyanmisaka typedef struct Vepu540cStatus_t {
788*437bfbebSnyanmisaka     /* 0x00004000 reg4096 */
789*437bfbebSnyanmisaka     RK_U32 bs_lgth_l32;
790*437bfbebSnyanmisaka 
791*437bfbebSnyanmisaka     /* 0x00004004 reg4097 */
792*437bfbebSnyanmisaka     struct {
793*437bfbebSnyanmisaka         RK_U32 bs_lgth_h8    : 8;
794*437bfbebSnyanmisaka         RK_U32 reserved      : 8;
795*437bfbebSnyanmisaka         RK_U32 sse_l16       : 16;
796*437bfbebSnyanmisaka     } st_sse_bsl;
797*437bfbebSnyanmisaka 
798*437bfbebSnyanmisaka     /* 0x00004008 reg4098 */
799*437bfbebSnyanmisaka     RK_U32 sse_h32;
800*437bfbebSnyanmisaka 
801*437bfbebSnyanmisaka     /* 0x0000400c reg4099 */
802*437bfbebSnyanmisaka     RK_U32 qp_sum;
803*437bfbebSnyanmisaka 
804*437bfbebSnyanmisaka     /* 0x00004010 reg4100 */
805*437bfbebSnyanmisaka     struct {
806*437bfbebSnyanmisaka         RK_U32 sao_cnum    : 16;
807*437bfbebSnyanmisaka         RK_U32 sao_ynum    : 16;
808*437bfbebSnyanmisaka     } st_sao;
809*437bfbebSnyanmisaka 
810*437bfbebSnyanmisaka     /* 0x00004014 reg4101 */
811*437bfbebSnyanmisaka     RK_U32 rdo_head_bits;
812*437bfbebSnyanmisaka 
813*437bfbebSnyanmisaka     /* 0x00004018 reg4102 */
814*437bfbebSnyanmisaka     struct {
815*437bfbebSnyanmisaka         RK_U32 rdo_head_bits_h8    : 8;
816*437bfbebSnyanmisaka         RK_U32 reserved            : 8;
817*437bfbebSnyanmisaka         RK_U32 rdo_res_bits_l16    : 16;
818*437bfbebSnyanmisaka     } st_head_res_bl;
819*437bfbebSnyanmisaka 
820*437bfbebSnyanmisaka     /* 0x0000401c reg4103 */
821*437bfbebSnyanmisaka     RK_U32 rdo_res_bits_h24;
822*437bfbebSnyanmisaka 
823*437bfbebSnyanmisaka     /* 0x00004020 reg4104 */
824*437bfbebSnyanmisaka     struct {
825*437bfbebSnyanmisaka         RK_U32 st_enc      : 2;
826*437bfbebSnyanmisaka         RK_U32 st_sclr     : 1;
827*437bfbebSnyanmisaka         RK_U32 reserved    : 29;
828*437bfbebSnyanmisaka     } st_enc;
829*437bfbebSnyanmisaka 
830*437bfbebSnyanmisaka     /* 0x00004024 reg4105 */
831*437bfbebSnyanmisaka     struct {
832*437bfbebSnyanmisaka         RK_U32 fnum_cfg_done    : 8;
833*437bfbebSnyanmisaka         RK_U32 fnum_cfg         : 8;
834*437bfbebSnyanmisaka         RK_U32 fnum_int         : 8;
835*437bfbebSnyanmisaka         RK_U32 fnum_enc_done    : 8;
836*437bfbebSnyanmisaka     } st_lkt;
837*437bfbebSnyanmisaka 
838*437bfbebSnyanmisaka     /* 0x00004028 reg4106 */
839*437bfbebSnyanmisaka     RK_U32 node_addr;
840*437bfbebSnyanmisaka 
841*437bfbebSnyanmisaka     /* 0x0000402c reg4107 */
842*437bfbebSnyanmisaka     struct {
843*437bfbebSnyanmisaka         RK_U32 bsbw_ovfl    : 1;
844*437bfbebSnyanmisaka         RK_U32 reserved     : 2;
845*437bfbebSnyanmisaka         RK_U32 bsbw_addr    : 28;
846*437bfbebSnyanmisaka         RK_U32 reserved1    : 1;
847*437bfbebSnyanmisaka     } st_bsb;
848*437bfbebSnyanmisaka 
849*437bfbebSnyanmisaka     /* 0x00004030 reg4108 */
850*437bfbebSnyanmisaka     struct {
851*437bfbebSnyanmisaka         RK_U32 axib_idl     : 8;
852*437bfbebSnyanmisaka         RK_U32 axib_ovfl    : 8;
853*437bfbebSnyanmisaka         RK_U32 axib_err     : 8;
854*437bfbebSnyanmisaka         RK_U32 axir_err     : 7;
855*437bfbebSnyanmisaka         RK_U32 reserved     : 1;
856*437bfbebSnyanmisaka     } st_bus;
857*437bfbebSnyanmisaka 
858*437bfbebSnyanmisaka     /* 0x00004034 reg4109 */
859*437bfbebSnyanmisaka     struct {
860*437bfbebSnyanmisaka         RK_U32 sli_num_video     : 6;
861*437bfbebSnyanmisaka         RK_U32 sli_num_jpeg      : 6;
862*437bfbebSnyanmisaka         RK_U32 reserved          : 4;
863*437bfbebSnyanmisaka         RK_U32 bpkt_num_video    : 7;
864*437bfbebSnyanmisaka         RK_U32 bpkt_lst_video    : 1;
865*437bfbebSnyanmisaka         RK_U32 bpkt_num_jpeg     : 7;
866*437bfbebSnyanmisaka         RK_U32 bpkt_lst_jpeg     : 1;
867*437bfbebSnyanmisaka     } st_snum;
868*437bfbebSnyanmisaka 
869*437bfbebSnyanmisaka     /* 0x00004038 reg4110 */
870*437bfbebSnyanmisaka     RK_U32 sli_len;
871*437bfbebSnyanmisaka 
872*437bfbebSnyanmisaka     /* 0x403c - 0x40fc */
873*437bfbebSnyanmisaka     struct {
874*437bfbebSnyanmisaka         RK_U32 task_id_proc     : 12;
875*437bfbebSnyanmisaka         RK_U32 task_id_done     : 12;
876*437bfbebSnyanmisaka         RK_U32 task_done        : 1;
877*437bfbebSnyanmisaka         RK_U32 task_lkt_err     : 3;
878*437bfbebSnyanmisaka         RK_U32 dvbm_enc_err     : 1;
879*437bfbebSnyanmisaka         RK_U32 dvbm_fmch_err    : 1;
880*437bfbebSnyanmisaka         RK_U32 reserved         : 1;
881*437bfbebSnyanmisaka         RK_U32 rfpr_ovrb_err    : 1;
882*437bfbebSnyanmisaka     } st_link_task;
883*437bfbebSnyanmisaka 
884*437bfbebSnyanmisaka     /* 0x4040 - 0x405c */
885*437bfbebSnyanmisaka     RK_U32 reserved4111_4119[8];
886*437bfbebSnyanmisaka 
887*437bfbebSnyanmisaka     RK_U32 sli_len_jpeg;
888*437bfbebSnyanmisaka 
889*437bfbebSnyanmisaka     /* 0x00004064 reg4121 */
890*437bfbebSnyanmisaka     RK_U32 jpeg_head_bits_l32;
891*437bfbebSnyanmisaka 
892*437bfbebSnyanmisaka     /* 0x00004068 reg4122 */
893*437bfbebSnyanmisaka     struct {
894*437bfbebSnyanmisaka         RK_U32 jpeg_head_bits_h8    : 1;
895*437bfbebSnyanmisaka         RK_U32 reserved             : 31;
896*437bfbebSnyanmisaka     } st_bsl_h8_jpeg;
897*437bfbebSnyanmisaka 
898*437bfbebSnyanmisaka     /* 0x0000406c reg4123 */
899*437bfbebSnyanmisaka     struct {
900*437bfbebSnyanmisaka         RK_U32 jbsbw_ovfl    : 1;
901*437bfbebSnyanmisaka         RK_U32 reserved      : 2;
902*437bfbebSnyanmisaka         RK_U32 jbsbw_addr    : 28;
903*437bfbebSnyanmisaka         RK_U32 reserved1     : 1;
904*437bfbebSnyanmisaka     } st_jbsb;
905*437bfbebSnyanmisaka 
906*437bfbebSnyanmisaka     /* 0x4070 - 0x407c */
907*437bfbebSnyanmisaka     RK_U32 reserved4124_4127[4];
908*437bfbebSnyanmisaka 
909*437bfbebSnyanmisaka     /* 0x00004080 reg4128 */
910*437bfbebSnyanmisaka     struct {
911*437bfbebSnyanmisaka         RK_U32 pnum_p64    : 17;
912*437bfbebSnyanmisaka         RK_U32 reserved    : 15;
913*437bfbebSnyanmisaka     } st_pnum_p64;
914*437bfbebSnyanmisaka 
915*437bfbebSnyanmisaka     /* 0x00004084 reg4129 */
916*437bfbebSnyanmisaka     struct {
917*437bfbebSnyanmisaka         RK_U32 pnum_p32    : 19;
918*437bfbebSnyanmisaka         RK_U32 reserved    : 13;
919*437bfbebSnyanmisaka     } st_pnum_p32;
920*437bfbebSnyanmisaka 
921*437bfbebSnyanmisaka     /* 0x00004088 reg4130 */
922*437bfbebSnyanmisaka     struct {
923*437bfbebSnyanmisaka         RK_U32 pnum_p16    : 21;
924*437bfbebSnyanmisaka         RK_U32 reserved    : 11;
925*437bfbebSnyanmisaka     } st_pnum_p16;
926*437bfbebSnyanmisaka 
927*437bfbebSnyanmisaka     /* 0x0000408c reg4131 */
928*437bfbebSnyanmisaka     struct {
929*437bfbebSnyanmisaka         RK_U32 pnum_p8     : 23;
930*437bfbebSnyanmisaka         RK_U32 reserved    : 9;
931*437bfbebSnyanmisaka     } st_pnum_p8;
932*437bfbebSnyanmisaka 
933*437bfbebSnyanmisaka     /* 0x00004090 reg4132 */
934*437bfbebSnyanmisaka     struct {
935*437bfbebSnyanmisaka         RK_U32 pnum_i32    : 19;
936*437bfbebSnyanmisaka         RK_U32 reserved    : 13;
937*437bfbebSnyanmisaka     } st_pnum_i32;
938*437bfbebSnyanmisaka 
939*437bfbebSnyanmisaka     /* 0x00004094 reg4133 */
940*437bfbebSnyanmisaka     struct {
941*437bfbebSnyanmisaka         RK_U32 pnum_i16    : 21;
942*437bfbebSnyanmisaka         RK_U32 reserved    : 11;
943*437bfbebSnyanmisaka     } st_pnum_i16;
944*437bfbebSnyanmisaka 
945*437bfbebSnyanmisaka     /* 0x00004098 reg4134 */
946*437bfbebSnyanmisaka     struct {
947*437bfbebSnyanmisaka         RK_U32 pnum_i8     : 23;
948*437bfbebSnyanmisaka         RK_U32 reserved    : 9;
949*437bfbebSnyanmisaka     } st_pnum_i8;
950*437bfbebSnyanmisaka 
951*437bfbebSnyanmisaka     /* 0x0000409c reg4135 */
952*437bfbebSnyanmisaka     struct {
953*437bfbebSnyanmisaka         RK_U32 pnum_i4     : 23;
954*437bfbebSnyanmisaka         RK_U32 reserved    : 9;
955*437bfbebSnyanmisaka     } st_pnum_i4;
956*437bfbebSnyanmisaka 
957*437bfbebSnyanmisaka     /* 0x000040a0 reg4136 */
958*437bfbebSnyanmisaka     struct {
959*437bfbebSnyanmisaka         RK_U32 num_b16     : 23;
960*437bfbebSnyanmisaka         RK_U32 reserved    : 9;
961*437bfbebSnyanmisaka     } st_bnum_b16;
962*437bfbebSnyanmisaka 
963*437bfbebSnyanmisaka     /* 0x000040a4 reg4137 */
964*437bfbebSnyanmisaka     struct {
965*437bfbebSnyanmisaka         RK_U32 rdo_smear_cnt0    : 8;
966*437bfbebSnyanmisaka         RK_U32 rdo_smear_cnt1    : 8;
967*437bfbebSnyanmisaka         RK_U32 rdo_smear_cnt2    : 8;
968*437bfbebSnyanmisaka         RK_U32 rdo_smear_cnt3    : 8;
969*437bfbebSnyanmisaka     } st_smear_cnt;
970*437bfbebSnyanmisaka 
971*437bfbebSnyanmisaka     /* 0x000040a8 reg4138 */
972*437bfbebSnyanmisaka     RK_U32 madi_sum;
973*437bfbebSnyanmisaka 
974*437bfbebSnyanmisaka     /* 0x40ac - 0x40bc */
975*437bfbebSnyanmisaka     RK_U32 reserved4139_4143[5];
976*437bfbebSnyanmisaka 
977*437bfbebSnyanmisaka     /* 0x000040c0 reg4144 */
978*437bfbebSnyanmisaka     struct {
979*437bfbebSnyanmisaka         RK_U32 madi_th_lt_cnt0    : 16;
980*437bfbebSnyanmisaka         RK_U32 madi_th_lt_cnt1    : 16;
981*437bfbebSnyanmisaka     } st_madi_lt_num0;
982*437bfbebSnyanmisaka 
983*437bfbebSnyanmisaka     /* 0x000040c4 reg4145 */
984*437bfbebSnyanmisaka     struct {
985*437bfbebSnyanmisaka         RK_U32 madi_th_lt_cnt2    : 16;
986*437bfbebSnyanmisaka         RK_U32 madi_th_lt_cnt3    : 16;
987*437bfbebSnyanmisaka     } st_madi_lt_num1;
988*437bfbebSnyanmisaka 
989*437bfbebSnyanmisaka     /* 0x000040c8 reg4146 */
990*437bfbebSnyanmisaka     struct {
991*437bfbebSnyanmisaka         RK_U32 madi_th_rt_cnt0    : 16;
992*437bfbebSnyanmisaka         RK_U32 madi_th_rt_cnt1    : 16;
993*437bfbebSnyanmisaka     } st_madi_rt_num0;
994*437bfbebSnyanmisaka 
995*437bfbebSnyanmisaka     /* 0x000040cc reg4147 */
996*437bfbebSnyanmisaka     struct {
997*437bfbebSnyanmisaka         RK_U32 madi_th_rt_cnt2    : 16;
998*437bfbebSnyanmisaka         RK_U32 madi_th_rt_cnt3    : 16;
999*437bfbebSnyanmisaka     } st_madi_rt_num1;
1000*437bfbebSnyanmisaka 
1001*437bfbebSnyanmisaka     /* 0x000040d0 reg4148 */
1002*437bfbebSnyanmisaka     struct {
1003*437bfbebSnyanmisaka         RK_U32 madi_th_lb_cnt0    : 16;
1004*437bfbebSnyanmisaka         RK_U32 madi_th_lb_cnt1    : 16;
1005*437bfbebSnyanmisaka     } st_madi_lb_num0;
1006*437bfbebSnyanmisaka 
1007*437bfbebSnyanmisaka     /* 0x000040d4 reg4149 */
1008*437bfbebSnyanmisaka     struct {
1009*437bfbebSnyanmisaka         RK_U32 madi_th_lb_cnt2    : 16;
1010*437bfbebSnyanmisaka         RK_U32 madi_th_lb_cnt3    : 16;
1011*437bfbebSnyanmisaka     } st_madi_lb_num1;
1012*437bfbebSnyanmisaka 
1013*437bfbebSnyanmisaka     /* 0x000040d8 reg4150 */
1014*437bfbebSnyanmisaka     struct {
1015*437bfbebSnyanmisaka         RK_U32 madi_th_rb_cnt0    : 16;
1016*437bfbebSnyanmisaka         RK_U32 madi_th_rb_cnt1    : 16;
1017*437bfbebSnyanmisaka     } st_madi_rb_num0;
1018*437bfbebSnyanmisaka 
1019*437bfbebSnyanmisaka     /* 0x000040dc reg4151 */
1020*437bfbebSnyanmisaka     struct {
1021*437bfbebSnyanmisaka         RK_U32 madi_th_rb_cnt2    : 16;
1022*437bfbebSnyanmisaka         RK_U32 madi_th_rb_cnt3    : 16;
1023*437bfbebSnyanmisaka     } st_madi_rb_num1;
1024*437bfbebSnyanmisaka 
1025*437bfbebSnyanmisaka     /* 0x000040e0 reg4152 */
1026*437bfbebSnyanmisaka     struct {
1027*437bfbebSnyanmisaka         RK_U32 madp_th_lt_cnt0    : 16;
1028*437bfbebSnyanmisaka         RK_U32 madp_th_lt_cnt1    : 16;
1029*437bfbebSnyanmisaka     } st_madp_lt_num0;
1030*437bfbebSnyanmisaka 
1031*437bfbebSnyanmisaka     /* 0x000040e4 reg4153 */
1032*437bfbebSnyanmisaka     struct {
1033*437bfbebSnyanmisaka         RK_U32 madp_th_lt_cnt2    : 16;
1034*437bfbebSnyanmisaka         RK_U32 madp_th_lt_cnt3    : 16;
1035*437bfbebSnyanmisaka     } st_madp_lt_num1;
1036*437bfbebSnyanmisaka 
1037*437bfbebSnyanmisaka     /* 0x000040e8 reg4154 */
1038*437bfbebSnyanmisaka     struct {
1039*437bfbebSnyanmisaka         RK_U32 madp_th_rt_cnt0    : 16;
1040*437bfbebSnyanmisaka         RK_U32 madp_th_rt_cnt1    : 16;
1041*437bfbebSnyanmisaka     } st_madp_rt_num0;
1042*437bfbebSnyanmisaka 
1043*437bfbebSnyanmisaka     /* 0x000040ec reg4155 */
1044*437bfbebSnyanmisaka     struct {
1045*437bfbebSnyanmisaka         RK_U32 madp_th_rt_cnt2    : 16;
1046*437bfbebSnyanmisaka         RK_U32 madp_th_rt_cnt3    : 16;
1047*437bfbebSnyanmisaka     } st_madp_rt_num1;
1048*437bfbebSnyanmisaka 
1049*437bfbebSnyanmisaka     /* 0x000040f0 reg4156 */
1050*437bfbebSnyanmisaka     struct {
1051*437bfbebSnyanmisaka         RK_U32 madp_th_lb_cnt0    : 16;
1052*437bfbebSnyanmisaka         RK_U32 madp_th_lb_cnt1    : 16;
1053*437bfbebSnyanmisaka     } st_madp_lb_num0;
1054*437bfbebSnyanmisaka 
1055*437bfbebSnyanmisaka     /* 0x000040f4 reg4157 */
1056*437bfbebSnyanmisaka     struct {
1057*437bfbebSnyanmisaka         RK_U32 madp_th_lb_cnt2    : 16;
1058*437bfbebSnyanmisaka         RK_U32 madp_th_lb_cnt3    : 16;
1059*437bfbebSnyanmisaka     } st_madp_lb_num1;
1060*437bfbebSnyanmisaka 
1061*437bfbebSnyanmisaka     /* 0x000040f8 reg4158 */
1062*437bfbebSnyanmisaka     struct {
1063*437bfbebSnyanmisaka         RK_U32 madp_th_rb_cnt0    : 16;
1064*437bfbebSnyanmisaka         RK_U32 madp_th_rb_cnt1    : 16;
1065*437bfbebSnyanmisaka     } st_madp_rb_num0;
1066*437bfbebSnyanmisaka 
1067*437bfbebSnyanmisaka     /* 0x000040fc reg4159 */
1068*437bfbebSnyanmisaka     struct {
1069*437bfbebSnyanmisaka         RK_U32 madp_th_rb_cnt2    : 16;
1070*437bfbebSnyanmisaka         RK_U32 madp_th_rb_cnt3    : 16;
1071*437bfbebSnyanmisaka     } st_madp_rb_num1;
1072*437bfbebSnyanmisaka 
1073*437bfbebSnyanmisaka     /* 0x00004100 reg4160 */
1074*437bfbebSnyanmisaka     struct {
1075*437bfbebSnyanmisaka         RK_U32 cmv_th_lt_cnt0    : 16;
1076*437bfbebSnyanmisaka         RK_U32 cmv_th_lt_cnt1    : 16;
1077*437bfbebSnyanmisaka     } st_cmv_lt_num0;
1078*437bfbebSnyanmisaka 
1079*437bfbebSnyanmisaka     /* 0x00004104 reg4161 */
1080*437bfbebSnyanmisaka     struct {
1081*437bfbebSnyanmisaka         RK_U32 cmv_th_lt_cnt2    : 16;
1082*437bfbebSnyanmisaka         RK_U32 cmv_th_lt_cnt3    : 16;
1083*437bfbebSnyanmisaka     } st_cmv_lt_num1;
1084*437bfbebSnyanmisaka 
1085*437bfbebSnyanmisaka     /* 0x00004108 reg4162 */
1086*437bfbebSnyanmisaka     struct {
1087*437bfbebSnyanmisaka         RK_U32 cmv_th_rt_cnt0    : 16;
1088*437bfbebSnyanmisaka         RK_U32 cmv_th_rt_cnt1    : 16;
1089*437bfbebSnyanmisaka     } st_cmv_rt_num0;
1090*437bfbebSnyanmisaka 
1091*437bfbebSnyanmisaka     /* 0x0000410c reg4163 */
1092*437bfbebSnyanmisaka     struct {
1093*437bfbebSnyanmisaka         RK_U32 cmv_th_rt_cnt2    : 16;
1094*437bfbebSnyanmisaka         RK_U32 cmv_th_rt_cnt3    : 16;
1095*437bfbebSnyanmisaka     } st_cmv_rt_num1;
1096*437bfbebSnyanmisaka 
1097*437bfbebSnyanmisaka     /* 0x00004110 reg4164 */
1098*437bfbebSnyanmisaka     struct {
1099*437bfbebSnyanmisaka         RK_U32 cmv_th_lb_cnt0    : 16;
1100*437bfbebSnyanmisaka         RK_U32 cmv_th_lb_cnt1    : 16;
1101*437bfbebSnyanmisaka     } st_cmv_lb_num0;
1102*437bfbebSnyanmisaka 
1103*437bfbebSnyanmisaka     /* 0x00004114 reg4165 */
1104*437bfbebSnyanmisaka     struct {
1105*437bfbebSnyanmisaka         RK_U32 cmv_th_lb_cnt2    : 16;
1106*437bfbebSnyanmisaka         RK_U32 cmv_th_lb_cnt3    : 16;
1107*437bfbebSnyanmisaka     } st_cmv_lb_num1;
1108*437bfbebSnyanmisaka 
1109*437bfbebSnyanmisaka     /* 0x00004118 reg4166 */
1110*437bfbebSnyanmisaka     struct {
1111*437bfbebSnyanmisaka         RK_U32 cmv_th_rb_cnt0    : 16;
1112*437bfbebSnyanmisaka         RK_U32 cmv_th_rb_cnt1    : 16;
1113*437bfbebSnyanmisaka     } st_cmv_rb_num0;
1114*437bfbebSnyanmisaka 
1115*437bfbebSnyanmisaka     /* 0x0000411c reg4167 */
1116*437bfbebSnyanmisaka     struct {
1117*437bfbebSnyanmisaka         RK_U32 cmv_th_rb_cnt2    : 16;
1118*437bfbebSnyanmisaka         RK_U32 cmv_th_rb_cnt3    : 16;
1119*437bfbebSnyanmisaka     } st_cmv_rb_num1;
1120*437bfbebSnyanmisaka 
1121*437bfbebSnyanmisaka     /* 0x00004120 reg4168 */
1122*437bfbebSnyanmisaka     struct {
1123*437bfbebSnyanmisaka         RK_U32 org_y_r_max_value    : 8;
1124*437bfbebSnyanmisaka         RK_U32 org_y_r_min_value    : 8;
1125*437bfbebSnyanmisaka         RK_U32 org_u_g_max_value    : 8;
1126*437bfbebSnyanmisaka         RK_U32 org_u_g_min_value    : 8;
1127*437bfbebSnyanmisaka     } st_vsp_org_value0;
1128*437bfbebSnyanmisaka 
1129*437bfbebSnyanmisaka     /* 0x00004124 reg4169 */
1130*437bfbebSnyanmisaka     struct {
1131*437bfbebSnyanmisaka         RK_U32 org_v_b_max_value    : 8;
1132*437bfbebSnyanmisaka         RK_U32 org_v_b_min_value    : 8;
1133*437bfbebSnyanmisaka         RK_U32 reserved             : 16;
1134*437bfbebSnyanmisaka     } st_vsp_org_value1;
1135*437bfbebSnyanmisaka 
1136*437bfbebSnyanmisaka     /* 0x00004128 reg4170 */
1137*437bfbebSnyanmisaka     struct {
1138*437bfbebSnyanmisaka         RK_U32 jpeg_y_r_max_value    : 8;
1139*437bfbebSnyanmisaka         RK_U32 jpeg_y_r_min_value    : 8;
1140*437bfbebSnyanmisaka         RK_U32 jpeg_u_g_max_value    : 8;
1141*437bfbebSnyanmisaka         RK_U32 jpeg_u_g_min_value    : 8;
1142*437bfbebSnyanmisaka     } st_vsp_jpeg_value0;
1143*437bfbebSnyanmisaka 
1144*437bfbebSnyanmisaka     /* 0x0000412c reg4171 */
1145*437bfbebSnyanmisaka     struct {
1146*437bfbebSnyanmisaka         RK_U32 jpeg_v_b_max_value    : 8;
1147*437bfbebSnyanmisaka         RK_U32 jpeg_v_b_min_value    : 8;
1148*437bfbebSnyanmisaka         RK_U32 reserved              : 16;
1149*437bfbebSnyanmisaka     } st_vsp_jpeg_value1;
1150*437bfbebSnyanmisaka 
1151*437bfbebSnyanmisaka     /* 0x4130 - 0x417c */
1152*437bfbebSnyanmisaka     RK_U32 reserved4172_4191[20];
1153*437bfbebSnyanmisaka 
1154*437bfbebSnyanmisaka     /* 0x00004180 reg4192 - 0x0000424c reg4243*/
1155*437bfbebSnyanmisaka     RK_U32 st_b8_qp[52];
1156*437bfbebSnyanmisaka 
1157*437bfbebSnyanmisaka } vepu540c_status;
1158*437bfbebSnyanmisaka 
1159*437bfbebSnyanmisaka /* class: dbg/st/axipn */
1160*437bfbebSnyanmisaka /* 0x00005000 reg5120 - 0x00005354 reg5333*/
1161*437bfbebSnyanmisaka typedef struct Vepu540cDbg_t {
1162*437bfbebSnyanmisaka     struct {
1163*437bfbebSnyanmisaka         RK_U32 pp0_tout     : 1;
1164*437bfbebSnyanmisaka         RK_U32 pp1_out      : 1;
1165*437bfbebSnyanmisaka         RK_U32 cme_tout     : 1;
1166*437bfbebSnyanmisaka         RK_U32 swn_tout     : 1;
1167*437bfbebSnyanmisaka         RK_U32 rfme_tout    : 1;
1168*437bfbebSnyanmisaka         RK_U32 pren_tout    : 1;
1169*437bfbebSnyanmisaka         RK_U32 rdo_tout     : 1;
1170*437bfbebSnyanmisaka         RK_U32 lpf_tout     : 1;
1171*437bfbebSnyanmisaka         RK_U32 etpy_tout    : 1;
1172*437bfbebSnyanmisaka         RK_U32 jpeg_tout    : 1;
1173*437bfbebSnyanmisaka         RK_U32 frm_tout     : 1;
1174*437bfbebSnyanmisaka         RK_U32 reserved     : 21;
1175*437bfbebSnyanmisaka     } st_wdg;
1176*437bfbebSnyanmisaka 
1177*437bfbebSnyanmisaka     /* 0x00005004 reg5121 */
1178*437bfbebSnyanmisaka     struct {
1179*437bfbebSnyanmisaka         RK_U32 pp0_wrk     : 1;
1180*437bfbebSnyanmisaka         RK_U32 pp1_wrk     : 1;
1181*437bfbebSnyanmisaka         RK_U32 cme_wrk     : 1;
1182*437bfbebSnyanmisaka         RK_U32 swn_wrk     : 1;
1183*437bfbebSnyanmisaka         RK_U32 rfme_wrk    : 1;
1184*437bfbebSnyanmisaka         RK_U32 pren_wrk    : 1;
1185*437bfbebSnyanmisaka         RK_U32 rdo_wrk     : 1;
1186*437bfbebSnyanmisaka         RK_U32 lpf_wrk     : 1;
1187*437bfbebSnyanmisaka         RK_U32 etpy_wrk    : 1;
1188*437bfbebSnyanmisaka         RK_U32 jpeg_wrk    : 1;
1189*437bfbebSnyanmisaka         RK_U32 frm_wrk     : 1;
1190*437bfbebSnyanmisaka         RK_U32 reserved    : 21;
1191*437bfbebSnyanmisaka     } st_ppl;
1192*437bfbebSnyanmisaka 
1193*437bfbebSnyanmisaka     /* 0x00005008 reg5122 */
1194*437bfbebSnyanmisaka     struct {
1195*437bfbebSnyanmisaka         RK_U32 vsp0_pos_x    : 16;
1196*437bfbebSnyanmisaka         RK_U32 vsp0_pos_y    : 16;
1197*437bfbebSnyanmisaka     } st_ppl_pos_vsp0;
1198*437bfbebSnyanmisaka 
1199*437bfbebSnyanmisaka     /* 0x0000500c reg5123 */
1200*437bfbebSnyanmisaka     struct {
1201*437bfbebSnyanmisaka         RK_U32 vsp1_pos_x    : 16;
1202*437bfbebSnyanmisaka         RK_U32 vsp1_pos_y    : 16;
1203*437bfbebSnyanmisaka     } st_ppl_pos_vsp1;
1204*437bfbebSnyanmisaka 
1205*437bfbebSnyanmisaka     /* 0x00005010 reg5124 */
1206*437bfbebSnyanmisaka     struct {
1207*437bfbebSnyanmisaka         RK_U32 cme_pos_x    : 16;
1208*437bfbebSnyanmisaka         RK_U32 cme_pos_y    : 16;
1209*437bfbebSnyanmisaka     } st_ppl_pos_cme;
1210*437bfbebSnyanmisaka 
1211*437bfbebSnyanmisaka     /* 0x00005014 reg5125 */
1212*437bfbebSnyanmisaka     struct {
1213*437bfbebSnyanmisaka         RK_U32 swin_pos_x    : 16;
1214*437bfbebSnyanmisaka         RK_U32 swin_pos_y    : 16;
1215*437bfbebSnyanmisaka     } st_ppl_pos_swin;
1216*437bfbebSnyanmisaka 
1217*437bfbebSnyanmisaka     /* 0x00005018 reg5126 */
1218*437bfbebSnyanmisaka     struct {
1219*437bfbebSnyanmisaka         RK_U32 rfme_pos_x    : 16;
1220*437bfbebSnyanmisaka         RK_U32 rfme_pos_y    : 16;
1221*437bfbebSnyanmisaka     } st_ppl_pos_rfme;
1222*437bfbebSnyanmisaka 
1223*437bfbebSnyanmisaka     /* 0x0000501c reg5127 */
1224*437bfbebSnyanmisaka     struct {
1225*437bfbebSnyanmisaka         RK_U32 pren_pos_x    : 16;
1226*437bfbebSnyanmisaka         RK_U32 pren_pos_y    : 16;
1227*437bfbebSnyanmisaka     } st_ppl_pos_pren;
1228*437bfbebSnyanmisaka 
1229*437bfbebSnyanmisaka     /* 0x00005020 reg5128 */
1230*437bfbebSnyanmisaka     struct {
1231*437bfbebSnyanmisaka         RK_U32 rdo_pos_x    : 16;
1232*437bfbebSnyanmisaka         RK_U32 rdo_pos_y    : 16;
1233*437bfbebSnyanmisaka     } st_ppl_pos_rdo;
1234*437bfbebSnyanmisaka 
1235*437bfbebSnyanmisaka     /* 0x00005024 reg5129 */
1236*437bfbebSnyanmisaka     struct {
1237*437bfbebSnyanmisaka         RK_U32 lpf_pos_x    : 16;
1238*437bfbebSnyanmisaka         RK_U32 lpf_pos_y    : 16;
1239*437bfbebSnyanmisaka     } st_ppl_pos_lpf;
1240*437bfbebSnyanmisaka 
1241*437bfbebSnyanmisaka     /* 0x00005028 reg5130 */
1242*437bfbebSnyanmisaka     struct {
1243*437bfbebSnyanmisaka         RK_U32 etpy_pos_x    : 16;
1244*437bfbebSnyanmisaka         RK_U32 etpy_pos_y    : 16;
1245*437bfbebSnyanmisaka     } st_ppl_pos_etpy;
1246*437bfbebSnyanmisaka 
1247*437bfbebSnyanmisaka     /* 0x0000502c reg5131 */
1248*437bfbebSnyanmisaka     struct {
1249*437bfbebSnyanmisaka         RK_U32 vsp0_pos_x    : 16;
1250*437bfbebSnyanmisaka         RK_U32 vsp0_pos_y    : 16;
1251*437bfbebSnyanmisaka     } st_ppl_pos_jsp0;
1252*437bfbebSnyanmisaka 
1253*437bfbebSnyanmisaka     /* 0x00005030 reg5132 */
1254*437bfbebSnyanmisaka     struct {
1255*437bfbebSnyanmisaka         RK_U32 vsp1_pos_x    : 16;
1256*437bfbebSnyanmisaka         RK_U32 vsp1_pos_y    : 16;
1257*437bfbebSnyanmisaka     } st_ppl_pos_jsp1;
1258*437bfbebSnyanmisaka 
1259*437bfbebSnyanmisaka     /* 0x00005034 reg5133 */
1260*437bfbebSnyanmisaka     struct {
1261*437bfbebSnyanmisaka         RK_U32 jpeg_pos_x    : 16;
1262*437bfbebSnyanmisaka         RK_U32 jpeg_pos_y    : 16;
1263*437bfbebSnyanmisaka     } st_ppl_pos_jpeg;
1264*437bfbebSnyanmisaka 
1265*437bfbebSnyanmisaka     /* 0x5038 - 0x503c */
1266*437bfbebSnyanmisaka     RK_U32 reserved5134_5135[2];
1267*437bfbebSnyanmisaka 
1268*437bfbebSnyanmisaka     /* 0x00005040 reg5136 */
1269*437bfbebSnyanmisaka     struct {
1270*437bfbebSnyanmisaka         RK_U32 sli_num     : 15;
1271*437bfbebSnyanmisaka         RK_U32 reserved    : 17;
1272*437bfbebSnyanmisaka     } st_sli_num;
1273*437bfbebSnyanmisaka 
1274*437bfbebSnyanmisaka     /* 0x5044 - 0x50fc */
1275*437bfbebSnyanmisaka     RK_U32 reserved5137_5183[47];
1276*437bfbebSnyanmisaka 
1277*437bfbebSnyanmisaka     /* 0x00005100 reg5184 */
1278*437bfbebSnyanmisaka     struct {
1279*437bfbebSnyanmisaka         RK_U32 empty_oafifo        : 1;
1280*437bfbebSnyanmisaka         RK_U32 full_cmd_oafifo     : 1;
1281*437bfbebSnyanmisaka         RK_U32 full_data_oafifo    : 1;
1282*437bfbebSnyanmisaka         RK_U32 empty_iafifo        : 1;
1283*437bfbebSnyanmisaka 
1284*437bfbebSnyanmisaka         RK_U32 full_cmd_iafifo     : 1;
1285*437bfbebSnyanmisaka         RK_U32 full_info_iafifo    : 1;
1286*437bfbebSnyanmisaka         RK_U32 fbd_brq_st          : 4;
1287*437bfbebSnyanmisaka         RK_U32 fbd_hdr_vld         : 1;
1288*437bfbebSnyanmisaka         RK_U32 fbd_bmng_end        : 1;
1289*437bfbebSnyanmisaka 
1290*437bfbebSnyanmisaka         RK_U32 nfbd_req_st         : 4;
1291*437bfbebSnyanmisaka         RK_U32 acc_axi_cmd         : 8;
1292*437bfbebSnyanmisaka         RK_U32 reserved            : 8;
1293*437bfbebSnyanmisaka     } dbg_pp_st;
1294*437bfbebSnyanmisaka 
1295*437bfbebSnyanmisaka     /* 0x00005104 reg5185 */
1296*437bfbebSnyanmisaka     struct {
1297*437bfbebSnyanmisaka         RK_U32 r_ena_lambd        : 1;
1298*437bfbebSnyanmisaka         RK_U32 r_fst_swinw_end    : 1;
1299*437bfbebSnyanmisaka         RK_U32 r_swinw_end        : 1;
1300*437bfbebSnyanmisaka         RK_U32 r_cnt_swinw        : 1;
1301*437bfbebSnyanmisaka 
1302*437bfbebSnyanmisaka         RK_U32 r_dspw_end         : 1;
1303*437bfbebSnyanmisaka         RK_U32 r_dspw_cnt         : 1;
1304*437bfbebSnyanmisaka         RK_U32 i_sjgen_work       : 1;
1305*437bfbebSnyanmisaka         RK_U32 r_end_rspgen       : 1;
1306*437bfbebSnyanmisaka 
1307*437bfbebSnyanmisaka         RK_U32 r_cost_gate        : 1;
1308*437bfbebSnyanmisaka         RK_U32 r_ds_gate          : 1;
1309*437bfbebSnyanmisaka         RK_U32 r_mvp_gate         : 1;
1310*437bfbebSnyanmisaka         RK_U32 i_smvp_arrdy       : 1;
1311*437bfbebSnyanmisaka 
1312*437bfbebSnyanmisaka         RK_U32 i_smvp_arvld       : 1;
1313*437bfbebSnyanmisaka         RK_U32 i_stptr_wrdy       : 1;
1314*437bfbebSnyanmisaka         RK_U32 i_stptr_wvld       : 1;
1315*437bfbebSnyanmisaka         RK_U32 i_rdy_atf          : 1;
1316*437bfbebSnyanmisaka 
1317*437bfbebSnyanmisaka         RK_U32 i_vld_atf          : 1;
1318*437bfbebSnyanmisaka         RK_U32 i_rdy_bmv16        : 1;
1319*437bfbebSnyanmisaka         RK_U32 i_vld_bmv16        : 1;
1320*437bfbebSnyanmisaka         RK_U32 i_wr_dsp           : 1;
1321*437bfbebSnyanmisaka 
1322*437bfbebSnyanmisaka         RK_U32 i_rdy_dsp          : 1;
1323*437bfbebSnyanmisaka         RK_U32 i_vld_dsp          : 1;
1324*437bfbebSnyanmisaka         RK_U32 r_rdy_org          : 1;
1325*437bfbebSnyanmisaka         RK_U32 i_vld_org          : 1;
1326*437bfbebSnyanmisaka 
1327*437bfbebSnyanmisaka         RK_U32 i_rdy_state        : 1;
1328*437bfbebSnyanmisaka         RK_U32 i_vld_state        : 1;
1329*437bfbebSnyanmisaka         RK_U32 i_rdy_madp         : 1;
1330*437bfbebSnyanmisaka         RK_U32 i_vld_madp         : 1;
1331*437bfbebSnyanmisaka 
1332*437bfbebSnyanmisaka         RK_U32 i_rdy_diff         : 1;
1333*437bfbebSnyanmisaka         RK_U32 i_vld_diff         : 1;
1334*437bfbebSnyanmisaka         RK_U32 reserved           : 2;
1335*437bfbebSnyanmisaka     } dbg_cime_st;
1336*437bfbebSnyanmisaka 
1337*437bfbebSnyanmisaka     /* 0x00005108 reg5186 */
1338*437bfbebSnyanmisaka     RK_U32 swin_dbg_inf;
1339*437bfbebSnyanmisaka 
1340*437bfbebSnyanmisaka     /* 0x0000510c reg5187 */
1341*437bfbebSnyanmisaka     struct {
1342*437bfbebSnyanmisaka         RK_U32 bbrq_cmps_left_len2    : 1;
1343*437bfbebSnyanmisaka         RK_U32 bbrq_cmps_left_len1    : 1;
1344*437bfbebSnyanmisaka         RK_U32 cmps_left_len0         : 1;
1345*437bfbebSnyanmisaka         RK_U32 bbrq_rdy2              : 1;
1346*437bfbebSnyanmisaka         RK_U32 dcps_vld2              : 1;
1347*437bfbebSnyanmisaka         RK_U32 bbrq_rdy1              : 1;
1348*437bfbebSnyanmisaka         RK_U32 dcps_vld1              : 1;
1349*437bfbebSnyanmisaka         RK_U32 bbrq_rdy0              : 1;
1350*437bfbebSnyanmisaka         RK_U32 dcps_vld0              : 1;
1351*437bfbebSnyanmisaka         RK_U32 hb_rdy2                : 1;
1352*437bfbebSnyanmisaka         RK_U32 bbrq_vld2              : 1;
1353*437bfbebSnyanmisaka         RK_U32 hb_rdy1                : 1;
1354*437bfbebSnyanmisaka         RK_U32 bbrq_vld1              : 1;
1355*437bfbebSnyanmisaka         RK_U32 hb_rdy0                : 1;
1356*437bfbebSnyanmisaka         RK_U32 bbrq_vld0              : 1;
1357*437bfbebSnyanmisaka         RK_U32 idle_msb2              : 1;
1358*437bfbebSnyanmisaka         RK_U32 idle_msb1              : 1;
1359*437bfbebSnyanmisaka         RK_U32 idle_msb0              : 1;
1360*437bfbebSnyanmisaka         RK_U32 cur_state_dcps         : 1;
1361*437bfbebSnyanmisaka         RK_U32 cur_state_bbrq         : 1;
1362*437bfbebSnyanmisaka         RK_U32 cur_state_hb           : 1;
1363*437bfbebSnyanmisaka         RK_U32 cke_bbrq_dcps          : 1;
1364*437bfbebSnyanmisaka         RK_U32 cke_dcps               : 1;
1365*437bfbebSnyanmisaka         RK_U32 cke_bbrq               : 1;
1366*437bfbebSnyanmisaka         RK_U32 rdy_lwcd_rsp           : 1;
1367*437bfbebSnyanmisaka         RK_U32 vld_lwcd_rsp           : 1;
1368*437bfbebSnyanmisaka         RK_U32 rdy_lwcd_req           : 1;
1369*437bfbebSnyanmisaka         RK_U32 vld_lwcd_req           : 1;
1370*437bfbebSnyanmisaka         RK_U32 rdy_lwrsp              : 1;
1371*437bfbebSnyanmisaka         RK_U32 vld_lwrsp              : 1;
1372*437bfbebSnyanmisaka         RK_U32 rdy_lwreq              : 1;
1373*437bfbebSnyanmisaka         RK_U32 vld_lwreq              : 1;
1374*437bfbebSnyanmisaka     } dbg_fbd_hhit0;
1375*437bfbebSnyanmisaka 
1376*437bfbebSnyanmisaka     /* 0x5110 */
1377*437bfbebSnyanmisaka     RK_U32 reserved_5188;
1378*437bfbebSnyanmisaka 
1379*437bfbebSnyanmisaka     /* 0x00005114 reg5189 */
1380*437bfbebSnyanmisaka     struct {
1381*437bfbebSnyanmisaka         RK_U32 mscnt_clr    : 1;
1382*437bfbebSnyanmisaka         RK_U32 reserved     : 31;
1383*437bfbebSnyanmisaka     } dbg_cach_clr;
1384*437bfbebSnyanmisaka 
1385*437bfbebSnyanmisaka     /* 0x00005118 reg5190 */
1386*437bfbebSnyanmisaka     RK_U32 l1_mis;
1387*437bfbebSnyanmisaka 
1388*437bfbebSnyanmisaka     /* 0x0000511c reg5191 */
1389*437bfbebSnyanmisaka     RK_U32 l2_mis;
1390*437bfbebSnyanmisaka 
1391*437bfbebSnyanmisaka     /* 0x00005120 reg5192 */
1392*437bfbebSnyanmisaka     RK_U32 rdo_st;
1393*437bfbebSnyanmisaka 
1394*437bfbebSnyanmisaka     /* 0x00005124 reg5193 */
1395*437bfbebSnyanmisaka     RK_U32 rdo_if;
1396*437bfbebSnyanmisaka 
1397*437bfbebSnyanmisaka     /* 0x00005128 reg5194 */
1398*437bfbebSnyanmisaka     struct {
1399*437bfbebSnyanmisaka         RK_U32 h264_sh_st_cs    : 4;
1400*437bfbebSnyanmisaka         RK_U32 rsd_st_cs        : 4;
1401*437bfbebSnyanmisaka         RK_U32 h264_sd_st_cs    : 5;
1402*437bfbebSnyanmisaka         RK_U32 etpy_rdy         : 1;
1403*437bfbebSnyanmisaka         RK_U32 reserved         : 18;
1404*437bfbebSnyanmisaka     } dbg_etpy;
1405*437bfbebSnyanmisaka 
1406*437bfbebSnyanmisaka     /* 0x0000512c reg5195 */
1407*437bfbebSnyanmisaka     struct {
1408*437bfbebSnyanmisaka         RK_U32 crdy_ppr    : 1;
1409*437bfbebSnyanmisaka         RK_U32 cvld_ppr    : 1;
1410*437bfbebSnyanmisaka         RK_U32 drdy_ppw    : 1;
1411*437bfbebSnyanmisaka         RK_U32 dvld_ppw    : 1;
1412*437bfbebSnyanmisaka         RK_U32 crdy_ppw    : 1;
1413*437bfbebSnyanmisaka         RK_U32 cvld_ppw    : 1;
1414*437bfbebSnyanmisaka         RK_U32 reserved    : 26;
1415*437bfbebSnyanmisaka     } dbg_dma_pp;
1416*437bfbebSnyanmisaka 
1417*437bfbebSnyanmisaka     /* 0x00005130 reg5196 */
1418*437bfbebSnyanmisaka     struct {
1419*437bfbebSnyanmisaka         RK_U32 axi_wrdy     : 8;
1420*437bfbebSnyanmisaka         RK_U32 axi_wvld     : 8;
1421*437bfbebSnyanmisaka         RK_U32 axi_awrdy    : 8;
1422*437bfbebSnyanmisaka         RK_U32 axi_awvld    : 8;
1423*437bfbebSnyanmisaka     } dbg_dma_w;
1424*437bfbebSnyanmisaka 
1425*437bfbebSnyanmisaka     /* 0x00005134 reg5197 */
1426*437bfbebSnyanmisaka     struct {
1427*437bfbebSnyanmisaka         RK_U32 axi_otsd_read    : 16;
1428*437bfbebSnyanmisaka         RK_U32 axi_arrdy        : 7;
1429*437bfbebSnyanmisaka         RK_U32 reserved         : 1;
1430*437bfbebSnyanmisaka         RK_U32 axi_arvld        : 7;
1431*437bfbebSnyanmisaka         RK_U32 reserved1        : 1;
1432*437bfbebSnyanmisaka     } dbg_dma_ar;
1433*437bfbebSnyanmisaka 
1434*437bfbebSnyanmisaka     /* 0x00005138 reg5198 */
1435*437bfbebSnyanmisaka     struct {
1436*437bfbebSnyanmisaka         RK_U32 dfifo0_lvl    : 4;
1437*437bfbebSnyanmisaka         RK_U32 dfifo1_lvl    : 4;
1438*437bfbebSnyanmisaka         RK_U32 dfifo2_lvl    : 4;
1439*437bfbebSnyanmisaka         RK_U32 dfifo3_lvl    : 4;
1440*437bfbebSnyanmisaka         RK_U32 dfifo4_lvl    : 4;
1441*437bfbebSnyanmisaka         RK_U32 dfifo5_lvl    : 4;
1442*437bfbebSnyanmisaka         RK_U32 reserved      : 6;
1443*437bfbebSnyanmisaka         RK_U32 cmd_vld       : 1;
1444*437bfbebSnyanmisaka         RK_U32 reserved1     : 1;
1445*437bfbebSnyanmisaka     } dbg_dma_r;
1446*437bfbebSnyanmisaka 
1447*437bfbebSnyanmisaka     /* 0x0000513c reg5199 */
1448*437bfbebSnyanmisaka     struct {
1449*437bfbebSnyanmisaka         RK_U32 meiw_busy    : 1;
1450*437bfbebSnyanmisaka         RK_U32 dspw_busy    : 1;
1451*437bfbebSnyanmisaka         RK_U32 bsw_rdy      : 1;
1452*437bfbebSnyanmisaka         RK_U32 bsw_flsh     : 1;
1453*437bfbebSnyanmisaka         RK_U32 bsw_busy     : 1;
1454*437bfbebSnyanmisaka         RK_U32 crpw_busy    : 1;
1455*437bfbebSnyanmisaka         RK_U32 lktw_busy    : 1;
1456*437bfbebSnyanmisaka         RK_U32 lpfw_busy    : 1;
1457*437bfbebSnyanmisaka         RK_U32 roir_busy    : 1;
1458*437bfbebSnyanmisaka         RK_U32 dspr_crdy    : 1;
1459*437bfbebSnyanmisaka         RK_U32 dspr_cvld    : 1;
1460*437bfbebSnyanmisaka         RK_U32 lktr_busy    : 1;
1461*437bfbebSnyanmisaka         RK_U32 lpfr_otsd    : 4;
1462*437bfbebSnyanmisaka         RK_U32 rfpr_otsd    : 12;
1463*437bfbebSnyanmisaka         RK_U32 dspr_otsd    : 4;
1464*437bfbebSnyanmisaka     } dbg_dma_dbg0;
1465*437bfbebSnyanmisaka 
1466*437bfbebSnyanmisaka     /* 0x00005140 reg5200 */
1467*437bfbebSnyanmisaka     struct {
1468*437bfbebSnyanmisaka         RK_U32 cpip_st     : 2;
1469*437bfbebSnyanmisaka         RK_U32 mvp_st      : 3;
1470*437bfbebSnyanmisaka         RK_U32 qpd6_st     : 2;
1471*437bfbebSnyanmisaka         RK_U32 cmd_st      : 2;
1472*437bfbebSnyanmisaka         RK_U32 reserved    : 23;
1473*437bfbebSnyanmisaka     } dbg_dma_dbg1;
1474*437bfbebSnyanmisaka 
1475*437bfbebSnyanmisaka     /* 0x00005144 reg5201 */
1476*437bfbebSnyanmisaka     struct {
1477*437bfbebSnyanmisaka         RK_U32 cme_byps    : 3;
1478*437bfbebSnyanmisaka         RK_U32 reserved    : 29;
1479*437bfbebSnyanmisaka     } dbg_tctrl;
1480*437bfbebSnyanmisaka 
1481*437bfbebSnyanmisaka     /* 0x5148 */
1482*437bfbebSnyanmisaka     RK_U32 reserved_5202;
1483*437bfbebSnyanmisaka 
1484*437bfbebSnyanmisaka     /* 0x0000514c reg5203 */
1485*437bfbebSnyanmisaka     struct {
1486*437bfbebSnyanmisaka         RK_U32 lpf_work               : 1;
1487*437bfbebSnyanmisaka         RK_U32 rdo_par_nrdy           : 1;
1488*437bfbebSnyanmisaka         RK_U32 rdo_rcn_nrdy           : 1;
1489*437bfbebSnyanmisaka         RK_U32 lpf_rcn_rdy            : 1;
1490*437bfbebSnyanmisaka         RK_U32 dblk_work              : 1;
1491*437bfbebSnyanmisaka         RK_U32 sao_work               : 1;
1492*437bfbebSnyanmisaka         RK_U32 reserved               : 18;
1493*437bfbebSnyanmisaka         RK_U32 tile_bdry_read         : 1;
1494*437bfbebSnyanmisaka         RK_U32 tile_bdry_write        : 1;
1495*437bfbebSnyanmisaka         RK_U32 tile_bdry_rrdy         : 1;
1496*437bfbebSnyanmisaka         RK_U32 rdo_read_tile_bdry     : 1;
1497*437bfbebSnyanmisaka         RK_U32 rdo_write_tile_bdry    : 1;
1498*437bfbebSnyanmisaka         RK_U32 reserved1              : 3;
1499*437bfbebSnyanmisaka     } dbg_lpf;
1500*437bfbebSnyanmisaka 
1501*437bfbebSnyanmisaka     /* 0x00005150 reg5204 */
1502*437bfbebSnyanmisaka     RK_U32 dbg_topc_lpfr;
1503*437bfbebSnyanmisaka 
1504*437bfbebSnyanmisaka     /* 0x00005154 reg5205 */
1505*437bfbebSnyanmisaka     RK_U32 dbg0_cache;
1506*437bfbebSnyanmisaka 
1507*437bfbebSnyanmisaka     /* 0x00005158 reg5206 */
1508*437bfbebSnyanmisaka     RK_U32 dbg1_cache;
1509*437bfbebSnyanmisaka 
1510*437bfbebSnyanmisaka     /* 0x0000515c reg5207 */
1511*437bfbebSnyanmisaka     RK_U32 dbg2_cache;
1512*437bfbebSnyanmisaka 
1513*437bfbebSnyanmisaka     /* 0x00005160 reg5208 */
1514*437bfbebSnyanmisaka     struct {
1515*437bfbebSnyanmisaka         RK_U32 ebuf_diff_cmd    : 8;
1516*437bfbebSnyanmisaka         RK_U32 lbuf_lpf_ncnt    : 7;
1517*437bfbebSnyanmisaka         RK_U32 lbuf_lpf_cien    : 1;
1518*437bfbebSnyanmisaka         RK_U32 lbuf_rdo_ncnt    : 7;
1519*437bfbebSnyanmisaka         RK_U32 lbuf_rdo_cien    : 1;
1520*437bfbebSnyanmisaka         RK_U32 reserved         : 8;
1521*437bfbebSnyanmisaka     } dbg_lbuf0;
1522*437bfbebSnyanmisaka 
1523*437bfbebSnyanmisaka     /* 0x00005164 reg5209 */
1524*437bfbebSnyanmisaka     struct {
1525*437bfbebSnyanmisaka         RK_U32 rvld_ebfr          : 1;
1526*437bfbebSnyanmisaka         RK_U32 rrdy_ebfr          : 1;
1527*437bfbebSnyanmisaka         RK_U32 arvld_ebfr         : 1;
1528*437bfbebSnyanmisaka         RK_U32 arrdy_ebfr         : 1;
1529*437bfbebSnyanmisaka         RK_U32 wvld_ebfw          : 1;
1530*437bfbebSnyanmisaka         RK_U32 wrdy_ebfw          : 1;
1531*437bfbebSnyanmisaka         RK_U32 awvld_ebfw         : 1;
1532*437bfbebSnyanmisaka         RK_U32 awrdy_ebfw         : 1;
1533*437bfbebSnyanmisaka         RK_U32 lpf_lbuf_rvld      : 1;
1534*437bfbebSnyanmisaka         RK_U32 lpf_lbuf_rrdy      : 1;
1535*437bfbebSnyanmisaka         RK_U32 lpf_lbuf_wvld      : 1;
1536*437bfbebSnyanmisaka         RK_U32 lpf_lbuf_wrdy      : 1;
1537*437bfbebSnyanmisaka         RK_U32 rdo_lbuf_rvld      : 1;
1538*437bfbebSnyanmisaka         RK_U32 rdo_lbuf_rrdy      : 1;
1539*437bfbebSnyanmisaka         RK_U32 rdo_lbuf_wvld      : 1;
1540*437bfbebSnyanmisaka         RK_U32 rdo_lbuf_wrdy      : 1;
1541*437bfbebSnyanmisaka         RK_U32 fme_lbuf_rvld      : 1;
1542*437bfbebSnyanmisaka         RK_U32 fme_lbuf_rrdy      : 1;
1543*437bfbebSnyanmisaka         RK_U32 cme_lbuf_rvld      : 1;
1544*437bfbebSnyanmisaka         RK_U32 cme_lbuf_rrdy      : 1;
1545*437bfbebSnyanmisaka         RK_U32 smear_lbuf_rvld    : 1;
1546*437bfbebSnyanmisaka         RK_U32 smear_lbuf_rrdy    : 1;
1547*437bfbebSnyanmisaka         RK_U32 smear_lbuf_wvld    : 1;
1548*437bfbebSnyanmisaka         RK_U32 smear_lbuf_wrdy    : 1;
1549*437bfbebSnyanmisaka         RK_U32 rdo_lbufw_flag     : 1;
1550*437bfbebSnyanmisaka         RK_U32 rdo_lbufr_flag     : 1;
1551*437bfbebSnyanmisaka         RK_U32 cme_lbufr_flag     : 1;
1552*437bfbebSnyanmisaka         RK_U32 reserved           : 5;
1553*437bfbebSnyanmisaka     } dbg_lbuf1;
1554*437bfbebSnyanmisaka 
1555*437bfbebSnyanmisaka     /* 0x00005168 reg5210 */
1556*437bfbebSnyanmisaka     struct {
1557*437bfbebSnyanmisaka         RK_U32 vinf_lcnt_dvbm    : 14;
1558*437bfbebSnyanmisaka         RK_U32 vinf_fcnt_dvbm    : 8;
1559*437bfbebSnyanmisaka         RK_U32 vinf_rdy_dvbm     : 1;
1560*437bfbebSnyanmisaka         RK_U32 vinf_vld_dvbm     : 1;
1561*437bfbebSnyanmisaka         RK_U32 st_cur_vinf       : 3;
1562*437bfbebSnyanmisaka         RK_U32 st_cur_vrsp       : 2;
1563*437bfbebSnyanmisaka         RK_U32 vcnt_req_sync     : 1;
1564*437bfbebSnyanmisaka         RK_U32 vcnt_ack_dvbm     : 1;
1565*437bfbebSnyanmisaka         RK_U32 vcnt_req_dvbm     : 1;
1566*437bfbebSnyanmisaka     } dbg_dvbm0;
1567*437bfbebSnyanmisaka 
1568*437bfbebSnyanmisaka     /* 0x0000516c reg5211 */
1569*437bfbebSnyanmisaka     struct {
1570*437bfbebSnyanmisaka         RK_U32 vrsp_lcnt_dvbm    : 14;
1571*437bfbebSnyanmisaka         RK_U32 vrsp_fcnt_dvbm    : 8;
1572*437bfbebSnyanmisaka         RK_U32 vrsp_tgl_dvbm     : 1;
1573*437bfbebSnyanmisaka         RK_U32 reserved          : 9;
1574*437bfbebSnyanmisaka     } dbg_dvbm1;
1575*437bfbebSnyanmisaka 
1576*437bfbebSnyanmisaka     /* 0x00005170 reg5212 */
1577*437bfbebSnyanmisaka     struct {
1578*437bfbebSnyanmisaka         RK_U32 dvbm_src_lcnt     : 12;
1579*437bfbebSnyanmisaka         RK_U32 jbuf_dvbm_rdy     : 1;
1580*437bfbebSnyanmisaka         RK_U32 vbuf_dvbm_rdy     : 1;
1581*437bfbebSnyanmisaka         RK_U32 work_dvbm_rdy     : 1;
1582*437bfbebSnyanmisaka         RK_U32 fmch_dvbm_rdy     : 1;
1583*437bfbebSnyanmisaka         RK_U32 vrsp_lcnt_vsld    : 14;
1584*437bfbebSnyanmisaka         RK_U32 vrsp_rdy_vsld     : 1;
1585*437bfbebSnyanmisaka         RK_U32 vrsp_vld_vsld     : 1;
1586*437bfbebSnyanmisaka     } dbg_dvbm2;
1587*437bfbebSnyanmisaka 
1588*437bfbebSnyanmisaka     /* 0x00005174 reg5213 */
1589*437bfbebSnyanmisaka     struct {
1590*437bfbebSnyanmisaka         RK_U32 vsp_ctu_flag     : 4;
1591*437bfbebSnyanmisaka         RK_U32 reserved         : 4;
1592*437bfbebSnyanmisaka         RK_U32 cime_ctu_flag    : 8;
1593*437bfbebSnyanmisaka         RK_U32 swin_ctu_flag    : 2;
1594*437bfbebSnyanmisaka         RK_U32 rfme_ctu_flag    : 6;
1595*437bfbebSnyanmisaka         RK_U32 pnra_ctu_flag    : 1;
1596*437bfbebSnyanmisaka         RK_U32 rdo_ctu_flg0     : 7;
1597*437bfbebSnyanmisaka     } dbg_tctrl0;
1598*437bfbebSnyanmisaka 
1599*437bfbebSnyanmisaka     /* 0x00005178 reg5214 */
1600*437bfbebSnyanmisaka     struct {
1601*437bfbebSnyanmisaka         RK_U32 rdo_ctu_flg1     : 8;
1602*437bfbebSnyanmisaka         RK_U32 jpeg_ctu_flag    : 3;
1603*437bfbebSnyanmisaka         RK_U32 lpf_ctu_flag     : 1;
1604*437bfbebSnyanmisaka         RK_U32 reserved         : 4;
1605*437bfbebSnyanmisaka         RK_U32 dma_brsp_idle    : 1;
1606*437bfbebSnyanmisaka         RK_U32 jpeg_frm_done    : 1;
1607*437bfbebSnyanmisaka         RK_U32 rdo_frm_done     : 1;
1608*437bfbebSnyanmisaka         RK_U32 lpf_frm_done     : 1;
1609*437bfbebSnyanmisaka         RK_U32 ent_frm_done     : 1;
1610*437bfbebSnyanmisaka         RK_U32 ppl_ctrl_done    : 1;
1611*437bfbebSnyanmisaka         RK_U32 reserved1        : 10;
1612*437bfbebSnyanmisaka     } dbg_tctrl1;
1613*437bfbebSnyanmisaka 
1614*437bfbebSnyanmisaka     /* 0x0000517c reg5215 */
1615*437bfbebSnyanmisaka     struct {
1616*437bfbebSnyanmisaka         RK_U32 criw_frm_done     : 1;
1617*437bfbebSnyanmisaka         RK_U32 meiw_frm_done     : 1;
1618*437bfbebSnyanmisaka         RK_U32 smiw_frm_done     : 1;
1619*437bfbebSnyanmisaka         RK_U32 strg_rsrc_done    : 1;
1620*437bfbebSnyanmisaka         RK_U32 reserved          : 28;
1621*437bfbebSnyanmisaka     } dbg_tctrl2;
1622*437bfbebSnyanmisaka 
1623*437bfbebSnyanmisaka     /* 0x5180 - 0x51fc */
1624*437bfbebSnyanmisaka     RK_U32 reserved5216_5247[32];
1625*437bfbebSnyanmisaka 
1626*437bfbebSnyanmisaka     /* 0x00005200 reg5248 */
1627*437bfbebSnyanmisaka     RK_U32 frame_cyc;
1628*437bfbebSnyanmisaka 
1629*437bfbebSnyanmisaka     /* 0x00005204 reg5249 */
1630*437bfbebSnyanmisaka     RK_U32 pp0_fcyc;
1631*437bfbebSnyanmisaka 
1632*437bfbebSnyanmisaka     /* 0x00005208 reg5250 */
1633*437bfbebSnyanmisaka     RK_U32 pp1_fcyc;
1634*437bfbebSnyanmisaka 
1635*437bfbebSnyanmisaka     /* 0x0000520c reg5251 */
1636*437bfbebSnyanmisaka     RK_U32 cme_fcyc;
1637*437bfbebSnyanmisaka 
1638*437bfbebSnyanmisaka     /* 0x00005210 reg5252 */
1639*437bfbebSnyanmisaka     RK_U32 ldr_fcyc;
1640*437bfbebSnyanmisaka 
1641*437bfbebSnyanmisaka     /* 0x00005214 reg5253 */
1642*437bfbebSnyanmisaka     RK_U32 rfme_fcyc;
1643*437bfbebSnyanmisaka 
1644*437bfbebSnyanmisaka     /* 0x00005218 reg5254 */
1645*437bfbebSnyanmisaka     RK_U32 fme_fcyc;
1646*437bfbebSnyanmisaka 
1647*437bfbebSnyanmisaka     /* 0x0000521c reg5255 */
1648*437bfbebSnyanmisaka     RK_U32 rdo_fcyc;
1649*437bfbebSnyanmisaka 
1650*437bfbebSnyanmisaka     /* 0x00005220 reg5256 */
1651*437bfbebSnyanmisaka     RK_U32 lpf_fcyc;
1652*437bfbebSnyanmisaka 
1653*437bfbebSnyanmisaka     /* 0x00005224 reg5257 */
1654*437bfbebSnyanmisaka     RK_U32 etpy_fcyc;
1655*437bfbebSnyanmisaka 
1656*437bfbebSnyanmisaka     /* 0x00005228 reg5258 */
1657*437bfbebSnyanmisaka     RK_U32 jpeg_fcyc;
1658*437bfbebSnyanmisaka 
1659*437bfbebSnyanmisaka     /* 0x522c - 0x52fc */
1660*437bfbebSnyanmisaka     RK_U32 reserved5259_5311[53];
1661*437bfbebSnyanmisaka 
1662*437bfbebSnyanmisaka     /* 0x00005300 reg5312 */
1663*437bfbebSnyanmisaka     struct {
1664*437bfbebSnyanmisaka         RK_U32 axip_e      : 1;
1665*437bfbebSnyanmisaka         RK_U32 axip_clr    : 1;
1666*437bfbebSnyanmisaka         RK_U32 axip_mod    : 1;
1667*437bfbebSnyanmisaka         RK_U32 reserved    : 29;
1668*437bfbebSnyanmisaka     } axip0_cmd;
1669*437bfbebSnyanmisaka 
1670*437bfbebSnyanmisaka     /* 0x00005304 reg5313 */
1671*437bfbebSnyanmisaka     struct {
1672*437bfbebSnyanmisaka         RK_U32 axip_ltcy_id     : 4;
1673*437bfbebSnyanmisaka         RK_U32 axip_ltcy_thd    : 12;
1674*437bfbebSnyanmisaka         RK_U32 reserved         : 16;
1675*437bfbebSnyanmisaka     } axip0_ltcy;
1676*437bfbebSnyanmisaka 
1677*437bfbebSnyanmisaka     /* 0x00005308 reg5314 */
1678*437bfbebSnyanmisaka     struct {
1679*437bfbebSnyanmisaka         RK_U32 axip_cnt_typ    : 1;
1680*437bfbebSnyanmisaka         RK_U32 axip_cnt_ddr    : 2;
1681*437bfbebSnyanmisaka         RK_U32 axip_cnt_rid    : 5;
1682*437bfbebSnyanmisaka         RK_U32 axip_cnt_wid    : 5;
1683*437bfbebSnyanmisaka         RK_U32 reserved        : 19;
1684*437bfbebSnyanmisaka     } axip0_cnt;
1685*437bfbebSnyanmisaka 
1686*437bfbebSnyanmisaka     /* 0x530c */
1687*437bfbebSnyanmisaka     RK_U32 reserved_5315;
1688*437bfbebSnyanmisaka 
1689*437bfbebSnyanmisaka     /* 0x00005310 reg5316 */
1690*437bfbebSnyanmisaka     struct {
1691*437bfbebSnyanmisaka         RK_U32 axip_e      : 1;
1692*437bfbebSnyanmisaka         RK_U32 axip_clr    : 1;
1693*437bfbebSnyanmisaka         RK_U32 axip_mod    : 1;
1694*437bfbebSnyanmisaka         RK_U32 reserved    : 29;
1695*437bfbebSnyanmisaka     } axip1_cmd;
1696*437bfbebSnyanmisaka 
1697*437bfbebSnyanmisaka     /* 0x00005314 reg5317 */
1698*437bfbebSnyanmisaka     struct {
1699*437bfbebSnyanmisaka         RK_U32 axip_ltcy_id     : 4;
1700*437bfbebSnyanmisaka         RK_U32 axip_ltcy_thd    : 12;
1701*437bfbebSnyanmisaka         RK_U32 reserved         : 16;
1702*437bfbebSnyanmisaka     } axip1_ltcy;
1703*437bfbebSnyanmisaka 
1704*437bfbebSnyanmisaka     /* 0x00005318 reg5318 */
1705*437bfbebSnyanmisaka     struct {
1706*437bfbebSnyanmisaka         RK_U32 axip_cnt_typ    : 1;
1707*437bfbebSnyanmisaka         RK_U32 axip_cnt_ddr    : 2;
1708*437bfbebSnyanmisaka         RK_U32 axip_cnt_rid    : 5;
1709*437bfbebSnyanmisaka         RK_U32 axip_cnt_wid    : 5;
1710*437bfbebSnyanmisaka         RK_U32 reserved        : 19;
1711*437bfbebSnyanmisaka     } axip1_cnt;
1712*437bfbebSnyanmisaka 
1713*437bfbebSnyanmisaka     /* 0x531c */
1714*437bfbebSnyanmisaka     RK_U32 reserved_5319;
1715*437bfbebSnyanmisaka 
1716*437bfbebSnyanmisaka     /* 0x00005320 reg5320 */
1717*437bfbebSnyanmisaka     struct {
1718*437bfbebSnyanmisaka         RK_U32 axip_max_ltcy    : 16;
1719*437bfbebSnyanmisaka         RK_U32 reserved         : 16;
1720*437bfbebSnyanmisaka     } st_axip0_maxl;
1721*437bfbebSnyanmisaka 
1722*437bfbebSnyanmisaka     /* 0x00005324 reg5321 */
1723*437bfbebSnyanmisaka     RK_U32 axip_num_ltcy;
1724*437bfbebSnyanmisaka 
1725*437bfbebSnyanmisaka     /* 0x00005328 reg5322 */
1726*437bfbebSnyanmisaka     RK_U32 axip_sum_ltcy;
1727*437bfbebSnyanmisaka 
1728*437bfbebSnyanmisaka     /* 0x0000532c reg5323 */
1729*437bfbebSnyanmisaka     RK_U32 axip_rbyt;
1730*437bfbebSnyanmisaka 
1731*437bfbebSnyanmisaka     /* 0x00005330 reg5324 */
1732*437bfbebSnyanmisaka     RK_U32 axip_wbyt;
1733*437bfbebSnyanmisaka 
1734*437bfbebSnyanmisaka     /* 0x00005334 reg5325 */
1735*437bfbebSnyanmisaka     RK_U32 axip_wrk_cyc;
1736*437bfbebSnyanmisaka 
1737*437bfbebSnyanmisaka     /* 0x5338 - 0x533c */
1738*437bfbebSnyanmisaka     RK_U32 reserved5326_5327[2];
1739*437bfbebSnyanmisaka 
1740*437bfbebSnyanmisaka     /* 0x00005340 reg5328 */
1741*437bfbebSnyanmisaka     struct {
1742*437bfbebSnyanmisaka         RK_U32 axip_max_ltcy    : 16;
1743*437bfbebSnyanmisaka         RK_U32 reserved         : 16;
1744*437bfbebSnyanmisaka     } st_axip1_maxl;
1745*437bfbebSnyanmisaka 
1746*437bfbebSnyanmisaka     /* 0x00005344 reg5329 */
1747*437bfbebSnyanmisaka     RK_U32 axip1_num_ltcy;
1748*437bfbebSnyanmisaka 
1749*437bfbebSnyanmisaka     /* 0x00005348 reg5330 */
1750*437bfbebSnyanmisaka     RK_U32 axip1_sum_ltcy;
1751*437bfbebSnyanmisaka 
1752*437bfbebSnyanmisaka     /* 0x0000534c reg5331 */
1753*437bfbebSnyanmisaka     RK_U32 axip1_rbyt;
1754*437bfbebSnyanmisaka 
1755*437bfbebSnyanmisaka     /* 0x00005350 reg5332 */
1756*437bfbebSnyanmisaka     RK_U32 axip1_wbyt;
1757*437bfbebSnyanmisaka 
1758*437bfbebSnyanmisaka     /* 0x00005354 reg5333 */
1759*437bfbebSnyanmisaka     RK_U32 axip1_wrk_cyc;
1760*437bfbebSnyanmisaka } vepu540c_dbg;
1761*437bfbebSnyanmisaka 
1762*437bfbebSnyanmisaka typedef struct Vepu540cJpegCfg_t {
1763*437bfbebSnyanmisaka     MppDev dev;
1764*437bfbebSnyanmisaka     void *jpeg_reg_base;
1765*437bfbebSnyanmisaka     void *reg_tab;
1766*437bfbebSnyanmisaka     void *enc_task;
1767*437bfbebSnyanmisaka     void *input_fmt;
1768*437bfbebSnyanmisaka } Vepu540cJpegCfg;
1769*437bfbebSnyanmisaka 
1770*437bfbebSnyanmisaka #ifdef __cplusplus
1771*437bfbebSnyanmisaka extern "C" {
1772*437bfbebSnyanmisaka #endif
1773*437bfbebSnyanmisaka 
1774*437bfbebSnyanmisaka MPP_RET vepu540c_set_jpeg_reg(Vepu540cJpegCfg *cfg);
1775*437bfbebSnyanmisaka MPP_RET vepu540c_set_roi(void *roi_reg_base, MppEncROICfg * roi, RK_S32 w,
1776*437bfbebSnyanmisaka                          RK_S32 h);
1777*437bfbebSnyanmisaka 
1778*437bfbebSnyanmisaka #ifdef __cplusplus
1779*437bfbebSnyanmisaka }
1780*437bfbebSnyanmisaka #endif
1781*437bfbebSnyanmisaka #endif              /* __VEPU540C_COMMON_H__ */
1782