xref: /rockchip-linux_mpp/mpp/hal/rkenc/jpege/hal_jpege_vepu511_reg.h (revision 437bfbeb9567cca9cd9080e3f6954aa9d6a94f18)
1*437bfbebSnyanmisaka /* SPDX-License-Identifier: Apache-2.0 */
2*437bfbebSnyanmisaka /*
3*437bfbebSnyanmisaka  * Copyright (c) 2025 Rockchip Electronics Co., Ltd.
4*437bfbebSnyanmisaka  */
5*437bfbebSnyanmisaka 
6*437bfbebSnyanmisaka #ifndef __HAL_JPEGE_VEPU511_REG_H__
7*437bfbebSnyanmisaka #define __HAL_JPEGE_VEPU511_REG_H__
8*437bfbebSnyanmisaka 
9*437bfbebSnyanmisaka #include "rk_type.h"
10*437bfbebSnyanmisaka #include "vepu511_common.h"
11*437bfbebSnyanmisaka 
12*437bfbebSnyanmisaka typedef struct Vepu511JpegRoiRegion_t {
13*437bfbebSnyanmisaka     struct {
14*437bfbebSnyanmisaka         RK_U32 roi0_rdoq_start_x    : 11;
15*437bfbebSnyanmisaka         RK_U32 roi0_rdoq_start_y    : 11;
16*437bfbebSnyanmisaka         RK_U32 reserved             : 3;
17*437bfbebSnyanmisaka         RK_U32 roi0_rdoq_level      : 6;
18*437bfbebSnyanmisaka         RK_U32 roi0_rdoq_en         : 1;
19*437bfbebSnyanmisaka     } roi_cfg0;
20*437bfbebSnyanmisaka 
21*437bfbebSnyanmisaka     struct {
22*437bfbebSnyanmisaka         RK_U32 roi0_rdoq_width_m1     : 11;
23*437bfbebSnyanmisaka         RK_U32 roi0_rdoq_height_m1    : 11;
24*437bfbebSnyanmisaka         /* the below 10 bits only for roi0 */
25*437bfbebSnyanmisaka         RK_U32 reserved               : 3;
26*437bfbebSnyanmisaka         RK_U32 frm_rdoq_level         : 6;
27*437bfbebSnyanmisaka         RK_U32 frm_rdoq_en            : 1;
28*437bfbebSnyanmisaka     } roi_cfg1;
29*437bfbebSnyanmisaka } Vepu511JpegRoiRegion;
30*437bfbebSnyanmisaka 
31*437bfbebSnyanmisaka /* 0x00000400 reg256 - 0x0000050c reg323*/
32*437bfbebSnyanmisaka typedef struct Vepu511JpegReg_t {
33*437bfbebSnyanmisaka     /* 0x00000400 reg256 */
34*437bfbebSnyanmisaka     RK_U32  adr_bsbt;
35*437bfbebSnyanmisaka 
36*437bfbebSnyanmisaka     /* 0x00000404 reg257 */
37*437bfbebSnyanmisaka     RK_U32  adr_bsbb;
38*437bfbebSnyanmisaka 
39*437bfbebSnyanmisaka     /* 0x00000408 reg258 */
40*437bfbebSnyanmisaka     RK_U32 adr_bsbs;
41*437bfbebSnyanmisaka 
42*437bfbebSnyanmisaka     /* 0x0000040c reg259 */
43*437bfbebSnyanmisaka     RK_U32 adr_bsbr;
44*437bfbebSnyanmisaka 
45*437bfbebSnyanmisaka     /* 0x00000410 reg260 */
46*437bfbebSnyanmisaka     RK_U32 adr_vsy_b;
47*437bfbebSnyanmisaka 
48*437bfbebSnyanmisaka     /* 0x00000414 reg261 */
49*437bfbebSnyanmisaka     RK_U32 adr_vsc_b;
50*437bfbebSnyanmisaka 
51*437bfbebSnyanmisaka     /* 0x00000418 reg262 */
52*437bfbebSnyanmisaka     RK_U32 adr_vsy_t;
53*437bfbebSnyanmisaka 
54*437bfbebSnyanmisaka     /* 0x0000041c reg263 */
55*437bfbebSnyanmisaka     RK_U32 adr_vsc_t;
56*437bfbebSnyanmisaka 
57*437bfbebSnyanmisaka     /* 0x00000420 reg264 */
58*437bfbebSnyanmisaka     RK_U32 adr_src0;
59*437bfbebSnyanmisaka 
60*437bfbebSnyanmisaka     /* 0x00000424 reg265 */
61*437bfbebSnyanmisaka     RK_U32 adr_src1;
62*437bfbebSnyanmisaka 
63*437bfbebSnyanmisaka     /* 0x00000428 reg266 */
64*437bfbebSnyanmisaka     RK_U32 adr_src2;
65*437bfbebSnyanmisaka 
66*437bfbebSnyanmisaka     /* 0x0000042c reg267 */
67*437bfbebSnyanmisaka     RK_U32 bsp_size;
68*437bfbebSnyanmisaka 
69*437bfbebSnyanmisaka     /* 0x430 - 0x43c */
70*437bfbebSnyanmisaka     RK_U32 reserved268_271[4];
71*437bfbebSnyanmisaka 
72*437bfbebSnyanmisaka     /* 0x00000440 reg272 */
73*437bfbebSnyanmisaka     struct {
74*437bfbebSnyanmisaka         RK_U32 pic_wd8_m1    : 11;
75*437bfbebSnyanmisaka         RK_U32 reserved      : 1;
76*437bfbebSnyanmisaka         RK_U32 pp0_vnum_m1   : 4;
77*437bfbebSnyanmisaka         RK_U32 pic_hd8_m1    : 11;
78*437bfbebSnyanmisaka         RK_U32 reserved1     : 1;
79*437bfbebSnyanmisaka         RK_U32 pp0_jnum_m1   : 4;
80*437bfbebSnyanmisaka     } enc_rsl;
81*437bfbebSnyanmisaka 
82*437bfbebSnyanmisaka     /* 0x00000444 reg273 */
83*437bfbebSnyanmisaka     struct {
84*437bfbebSnyanmisaka         RK_U32 pic_wfill    : 6;
85*437bfbebSnyanmisaka         RK_U32 reserved     : 10;
86*437bfbebSnyanmisaka         RK_U32 pic_hfill    : 6;
87*437bfbebSnyanmisaka         RK_U32 reserved1    : 10;
88*437bfbebSnyanmisaka     } src_fill;
89*437bfbebSnyanmisaka 
90*437bfbebSnyanmisaka     /* 0x00000448 reg274 */
91*437bfbebSnyanmisaka     struct {
92*437bfbebSnyanmisaka         RK_U32 alpha_swap            : 1;
93*437bfbebSnyanmisaka         RK_U32 rbuv_swap             : 1;
94*437bfbebSnyanmisaka         RK_U32 src_cfmt              : 4;
95*437bfbebSnyanmisaka         RK_U32 reserved              : 2;
96*437bfbebSnyanmisaka         RK_U32 src_range_trns_en     : 1;
97*437bfbebSnyanmisaka         RK_U32 src_range_trns_sel    : 1;
98*437bfbebSnyanmisaka         RK_U32 chroma_ds_mode        : 1;
99*437bfbebSnyanmisaka         RK_U32 reserved1             : 21;
100*437bfbebSnyanmisaka     } src_fmt;
101*437bfbebSnyanmisaka 
102*437bfbebSnyanmisaka     /* 0x0000044c reg275 */
103*437bfbebSnyanmisaka     struct {
104*437bfbebSnyanmisaka         RK_U32 csc_wgt_b2y    : 9;
105*437bfbebSnyanmisaka         RK_U32 csc_wgt_g2y    : 9;
106*437bfbebSnyanmisaka         RK_U32 csc_wgt_r2y    : 9;
107*437bfbebSnyanmisaka         RK_U32 reserved       : 5;
108*437bfbebSnyanmisaka     } src_udfy;
109*437bfbebSnyanmisaka 
110*437bfbebSnyanmisaka     /* 0x00000450 reg276 */
111*437bfbebSnyanmisaka     struct {
112*437bfbebSnyanmisaka         RK_U32 csc_wgt_b2u    : 9;
113*437bfbebSnyanmisaka         RK_U32 csc_wgt_g2u    : 9;
114*437bfbebSnyanmisaka         RK_U32 csc_wgt_r2u    : 9;
115*437bfbebSnyanmisaka         RK_U32 reserved       : 5;
116*437bfbebSnyanmisaka     } src_udfu;
117*437bfbebSnyanmisaka 
118*437bfbebSnyanmisaka     /* 0x00000454 reg277 */
119*437bfbebSnyanmisaka     struct {
120*437bfbebSnyanmisaka         RK_U32 csc_wgt_b2v    : 9;
121*437bfbebSnyanmisaka         RK_U32 csc_wgt_g2v    : 9;
122*437bfbebSnyanmisaka         RK_U32 csc_wgt_r2v    : 9;
123*437bfbebSnyanmisaka         RK_U32 reserved       : 5;
124*437bfbebSnyanmisaka     } src_udfv;
125*437bfbebSnyanmisaka 
126*437bfbebSnyanmisaka     /* 0x00000458 reg278 */
127*437bfbebSnyanmisaka     struct {
128*437bfbebSnyanmisaka         RK_U32 csc_ofst_v    : 8;
129*437bfbebSnyanmisaka         RK_U32 csc_ofst_u    : 8;
130*437bfbebSnyanmisaka         RK_U32 csc_ofst_y    : 5;
131*437bfbebSnyanmisaka         RK_U32 reserved      : 11;
132*437bfbebSnyanmisaka     } src_udfo;
133*437bfbebSnyanmisaka 
134*437bfbebSnyanmisaka     /* 0x0000045c reg279 */
135*437bfbebSnyanmisaka     struct {
136*437bfbebSnyanmisaka         RK_U32 cr_force_value     : 8;
137*437bfbebSnyanmisaka         RK_U32 cb_force_value     : 8;
138*437bfbebSnyanmisaka         RK_U32 chroma_force_en    : 1;
139*437bfbebSnyanmisaka         RK_U32 reserved           : 9;
140*437bfbebSnyanmisaka         RK_U32 src_mirr           : 1;
141*437bfbebSnyanmisaka         RK_U32 src_rot            : 2;
142*437bfbebSnyanmisaka         RK_U32 reserved1          : 1;
143*437bfbebSnyanmisaka         RK_U32 rkfbcd_en          : 1;
144*437bfbebSnyanmisaka         RK_U32 reserved2          : 1;
145*437bfbebSnyanmisaka     } src_proc;
146*437bfbebSnyanmisaka 
147*437bfbebSnyanmisaka     /* 0x00000460 reg280 */
148*437bfbebSnyanmisaka     struct {
149*437bfbebSnyanmisaka         RK_U32 pic_ofst_x    : 14;
150*437bfbebSnyanmisaka         RK_U32 reserved      : 2;
151*437bfbebSnyanmisaka         RK_U32 pic_ofst_y    : 14;
152*437bfbebSnyanmisaka         RK_U32 reserved1     : 2;
153*437bfbebSnyanmisaka     } pic_ofst;
154*437bfbebSnyanmisaka 
155*437bfbebSnyanmisaka     /* 0x00000464 reg281 */
156*437bfbebSnyanmisaka     struct {
157*437bfbebSnyanmisaka         RK_U32 src_strd0    : 21;
158*437bfbebSnyanmisaka         RK_U32 reserved     : 11;
159*437bfbebSnyanmisaka     } src_strd0;
160*437bfbebSnyanmisaka 
161*437bfbebSnyanmisaka     /* 0x00000468 reg282 */
162*437bfbebSnyanmisaka     struct {
163*437bfbebSnyanmisaka         RK_U32 src_strd1    : 16;
164*437bfbebSnyanmisaka         RK_U32 reserved     : 16;
165*437bfbebSnyanmisaka     } src_strd1;
166*437bfbebSnyanmisaka 
167*437bfbebSnyanmisaka     /* 0x0000046c reg283 */
168*437bfbebSnyanmisaka     struct {
169*437bfbebSnyanmisaka         RK_U32 pp_corner_filter_strength      : 2;
170*437bfbebSnyanmisaka         RK_U32 reserved                       : 2;
171*437bfbebSnyanmisaka         RK_U32 pp_edge_filter_strength        : 2;
172*437bfbebSnyanmisaka         RK_U32 reserved1                      : 2;
173*437bfbebSnyanmisaka         RK_U32 pp_internal_filter_strength    : 2;
174*437bfbebSnyanmisaka         RK_U32 reserved2                      : 22;
175*437bfbebSnyanmisaka     } src_flt_cfg;
176*437bfbebSnyanmisaka 
177*437bfbebSnyanmisaka     /* 0x00000470 reg284 */
178*437bfbebSnyanmisaka     struct {
179*437bfbebSnyanmisaka         RK_U32 bias_y    : 15;
180*437bfbebSnyanmisaka         RK_U32 reserved  : 17;
181*437bfbebSnyanmisaka     } y_cfg;
182*437bfbebSnyanmisaka 
183*437bfbebSnyanmisaka     /* 0x00000474 reg285 */
184*437bfbebSnyanmisaka     struct {
185*437bfbebSnyanmisaka         RK_U32 bias_u    : 15;
186*437bfbebSnyanmisaka         RK_U32 reserved  : 17;
187*437bfbebSnyanmisaka     } u_cfg;
188*437bfbebSnyanmisaka 
189*437bfbebSnyanmisaka     /* 0x00000478 reg286 */
190*437bfbebSnyanmisaka     struct {
191*437bfbebSnyanmisaka         RK_U32 bias_v    : 15;
192*437bfbebSnyanmisaka         RK_U32 reserved  : 17;
193*437bfbebSnyanmisaka     } v_cfg;
194*437bfbebSnyanmisaka 
195*437bfbebSnyanmisaka     /* 0x0000047c reg287 */
196*437bfbebSnyanmisaka     struct {
197*437bfbebSnyanmisaka         RK_U32 ri              : 25;
198*437bfbebSnyanmisaka         RK_U32 out_mode        : 1;
199*437bfbebSnyanmisaka         RK_U32 start_rst_m     : 3;
200*437bfbebSnyanmisaka         RK_U32 pic_last_ecs    : 1;
201*437bfbebSnyanmisaka         RK_U32 reserved        : 1;
202*437bfbebSnyanmisaka         RK_U32 stnd            : 1;
203*437bfbebSnyanmisaka     } base_cfg;
204*437bfbebSnyanmisaka 
205*437bfbebSnyanmisaka     /* 0x00000480 reg288 */
206*437bfbebSnyanmisaka     struct {
207*437bfbebSnyanmisaka         RK_U32 uvc_partition0_len    : 12;
208*437bfbebSnyanmisaka         RK_U32 uvc_partition_len     : 12;
209*437bfbebSnyanmisaka         RK_U32 uvc_skip_len          : 6;
210*437bfbebSnyanmisaka         RK_U32 reserved              : 2;
211*437bfbebSnyanmisaka     } uvc_cfg;
212*437bfbebSnyanmisaka 
213*437bfbebSnyanmisaka     /* 0x00000484 reg289 */
214*437bfbebSnyanmisaka     struct {
215*437bfbebSnyanmisaka         RK_U32 reserved     : 4;
216*437bfbebSnyanmisaka         RK_U32 eslf_badr    : 28;
217*437bfbebSnyanmisaka     } adr_eslf;
218*437bfbebSnyanmisaka 
219*437bfbebSnyanmisaka     /* 0x00000488 reg290 */
220*437bfbebSnyanmisaka     struct {
221*437bfbebSnyanmisaka         RK_U32 eslf_rptr    : 10;
222*437bfbebSnyanmisaka         RK_U32 eslf_wptr    : 10;
223*437bfbebSnyanmisaka         RK_U32 eslf_blen    : 10;
224*437bfbebSnyanmisaka         RK_U32 eslf_updt    : 2;
225*437bfbebSnyanmisaka     } eslf_buf;
226*437bfbebSnyanmisaka 
227*437bfbebSnyanmisaka     /* 0x48c */
228*437bfbebSnyanmisaka     RK_U32 reserved_291;
229*437bfbebSnyanmisaka 
230*437bfbebSnyanmisaka     /* 0x00000490 reg292 - 0x0000050c reg323*/
231*437bfbebSnyanmisaka     Vepu511JpegRoiRegion roi_regions[16];
232*437bfbebSnyanmisaka } Vepu511JpegReg;
233*437bfbebSnyanmisaka 
234*437bfbebSnyanmisaka /* 0x00002ca0 reg2856 - - 0x00002e1c reg2951 */
235*437bfbebSnyanmisaka typedef struct JpegVepu511Tab_t {
236*437bfbebSnyanmisaka     RK_U16 qua_tab0[64];
237*437bfbebSnyanmisaka     RK_U16 qua_tab1[64];
238*437bfbebSnyanmisaka     RK_U16 qua_tab2[64];
239*437bfbebSnyanmisaka } JpegVepu511Tab;
240*437bfbebSnyanmisaka 
241*437bfbebSnyanmisaka typedef struct Vepu511JpegOsdCfg_t {
242*437bfbebSnyanmisaka     /* 0x00003138 reg3150 */
243*437bfbebSnyanmisaka     struct {
244*437bfbebSnyanmisaka         RK_U32 osd_en                : 1;
245*437bfbebSnyanmisaka         RK_U32 reserved              : 4;
246*437bfbebSnyanmisaka         RK_U32 osd_qp_adj_en         : 1;
247*437bfbebSnyanmisaka         RK_U32 osd_range_trns_en     : 1;
248*437bfbebSnyanmisaka         RK_U32 osd_range_trns_sel    : 1;
249*437bfbebSnyanmisaka         RK_U32 osd_fmt               : 4;
250*437bfbebSnyanmisaka         RK_U32 osd_alpha_swap        : 1;
251*437bfbebSnyanmisaka         RK_U32 osd_rbuv_swap         : 1;
252*437bfbebSnyanmisaka         RK_U32 reserved1             : 8;
253*437bfbebSnyanmisaka         RK_U32 osd_fg_alpha          : 8;
254*437bfbebSnyanmisaka         RK_U32 osd_fg_alpha_sel      : 2;
255*437bfbebSnyanmisaka     } osd_cfg0;
256*437bfbebSnyanmisaka 
257*437bfbebSnyanmisaka     /* 0x0000313c reg3151 */
258*437bfbebSnyanmisaka     struct {
259*437bfbebSnyanmisaka         RK_U32 osd_lt_xcrd    : 14;
260*437bfbebSnyanmisaka         RK_U32 osd_lt_ycrd    : 14;
261*437bfbebSnyanmisaka         RK_U32 osd_endn       : 4;
262*437bfbebSnyanmisaka     } osd_cfg1;
263*437bfbebSnyanmisaka 
264*437bfbebSnyanmisaka     /* 0x00003140 reg3152 */
265*437bfbebSnyanmisaka     struct {
266*437bfbebSnyanmisaka         RK_U32 osd_rb_xcrd    : 14;
267*437bfbebSnyanmisaka         RK_U32 osd_rb_ycrd    : 14;
268*437bfbebSnyanmisaka         RK_U32 reserved       : 4;
269*437bfbebSnyanmisaka     } osd_cfg2;
270*437bfbebSnyanmisaka 
271*437bfbebSnyanmisaka     /* 0x00003144 reg3153 */
272*437bfbebSnyanmisaka     RK_U32 osd_st_addr;
273*437bfbebSnyanmisaka 
274*437bfbebSnyanmisaka     /* 0x3148 */
275*437bfbebSnyanmisaka     RK_U32 reserved_3154;
276*437bfbebSnyanmisaka 
277*437bfbebSnyanmisaka     /* 0x0000314c reg3155 */
278*437bfbebSnyanmisaka     struct {
279*437bfbebSnyanmisaka         RK_U32 osd_stride        : 17;
280*437bfbebSnyanmisaka         RK_U32 reserved          : 8;
281*437bfbebSnyanmisaka         RK_U32 osd_ch_ds_mode    : 1;
282*437bfbebSnyanmisaka         RK_U32 reserved1         : 6;
283*437bfbebSnyanmisaka     } osd_cfg5;
284*437bfbebSnyanmisaka 
285*437bfbebSnyanmisaka     /* 0x00003150 reg3156 */
286*437bfbebSnyanmisaka     struct {
287*437bfbebSnyanmisaka         RK_U32 osd_v_b_lut0    : 8;
288*437bfbebSnyanmisaka         RK_U32 osd_u_g_lut0    : 8;
289*437bfbebSnyanmisaka         RK_U32 osd_y_r_lut0    : 8;
290*437bfbebSnyanmisaka         RK_U32 osd_v_b_lut1    : 8;
291*437bfbebSnyanmisaka     } osd_cfg6;
292*437bfbebSnyanmisaka 
293*437bfbebSnyanmisaka     /* 0x00003154 reg3157 */
294*437bfbebSnyanmisaka     struct {
295*437bfbebSnyanmisaka         RK_U32 osd0_u_g_lut1      : 8;
296*437bfbebSnyanmisaka         RK_U32 osd0_y_r_lut1      : 8;
297*437bfbebSnyanmisaka         RK_U32 osd0_alpha_lut0    : 8;
298*437bfbebSnyanmisaka         RK_U32 osd0_alpha_lut1    : 8;
299*437bfbebSnyanmisaka     } osd_cfg7;
300*437bfbebSnyanmisaka 
301*437bfbebSnyanmisaka     /* 0x3158 */
302*437bfbebSnyanmisaka     RK_U32 reserved_3158;
303*437bfbebSnyanmisaka } JpegVepu511Osd_cfg;
304*437bfbebSnyanmisaka 
305*437bfbebSnyanmisaka /* 0x00003138 reg3150 - - 0x00003264 reg3225 */
306*437bfbebSnyanmisaka typedef struct Vepu511JpegOsd_t {
307*437bfbebSnyanmisaka     JpegVepu511Osd_cfg osd_cfg[8];
308*437bfbebSnyanmisaka     /* 0x00003258 reg3222 */
309*437bfbebSnyanmisaka     struct {
310*437bfbebSnyanmisaka         RK_U32 osd_csc_yr    : 9;
311*437bfbebSnyanmisaka         RK_U32 osd_csc_yg    : 9;
312*437bfbebSnyanmisaka         RK_U32 osd_csc_yb    : 9;
313*437bfbebSnyanmisaka         RK_U32 reserved      : 5;
314*437bfbebSnyanmisaka     } osd_whi_cfg0;
315*437bfbebSnyanmisaka 
316*437bfbebSnyanmisaka     /* 0x0000325c reg3223 */
317*437bfbebSnyanmisaka     struct {
318*437bfbebSnyanmisaka         RK_U32 osd_csc_ur    : 9;
319*437bfbebSnyanmisaka         RK_U32 osd_csc_ug    : 9;
320*437bfbebSnyanmisaka         RK_U32 osd_csc_ub    : 9;
321*437bfbebSnyanmisaka         RK_U32 reserved      : 5;
322*437bfbebSnyanmisaka     } osd_whi_cfg1;
323*437bfbebSnyanmisaka 
324*437bfbebSnyanmisaka     /* 0x00003260 reg3224 */
325*437bfbebSnyanmisaka     struct {
326*437bfbebSnyanmisaka         RK_U32 osd_csc_vr    : 9;
327*437bfbebSnyanmisaka         RK_U32 osd_csc_vg    : 9;
328*437bfbebSnyanmisaka         RK_U32 osd_csc_vb    : 9;
329*437bfbebSnyanmisaka         RK_U32 reserved      : 5;
330*437bfbebSnyanmisaka     } osd_whi_cfg2;
331*437bfbebSnyanmisaka 
332*437bfbebSnyanmisaka     /* 0x00003264 reg3225 */
333*437bfbebSnyanmisaka     struct {
334*437bfbebSnyanmisaka         RK_U32 osd_csc_ofst_y    : 8;
335*437bfbebSnyanmisaka         RK_U32 osd_csc_ofst_u    : 8;
336*437bfbebSnyanmisaka         RK_U32 osd_csc_ofst_v    : 8;
337*437bfbebSnyanmisaka         RK_U32 reserved          : 8;
338*437bfbebSnyanmisaka     } osd_whi_cfg3;
339*437bfbebSnyanmisaka } JpegVepu511Osd;
340*437bfbebSnyanmisaka 
341*437bfbebSnyanmisaka /* class: buffer/video syntax */
342*437bfbebSnyanmisaka /* 0x00000270 reg156 - 0x0000050c reg323 */
343*437bfbebSnyanmisaka typedef struct JpegVepu511Base_t {
344*437bfbebSnyanmisaka     /* 0x00000270 reg156  - 0x0000039c reg231 */
345*437bfbebSnyanmisaka     Vepu511FrmCommon    common;
346*437bfbebSnyanmisaka 
347*437bfbebSnyanmisaka     /* 0x000003a0 reg232 - 0x000003f4 reg253*/
348*437bfbebSnyanmisaka     RK_U32 reserved232_253[22];
349*437bfbebSnyanmisaka 
350*437bfbebSnyanmisaka     /* 0x000003f8 reg254 */
351*437bfbebSnyanmisaka     struct {
352*437bfbebSnyanmisaka         RK_U32 slice_sta_x      : 9;
353*437bfbebSnyanmisaka         RK_U32 reserved1        : 7;
354*437bfbebSnyanmisaka         RK_U32 slice_sta_y      : 10;
355*437bfbebSnyanmisaka         RK_U32 reserved2        : 5;
356*437bfbebSnyanmisaka         RK_U32 slice_enc_ena    : 1;
357*437bfbebSnyanmisaka     } slice_enc_cfg0;
358*437bfbebSnyanmisaka 
359*437bfbebSnyanmisaka     /* 0x000003fc reg255 */
360*437bfbebSnyanmisaka     struct {
361*437bfbebSnyanmisaka         RK_U32 slice_end_x    : 9;
362*437bfbebSnyanmisaka         RK_U32 reserved       : 7;
363*437bfbebSnyanmisaka         RK_U32 slice_end_y    : 10;
364*437bfbebSnyanmisaka         RK_U32 reserved1      : 6;
365*437bfbebSnyanmisaka     } slice_enc_cfg1;
366*437bfbebSnyanmisaka 
367*437bfbebSnyanmisaka     /* 0x00000400 reg256 - 0x0000050c reg323 */
368*437bfbebSnyanmisaka     Vepu511JpegReg jpegReg;
369*437bfbebSnyanmisaka } JpegVepu511Base;
370*437bfbebSnyanmisaka 
371*437bfbebSnyanmisaka typedef struct JpegV511RegSet_t {
372*437bfbebSnyanmisaka     Vepu511ControlCfg   reg_ctl;
373*437bfbebSnyanmisaka     JpegVepu511Base     reg_base;
374*437bfbebSnyanmisaka     JpegVepu511Tab      jpeg_table;
375*437bfbebSnyanmisaka     Vepu511OsdRegs      reg_osd;
376*437bfbebSnyanmisaka     Vepu511Dbg          reg_dbg;
377*437bfbebSnyanmisaka } JpegV511RegSet;
378*437bfbebSnyanmisaka 
379*437bfbebSnyanmisaka typedef struct JpegV511Status_t {
380*437bfbebSnyanmisaka     RK_U32 hw_status;
381*437bfbebSnyanmisaka     Vepu511Status st;
382*437bfbebSnyanmisaka } JpegV511Status;
383*437bfbebSnyanmisaka 
384*437bfbebSnyanmisaka #endif
385