xref: /rockchip-linux_mpp/mpp/vproc/vdpp/vdpp_common.h (revision 437bfbeb9567cca9cd9080e3f6954aa9d6a94f18)
1 /* SPDX-License-Identifier: Apache-2.0 OR MIT */
2 /*
3  * Copyright (c) 2024 Rockchip Electronics Co., Ltd.
4  */
5 
6 #ifndef __VDPP_COMMON_H__
7 #define __VDPP_COMMON_H__
8 
9 #include <string.h>
10 
11 #include "rk_type.h"
12 #include "mpp_err.h"
13 #include "mpp_common.h"
14 #include "vdpp_api.h"
15 
16 /* marco define */
17 #define VDPP_TILE_W_MAX     (120)
18 #define VDPP_TILE_H_MAX     (480)
19 
20 #define SCALE_FACTOR_DN_FIXPOINT_SHIFT    (12)
21 #define SCALE_FACTOR_UP_FIXPOINT_SHIFT    (16)
22 #define GET_SCALE_FACTOR_DN(src,dst)      ((((src) - 1) << SCALE_FACTOR_DN_FIXPOINT_SHIFT)  / ((dst) - 1))
23 #define GET_SCALE_FACTOR_UP(src,dst)      ((((src) - 1) << SCALE_FACTOR_UP_FIXPOINT_SHIFT)  / ((dst) - 1))
24 
25 extern const char *working_mode_name[];
26 
27 enum ZME_FMT {
28     FMT_YCbCr420_888    = 4,
29     FMT_YCbCr444_888    = 6,
30 };
31 
32 enum {
33     SCL_NEI = 0,
34     SCL_BIL = 1,
35     SCL_BIC = 2,
36     SCL_MPH = 3,
37 };
38 
39 struct dmsr_params {
40     bool   dmsr_enable;
41     RK_U32 dmsr_str_pri_y;
42     RK_U32 dmsr_str_sec_y;
43     RK_U32 dmsr_dumping_y;
44     RK_U32 dmsr_wgt_pri_gain_even_1;
45     RK_U32 dmsr_wgt_pri_gain_even_2;
46     RK_U32 dmsr_wgt_pri_gain_odd_1;
47     RK_U32 dmsr_wgt_pri_gain_odd_2;
48     RK_U32 dmsr_wgt_sec_gain;
49     RK_U32 dmsr_blk_flat_th;
50     RK_U32 dmsr_contrast_to_conf_map_x0;
51     RK_U32 dmsr_contrast_to_conf_map_x1;
52     RK_U32 dmsr_contrast_to_conf_map_y0;
53     RK_U32 dmsr_contrast_to_conf_map_y1;
54     RK_U32 dmsr_diff_core_th0;
55     RK_U32 dmsr_diff_core_th1;
56     RK_U32 dmsr_diff_core_wgt0;
57     RK_U32 dmsr_diff_core_wgt1;
58     RK_U32 dmsr_diff_core_wgt2;
59     RK_U32 dmsr_edge_th_low_arr[7];
60     RK_U32 dmsr_edge_th_high_arr[7];
61 };
62 
63 struct dmsr_reg {
64 
65     struct {
66         RK_U32 sw_dmsr_edge_low_thre_0      : 16;
67         RK_U32 sw_dmsr_edge_high_thre_0     : 16;
68     } reg0;         /* 0x0080 */
69 
70     struct {
71         RK_U32 sw_dmsr_edge_low_thre_1      : 16;
72         RK_U32 sw_dmsr_edge_high_thre_1     : 16;
73     } reg1;         /* 0x0084 */
74 
75     struct {
76         RK_U32 sw_dmsr_edge_low_thre_2      : 16;
77         RK_U32 sw_dmsr_edge_high_thre_2     : 16;
78     } reg2;         /* 0x0088 */
79 
80     struct {
81         RK_U32 sw_dmsr_edge_low_thre_3      : 16;
82         RK_U32 sw_dmsr_edge_high_thre_3     : 16;
83     } reg3;         /* 0x008C */
84 
85     struct {
86         RK_U32 sw_dmsr_edge_low_thre_4      : 16;
87         RK_U32 sw_dmsr_edge_high_thre_4     : 16;
88     } reg4;         /* 0x0090 */
89 
90     struct {
91         RK_U32 sw_dmsr_edge_low_thre_5      : 16;
92         RK_U32 sw_dmsr_edge_high_thre_5     : 16;
93     } reg5;         /* 0x0094 */
94 
95     struct {
96         RK_U32 sw_dmsr_edge_low_thre_6      : 16;
97         RK_U32 sw_dmsr_edge_high_thre_6     : 16;
98     } reg6;         /* 0x0098 */
99 
100     struct {
101         RK_U32 sw_dmsr_edge_k_0     : 16;
102         RK_U32 sw_dmsr_edge_k_1     : 16;
103     } reg7;         /* 0x009C */
104 
105     struct {
106         RK_U32 sw_dmsr_edge_k_2     : 16;
107         RK_U32 sw_dmsr_edge_k_3     : 16;
108     } reg8;         /* 0x00A0 */
109 
110     struct {
111         RK_U32 sw_dmsr_edge_k_4     : 16;
112         RK_U32 sw_dmsr_edge_k_5     : 16;
113     } reg9;         /* 0x00A4 */
114 
115     struct {
116         RK_U32 sw_dmsr_edge_k_6     : 16;
117         RK_U32 sw_dmsr_dir_contrast_conf_f  : 16;
118     } reg10;         /* 0x00A8 */
119 
120     struct {
121         RK_U32 sw_dmsr_dir_contrast_conf_x0 : 16;
122         RK_U32 sw_dmsr_dir_contrast_conf_x1  : 16;
123     } reg11;         /* 0x00AC */
124 
125     struct {
126         RK_U32 sw_dmsr_dir_contrast_conf_y0 : 16;
127         RK_U32 sw_dmsr_dir_contrast_conf_y1 : 16;
128     } reg12;         /* 0x00B0 */
129 
130     struct {
131         RK_U32 sw_dmsr_var_th       : 16;
132     } reg13;         /* 0x00B4 */
133 
134     struct {
135         RK_U32 sw_dmsr_diff_coring_th0      : 8;
136         RK_U32 sw_dmsr_diff_coring_th1      : 8;
137     } reg14;         /* 0x00B8 */
138 
139     struct {
140         RK_U32 sw_dmsr_diff_coring_wgt0     : 6;
141         RK_U32 sw_reserved_1        : 2;
142         RK_U32 sw_dmsr_diff_coring_wgt1     : 6;
143         RK_U32 sw_reserved_2        : 2;
144         RK_U32 sw_dmsr_diff_coring_wgt2     : 6;
145     } reg15;         /* 0x00BC */
146 
147     struct {
148         RK_U32 sw_dmsr_diff_coring_y0      : 14;
149         RK_U32 sw_reserved_1        : 2;
150         RK_U32 sw_dmsr_diff_coring_y1      : 14;
151         RK_U32 sw_reserved_2        : 2;
152     } reg16;         /* 0x00C0 */
153 
154     struct {
155         RK_U32 sw_dmsr_wgt_pri_gain_1_odd   : 6;
156         RK_U32 sw_reserved_1        : 2;
157         RK_U32 sw_dmsr_wgt_pri_gain_1_even  : 6;
158         RK_U32 sw_reserved_2        : 2;
159         RK_U32 sw_dmsr_wgt_pri_gain_2_odd   : 6;
160         RK_U32 sw_reserved_3        : 2;
161         RK_U32 sw_dmsr_wgt_pri_gain_2_even  : 6;
162     } reg17;         /* 0x00C4 */
163 
164     struct {
165         RK_U32 sw_dmsr_wgt_sec_gain_1       : 6;
166         RK_U32 sw_reserved_1        : 2;
167         RK_U32 sw_dmsr_wgt_sec_gain_2       : 6;
168     } reg18;         /* 0x00C8 */
169 
170     struct {
171         RK_U32 sw_dmsr_strength_pri : 5;
172         RK_U32 sw_reserved_1        : 3;
173         RK_U32 sw_dmsr_strength_sec : 5;
174         RK_U32 sw_reserved_2        : 3;
175         RK_U32 sw_dmsr_dump         : 4;
176     } reg19;         /* 0x00CC */
177 
178     struct {
179         RK_U32 sw_dmsr_obv_point_h  : 12;
180         RK_U32 sw_dmsr_obv_point_v  : 12;
181         RK_U32 sw_dmsr_obv_enable   : 1;
182         RK_U32 sw_dmsr_obv_mode     : 1;
183     } reg20;         /* 0x00D0 */
184 };               /* offset: 0x1080 */
185 
186 
187 typedef struct {
188     RK_U16 act_width;
189     RK_U16 dsp_width;
190 
191     RK_U16 act_height;
192     RK_U16 dsp_height;
193 
194     RK_U8  dering_en;
195 
196     RK_U8  xsd_en;
197     RK_U8  xsu_en;
198     RK_U8  xsd_bypass;
199     RK_U8  xsu_bypass;
200     RK_U8  xscl_mode;
201     RK_U16 xscl_factor;
202     RK_U8  xscl_offset;
203 
204     RK_U8  ysd_en;
205     RK_U8  ysu_en;
206     RK_U8  ys_bypass;
207     RK_U8  yscl_mode;
208     RK_U16 yscl_factor;
209     RK_U8  yscl_offset;
210 
211     RK_U8  xavg_en;
212     RK_U8  xgt_en;
213     RK_U8  xgt_mode;
214 
215     RK_U8  yavg_en;
216     RK_U8  ygt_en;
217     RK_U8  ygt_mode;
218 
219     RK_S16 (*xscl_zme_coe)[8];
220     RK_S16 (*yscl_zme_coe)[8];
221 } scl_info;
222 
223 typedef struct FdTransInfo_t {
224     RK_U32        reg_idx;
225     RK_U32        offset;
226 } RegOffsetInfo;
227 
228 struct vdpp_addr {
229     RK_U32 y;
230     RK_U32 cbcr;
231     RK_U32 cbcr_offset;
232 };
233 
234 struct zme_params {
235     RK_U32 zme_bypass_en;
236     RK_U32 zme_dering_enable;
237     RK_U32 zme_dering_sen_0;
238     RK_U32 zme_dering_sen_1;
239     RK_U32 zme_dering_blend_alpha;
240     RK_U32 zme_dering_blend_beta;
241     RK_S16 (*zme_tap8_coeff)[17][8];
242     RK_S16 (*zme_tap6_coeff)[17][8];
243 
244     /* for scl_info */
245     RK_U32 src_width;
246     RK_U32 src_height;
247     RK_U32 dst_width;
248     RK_U32 dst_height;
249     RK_U32 dst_fmt;
250     /* 3576 feature */
251     RK_U32 yuv_out_diff;
252     RK_U32 dst_c_width;
253     RK_U32 dst_c_height;
254 };
255 
256 
257 struct zme_reg {
258     struct {
259         struct {
260             RK_U32 yrgb_hor_coe0_0  : 10;
261             RK_U32 sw_reserved_1    : 6;
262             RK_U32 yrgb_hor_coe0_1  : 10;
263         } reg0;         /* 0x0000 */
264         struct {
265             RK_U32 yrgb_hor_coe0_2  : 10;
266             RK_U32 sw_reserved_1    : 6;
267             RK_U32 yrgb_hor_coe0_3  : 10;
268         } reg1;         /* 0x0004 */
269         struct {
270             RK_U32 yrgb_hor_coe0_4  : 10;
271             RK_U32 sw_reserved_1    : 6;
272             RK_U32 yrgb_hor_coe0_5  : 10;
273         } reg2;         /* 0x0008 */
274         struct {
275             RK_U32 yrgb_hor_coe0_6  : 10;
276             RK_U32 sw_reserved_1    : 6;
277             RK_U32 yrgb_hor_coe0_7  : 10;
278         } reg3;         /* 0x000c */
279         struct {
280             RK_U32 yrgb_hor_coe1_0  : 10;
281             RK_U32 sw_reserved_1    : 6;
282             RK_U32 yrgb_hor_coe1_1  : 10;
283         } reg4;         /* 0x0010 */
284         struct {
285             RK_U32 yrgb_hor_coe1_2  : 10;
286             RK_U32 sw_reserved_1    : 6;
287             RK_U32 yrgb_hor_coe1_3  : 10;
288         } reg5;         /* 0x0014 */
289         struct {
290             RK_U32 yrgb_hor_coe1_4  : 10;
291             RK_U32 sw_reserved_1    : 6;
292             RK_U32 yrgb_hor_coe1_5  : 10;
293         } reg6;         /* 0x0018 */
294         struct {
295             RK_U32 yrgb_hor_coe1_6  : 10;
296             RK_U32 sw_reserved_1    : 6;
297             RK_U32 yrgb_hor_coe1_7  : 10;
298         } reg7;         /* 0x001c */
299         struct {
300             RK_U32 yrgb_hor_coe2_0  : 10;
301             RK_U32 sw_reserved_1    : 6;
302             RK_U32 yrgb_hor_coe2_1  : 10;
303         } reg8;         /* 0x0020 */
304         struct {
305             RK_U32 yrgb_hor_coe2_2  : 10;
306             RK_U32 sw_reserved_1    : 6;
307             RK_U32 yrgb_hor_coe2_3  : 10;
308         } reg9;         /* 0x0024 */
309         struct {
310             RK_U32 yrgb_hor_coe2_4  : 10;
311             RK_U32 sw_reserved_1    : 6;
312             RK_U32 yrgb_hor_coe2_5  : 10;
313         } reg10;         /* 0x0028 */
314         struct {
315             RK_U32 yrgb_hor_coe2_6  : 10;
316             RK_U32 sw_reserved_1    : 6;
317             RK_U32 yrgb_hor_coe2_7  : 10;
318         } reg11;         /* 0x002c */
319         struct {
320             RK_U32 yrgb_hor_coe3_0  : 10;
321             RK_U32 sw_reserved_1    : 6;
322             RK_U32 yrgb_hor_coe3_1  : 10;
323         } reg12;         /* 0x0030 */
324         struct {
325             RK_U32 yrgb_hor_coe3_2  : 10;
326             RK_U32 sw_reserved_1    : 6;
327             RK_U32 yrgb_hor_coe3_3  : 10;
328         } reg13;         /* 0x0034 */
329         struct {
330             RK_U32 yrgb_hor_coe3_4  : 10;
331             RK_U32 sw_reserved_1    : 6;
332             RK_U32 yrgb_hor_coe3_5  : 10;
333         } reg14;         /* 0x0038 */
334         struct {
335             RK_U32 yrgb_hor_coe3_6  : 10;
336             RK_U32 sw_reserved_1    : 6;
337             RK_U32 yrgb_hor_coe3_7  : 10;
338         } reg15;         /* 0x003c */
339         struct {
340             RK_U32 yrgb_hor_coe4_0  : 10;
341             RK_U32 sw_reserved_1    : 6;
342             RK_U32 yrgb_hor_coe4_1  : 10;
343         } reg16;         /* 0x0040 */
344         struct {
345             RK_U32 yrgb_hor_coe4_2  : 10;
346             RK_U32 sw_reserved_1    : 6;
347             RK_U32 yrgb_hor_coe4_3  : 10;
348         } reg17;         /* 0x0044 */
349         struct {
350             RK_U32 yrgb_hor_coe4_4  : 10;
351             RK_U32 sw_reserved_1    : 6;
352             RK_U32 yrgb_hor_coe4_5  : 10;
353         } reg18;         /* 0x0048 */
354         struct {
355             RK_U32 yrgb_hor_coe4_6  : 10;
356             RK_U32 sw_reserved_1    : 6;
357             RK_U32 yrgb_hor_coe4_7  : 10;
358         } reg19;         /* 0x004c */
359         struct {
360             RK_U32 yrgb_hor_coe5_0  : 10;
361             RK_U32 sw_reserved_1    : 6;
362             RK_U32 yrgb_hor_coe5_1  : 10;
363         } reg20;         /* 0x0050 */
364         struct {
365             RK_U32 yrgb_hor_coe5_2  : 10;
366             RK_U32 sw_reserved_1    : 6;
367             RK_U32 yrgb_hor_coe5_3  : 10;
368         } reg21;         /* 0x0054 */
369         struct {
370             RK_U32 yrgb_hor_coe5_4  : 10;
371             RK_U32 sw_reserved_1    : 6;
372             RK_U32 yrgb_hor_coe5_5  : 10;
373         } reg22;         /* 0x0058 */
374         struct {
375             RK_U32 yrgb_hor_coe5_6  : 10;
376             RK_U32 sw_reserved_1    : 6;
377             RK_U32 yrgb_hor_coe5_7  : 10;
378         } reg23;         /* 0x005c */
379         struct {
380             RK_U32 yrgb_hor_coe6_0  : 10;
381             RK_U32 sw_reserved_1    : 6;
382             RK_U32 yrgb_hor_coe6_1  : 10;
383         } reg24;         /* 0x0060 */
384         struct {
385             RK_U32 yrgb_hor_coe6_2  : 10;
386             RK_U32 sw_reserved_1    : 6;
387             RK_U32 yrgb_hor_coe6_3  : 10;
388         } reg25;         /* 0x0064 */
389         struct {
390             RK_U32 yrgb_hor_coe6_4  : 10;
391             RK_U32 sw_reserved_1    : 6;
392             RK_U32 yrgb_hor_coe6_5  : 10;
393         } reg26;         /* 0x0068 */
394         struct {
395             RK_U32 yrgb_hor_coe6_6  : 10;
396             RK_U32 sw_reserved_1    : 6;
397             RK_U32 yrgb_hor_coe6_7  : 10;
398         } reg27;         /* 0x006c */
399         struct {
400             RK_U32 yrgb_hor_coe7_0  : 10;
401             RK_U32 sw_reserved_1    : 6;
402             RK_U32 yrgb_hor_coe7_1  : 10;
403         } reg28;         /* 0x0070 */
404         struct {
405             RK_U32 yrgb_hor_coe7_2  : 10;
406             RK_U32 sw_reserved_1    : 6;
407             RK_U32 yrgb_hor_coe7_3  : 10;
408         } reg29;         /* 0x0074 */
409         struct {
410             RK_U32 yrgb_hor_coe7_4  : 10;
411             RK_U32 sw_reserved_1    : 6;
412             RK_U32 yrgb_hor_coe7_5  : 10;
413         } reg30;         /* 0x0078 */
414         struct {
415             RK_U32 yrgb_hor_coe7_6  : 10;
416             RK_U32 sw_reserved_1    : 6;
417             RK_U32 yrgb_hor_coe7_7  : 10;
418         } reg31;         /* 0x007c */
419         struct {
420             RK_U32 yrgb_hor_coe8_0  : 10;
421             RK_U32 sw_reserved_1    : 6;
422             RK_U32 yrgb_hor_coe8_1  : 10;
423         } reg32;         /* 0x0080 */
424         struct {
425             RK_U32 yrgb_hor_coe8_2  : 10;
426             RK_U32 sw_reserved_1    : 6;
427             RK_U32 yrgb_hor_coe8_3  : 10;
428         } reg33;         /* 0x0084 */
429         struct {
430             RK_U32 yrgb_hor_coe8_4  : 10;
431             RK_U32 sw_reserved_1    : 6;
432             RK_U32 yrgb_hor_coe8_5  : 10;
433         } reg34;         /* 0x0088 */
434         struct {
435             RK_U32 yrgb_hor_coe8_6  : 10;
436             RK_U32 sw_reserved_1    : 6;
437             RK_U32 yrgb_hor_coe8_7  : 10;
438         } reg35;         /* 0x008c */
439         struct {
440             RK_U32 yrgb_hor_coe9_0  : 10;
441             RK_U32 sw_reserved_1    : 6;
442             RK_U32 yrgb_hor_coe9_1  : 10;
443         } reg36;         /* 0x0090 */
444         struct {
445             RK_U32 yrgb_hor_coe9_2  : 10;
446             RK_U32 sw_reserved_1    : 6;
447             RK_U32 yrgb_hor_coe9_3  : 10;
448         } reg37;         /* 0x0094 */
449         struct {
450             RK_U32 yrgb_hor_coe9_4  : 10;
451             RK_U32 sw_reserved_1    : 6;
452             RK_U32 yrgb_hor_coe9_5  : 10;
453         } reg38;         /* 0x0098 */
454         struct {
455             RK_U32 yrgb_hor_coe9_6  : 10;
456             RK_U32 sw_reserved_1    : 6;
457             RK_U32 yrgb_hor_coe9_7  : 10;
458         } reg39;         /* 0x009c */
459         struct {
460             RK_U32 yrgb_hor_coe10_0  : 10;
461             RK_U32 sw_reserved_1    : 6;
462             RK_U32 yrgb_hor_coe10_1  : 10;
463         } reg40;         /* 0x00a0 */
464         struct {
465             RK_U32 yrgb_hor_coe10_2  : 10;
466             RK_U32 sw_reserved_1    : 6;
467             RK_U32 yrgb_hor_coe10_3  : 10;
468         } reg41;         /* 0x00a4 */
469         struct {
470             RK_U32 yrgb_hor_coe10_4  : 10;
471             RK_U32 sw_reserved_1    : 6;
472             RK_U32 yrgb_hor_coe10_5  : 10;
473         } reg42;         /* 0x00a8 */
474         struct {
475             RK_U32 yrgb_hor_coe10_6  : 10;
476             RK_U32 sw_reserved_1    : 6;
477             RK_U32 yrgb_hor_coe10_7  : 10;
478         } reg43;         /* 0x00ac */
479         struct {
480             RK_U32 yrgb_hor_coe11_0  : 10;
481             RK_U32 sw_reserved_1    : 6;
482             RK_U32 yrgb_hor_coe11_1  : 10;
483         } reg44;         /* 0x00b0 */
484         struct {
485             RK_U32 yrgb_hor_coe11_2  : 10;
486             RK_U32 sw_reserved_1    : 6;
487             RK_U32 yrgb_hor_coe11_3  : 10;
488         } reg45;         /* 0x00b4 */
489         struct {
490             RK_U32 yrgb_hor_coe11_4  : 10;
491             RK_U32 sw_reserved_1    : 6;
492             RK_U32 yrgb_hor_coe11_5  : 10;
493         } reg46;         /* 0x00b8 */
494         struct {
495             RK_U32 yrgb_hor_coe11_6  : 10;
496             RK_U32 sw_reserved_1    : 6;
497             RK_U32 yrgb_hor_coe11_7  : 10;
498         } reg47;         /* 0x00bc */
499         struct {
500             RK_U32 yrgb_hor_coe12_0  : 10;
501             RK_U32 sw_reserved_1    : 6;
502             RK_U32 yrgb_hor_coe12_1  : 10;
503         } reg48;         /* 0x00c0 */
504         struct {
505             RK_U32 yrgb_hor_coe12_2  : 10;
506             RK_U32 sw_reserved_1    : 6;
507             RK_U32 yrgb_hor_coe12_3  : 10;
508         } reg49;         /* 0x00c4 */
509         struct {
510             RK_U32 yrgb_hor_coe12_4  : 10;
511             RK_U32 sw_reserved_1    : 6;
512             RK_U32 yrgb_hor_coe12_5  : 10;
513         } reg50;         /* 0x00c8 */
514         struct {
515             RK_U32 yrgb_hor_coe12_6  : 10;
516             RK_U32 sw_reserved_1    : 6;
517             RK_U32 yrgb_hor_coe12_7  : 10;
518         } reg51;         /* 0x00cc */
519         struct {
520             RK_U32 yrgb_hor_coe13_0  : 10;
521             RK_U32 sw_reserved_1    : 6;
522             RK_U32 yrgb_hor_coe13_1  : 10;
523         } reg52;         /* 0x00d0 */
524         struct {
525             RK_U32 yrgb_hor_coe13_2  : 10;
526             RK_U32 sw_reserved_1    : 6;
527             RK_U32 yrgb_hor_coe13_3  : 10;
528         } reg53;         /* 0x00d4 */
529         struct {
530             RK_U32 yrgb_hor_coe13_4  : 10;
531             RK_U32 sw_reserved_1    : 6;
532             RK_U32 yrgb_hor_coe13_5  : 10;
533         } reg54;         /* 0x00d8 */
534         struct {
535             RK_U32 yrgb_hor_coe13_6  : 10;
536             RK_U32 sw_reserved_1    : 6;
537             RK_U32 yrgb_hor_coe13_7  : 10;
538         } reg55;         /* 0x00dc */
539         struct {
540             RK_U32 yrgb_hor_coe14_0  : 10;
541             RK_U32 sw_reserved_1    : 6;
542             RK_U32 yrgb_hor_coe14_1  : 10;
543         } reg56;         /* 0x00e0 */
544         struct {
545             RK_U32 yrgb_hor_coe14_2  : 10;
546             RK_U32 sw_reserved_1    : 6;
547             RK_U32 yrgb_hor_coe14_3  : 10;
548         } reg57;         /* 0x00e4 */
549         struct {
550             RK_U32 yrgb_hor_coe14_4  : 10;
551             RK_U32 sw_reserved_1    : 6;
552             RK_U32 yrgb_hor_coe14_5  : 10;
553         } reg58;         /* 0x00e8 */
554         struct {
555             RK_U32 yrgb_hor_coe14_6  : 10;
556             RK_U32 sw_reserved_1    : 6;
557             RK_U32 yrgb_hor_coe14_7  : 10;
558         } reg59;         /* 0x00ec */
559         struct {
560             RK_U32 yrgb_hor_coe15_0  : 10;
561             RK_U32 sw_reserved_1    : 6;
562             RK_U32 yrgb_hor_coe15_1  : 10;
563         } reg60;         /* 0x00f0 */
564         struct {
565             RK_U32 yrgb_hor_coe15_2  : 10;
566             RK_U32 sw_reserved_1    : 6;
567             RK_U32 yrgb_hor_coe15_3  : 10;
568         } reg61;         /* 0x00f4 */
569         struct {
570             RK_U32 yrgb_hor_coe15_4  : 10;
571             RK_U32 sw_reserved_1    : 6;
572             RK_U32 yrgb_hor_coe15_5  : 10;
573         } reg62;         /* 0x00f8 */
574         struct {
575             RK_U32 yrgb_hor_coe15_6  : 10;
576             RK_U32 sw_reserved_1    : 6;
577             RK_U32 yrgb_hor_coe15_7  : 10;
578         } reg63;         /* 0x00fc */
579         struct {
580             RK_U32 yrgb_hor_coe16_0  : 10;
581             RK_U32 sw_reserved_1    : 6;
582             RK_U32 yrgb_hor_coe16_1  : 10;
583         } reg64;         /* 0x0100 */
584         struct {
585             RK_U32 yrgb_hor_coe16_2  : 10;
586             RK_U32 sw_reserved_1    : 6;
587             RK_U32 yrgb_hor_coe16_3  : 10;
588         } reg65;         /* 0x0104 */
589         struct {
590             RK_U32 yrgb_hor_coe16_4  : 10;
591             RK_U32 sw_reserved_1    : 6;
592             RK_U32 yrgb_hor_coe16_5  : 10;
593         } reg66;         /* 0x0108 */
594         struct {
595             RK_U32 yrgb_hor_coe16_6  : 10;
596             RK_U32 sw_reserved_1    : 6;
597             RK_U32 yrgb_hor_coe16_7  : 10;
598         } reg67;         /* 0x010c */
599 
600     } yrgb_hor_coe;
601 
602     struct {
603         struct {
604             RK_U32 yrgb_ver_coe0_0  : 10;
605             RK_U32 sw_reserved_1    : 6;
606             RK_U32 yrgb_ver_coe0_1  : 10;
607         } reg0;         /* 0x0200 */
608         struct {
609             RK_U32 yrgb_ver_coe0_2  : 10;
610             RK_U32 sw_reserved_1    : 6;
611             RK_U32 yrgb_ver_coe0_3  : 10;
612         } reg1;         /* 0x0204 */
613         struct {
614             RK_U32 yrgb_ver_coe0_4  : 10;
615             RK_U32 sw_reserved_1    : 6;
616             RK_U32 yrgb_ver_coe0_5  : 10;
617         } reg2;         /* 0x0208 */
618         struct {
619             RK_U32 yrgb_ver_coe0_6  : 10;
620             RK_U32 sw_reserved_1    : 6;
621             RK_U32 yrgb_ver_coe0_7  : 10;
622         } reg3;         /* 0x020c */
623         struct {
624             RK_U32 yrgb_ver_coe1_0  : 10;
625             RK_U32 sw_reserved_1    : 6;
626             RK_U32 yrgb_ver_coe1_1  : 10;
627         } reg4;         /* 0x0210 */
628         struct {
629             RK_U32 yrgb_ver_coe1_2  : 10;
630             RK_U32 sw_reserved_1    : 6;
631             RK_U32 yrgb_ver_coe1_3  : 10;
632         } reg5;         /* 0x0214 */
633         struct {
634             RK_U32 yrgb_ver_coe1_4  : 10;
635             RK_U32 sw_reserved_1    : 6;
636             RK_U32 yrgb_ver_coe1_5  : 10;
637         } reg6;         /* 0x0218 */
638         struct {
639             RK_U32 yrgb_ver_coe1_6  : 10;
640             RK_U32 sw_reserved_1    : 6;
641             RK_U32 yrgb_ver_coe1_7  : 10;
642         } reg7;         /* 0x021c */
643         struct {
644             RK_U32 yrgb_ver_coe2_0  : 10;
645             RK_U32 sw_reserved_1    : 6;
646             RK_U32 yrgb_ver_coe2_1  : 10;
647         } reg8;         /* 0x0220 */
648         struct {
649             RK_U32 yrgb_ver_coe2_2  : 10;
650             RK_U32 sw_reserved_1    : 6;
651             RK_U32 yrgb_ver_coe2_3  : 10;
652         } reg9;         /* 0x0224 */
653         struct {
654             RK_U32 yrgb_ver_coe2_4  : 10;
655             RK_U32 sw_reserved_1    : 6;
656             RK_U32 yrgb_ver_coe2_5  : 10;
657         } reg10;         /* 0x0228 */
658         struct {
659             RK_U32 yrgb_ver_coe2_6  : 10;
660             RK_U32 sw_reserved_1    : 6;
661             RK_U32 yrgb_ver_coe2_7  : 10;
662         } reg11;         /* 0x022c */
663         struct {
664             RK_U32 yrgb_ver_coe3_0  : 10;
665             RK_U32 sw_reserved_1    : 6;
666             RK_U32 yrgb_ver_coe3_1  : 10;
667         } reg12;         /* 0x0230 */
668         struct {
669             RK_U32 yrgb_ver_coe3_2  : 10;
670             RK_U32 sw_reserved_1    : 6;
671             RK_U32 yrgb_ver_coe3_3  : 10;
672         } reg13;         /* 0x0234 */
673         struct {
674             RK_U32 yrgb_ver_coe3_4  : 10;
675             RK_U32 sw_reserved_1    : 6;
676             RK_U32 yrgb_ver_coe3_5  : 10;
677         } reg14;         /* 0x0238 */
678         struct {
679             RK_U32 yrgb_ver_coe3_6  : 10;
680             RK_U32 sw_reserved_1    : 6;
681             RK_U32 yrgb_ver_coe3_7  : 10;
682         } reg15;         /* 0x023c */
683         struct {
684             RK_U32 yrgb_ver_coe4_0  : 10;
685             RK_U32 sw_reserved_1    : 6;
686             RK_U32 yrgb_ver_coe4_1  : 10;
687         } reg16;         /* 0x0240 */
688         struct {
689             RK_U32 yrgb_ver_coe4_2  : 10;
690             RK_U32 sw_reserved_1    : 6;
691             RK_U32 yrgb_ver_coe4_3  : 10;
692         } reg17;         /* 0x0244 */
693         struct {
694             RK_U32 yrgb_ver_coe4_4  : 10;
695             RK_U32 sw_reserved_1    : 6;
696             RK_U32 yrgb_ver_coe4_5  : 10;
697         } reg18;         /* 0x0248 */
698         struct {
699             RK_U32 yrgb_ver_coe4_6  : 10;
700             RK_U32 sw_reserved_1    : 6;
701             RK_U32 yrgb_ver_coe4_7  : 10;
702         } reg19;         /* 0x024c */
703         struct {
704             RK_U32 yrgb_ver_coe5_0  : 10;
705             RK_U32 sw_reserved_1    : 6;
706             RK_U32 yrgb_ver_coe5_1  : 10;
707         } reg20;         /* 0x0250 */
708         struct {
709             RK_U32 yrgb_ver_coe5_2  : 10;
710             RK_U32 sw_reserved_1    : 6;
711             RK_U32 yrgb_ver_coe5_3  : 10;
712         } reg21;         /* 0x0254 */
713         struct {
714             RK_U32 yrgb_ver_coe5_4  : 10;
715             RK_U32 sw_reserved_1    : 6;
716             RK_U32 yrgb_ver_coe5_5  : 10;
717         } reg22;         /* 0x0258 */
718         struct {
719             RK_U32 yrgb_ver_coe5_6  : 10;
720             RK_U32 sw_reserved_1    : 6;
721             RK_U32 yrgb_ver_coe5_7  : 10;
722         } reg23;         /* 0x025c */
723         struct {
724             RK_U32 yrgb_ver_coe6_0  : 10;
725             RK_U32 sw_reserved_1    : 6;
726             RK_U32 yrgb_ver_coe6_1  : 10;
727         } reg24;         /* 0x0260 */
728         struct {
729             RK_U32 yrgb_ver_coe6_2  : 10;
730             RK_U32 sw_reserved_1    : 6;
731             RK_U32 yrgb_ver_coe6_3  : 10;
732         } reg25;         /* 0x0264 */
733         struct {
734             RK_U32 yrgb_ver_coe6_4  : 10;
735             RK_U32 sw_reserved_1    : 6;
736             RK_U32 yrgb_ver_coe6_5  : 10;
737         } reg26;         /* 0x0268 */
738         struct {
739             RK_U32 yrgb_ver_coe6_6  : 10;
740             RK_U32 sw_reserved_1    : 6;
741             RK_U32 yrgb_ver_coe6_7  : 10;
742         } reg27;         /* 0x026c */
743         struct {
744             RK_U32 yrgb_ver_coe7_0  : 10;
745             RK_U32 sw_reserved_1    : 6;
746             RK_U32 yrgb_ver_coe7_1  : 10;
747         } reg28;         /* 0x0270 */
748         struct {
749             RK_U32 yrgb_ver_coe7_2  : 10;
750             RK_U32 sw_reserved_1    : 6;
751             RK_U32 yrgb_ver_coe7_3  : 10;
752         } reg29;         /* 0x0274 */
753         struct {
754             RK_U32 yrgb_ver_coe7_4  : 10;
755             RK_U32 sw_reserved_1    : 6;
756             RK_U32 yrgb_ver_coe7_5  : 10;
757         } reg30;         /* 0x0278 */
758         struct {
759             RK_U32 yrgb_ver_coe7_6  : 10;
760             RK_U32 sw_reserved_1    : 6;
761             RK_U32 yrgb_ver_coe7_7  : 10;
762         } reg31;         /* 0x027c */
763         struct {
764             RK_U32 yrgb_ver_coe8_0  : 10;
765             RK_U32 sw_reserved_1    : 6;
766             RK_U32 yrgb_ver_coe8_1  : 10;
767         } reg32;         /* 0x0280 */
768         struct {
769             RK_U32 yrgb_ver_coe8_2  : 10;
770             RK_U32 sw_reserved_1    : 6;
771             RK_U32 yrgb_ver_coe8_3  : 10;
772         } reg33;         /* 0x0284 */
773         struct {
774             RK_U32 yrgb_ver_coe8_4  : 10;
775             RK_U32 sw_reserved_1    : 6;
776             RK_U32 yrgb_ver_coe8_5  : 10;
777         } reg34;         /* 0x0288 */
778         struct {
779             RK_U32 yrgb_ver_coe8_6  : 10;
780             RK_U32 sw_reserved_1    : 6;
781             RK_U32 yrgb_ver_coe8_7  : 10;
782         } reg35;         /* 0x028c */
783         struct {
784             RK_U32 yrgb_ver_coe9_0  : 10;
785             RK_U32 sw_reserved_1    : 6;
786             RK_U32 yrgb_ver_coe9_1  : 10;
787         } reg36;         /* 0x0290 */
788         struct {
789             RK_U32 yrgb_ver_coe9_2  : 10;
790             RK_U32 sw_reserved_1    : 6;
791             RK_U32 yrgb_ver_coe9_3  : 10;
792         } reg37;         /* 0x0294 */
793         struct {
794             RK_U32 yrgb_ver_coe9_4  : 10;
795             RK_U32 sw_reserved_1    : 6;
796             RK_U32 yrgb_ver_coe9_5  : 10;
797         } reg38;         /* 0x0298 */
798         struct {
799             RK_U32 yrgb_ver_coe9_6  : 10;
800             RK_U32 sw_reserved_1    : 6;
801             RK_U32 yrgb_ver_coe9_7  : 10;
802         } reg39;         /* 0x029c */
803         struct {
804             RK_U32 yrgb_ver_coe10_0  : 10;
805             RK_U32 sw_reserved_1    : 6;
806             RK_U32 yrgb_ver_coe10_1  : 10;
807         } reg40;         /* 0x02a0 */
808         struct {
809             RK_U32 yrgb_ver_coe10_2  : 10;
810             RK_U32 sw_reserved_1    : 6;
811             RK_U32 yrgb_ver_coe10_3  : 10;
812         } reg41;         /* 0x02a4 */
813         struct {
814             RK_U32 yrgb_ver_coe10_4  : 10;
815             RK_U32 sw_reserved_1    : 6;
816             RK_U32 yrgb_ver_coe10_5  : 10;
817         } reg42;         /* 0x02a8 */
818         struct {
819             RK_U32 yrgb_ver_coe10_6  : 10;
820             RK_U32 sw_reserved_1    : 6;
821             RK_U32 yrgb_ver_coe10_7  : 10;
822         } reg43;         /* 0x02ac */
823         struct {
824             RK_U32 yrgb_ver_coe11_0  : 10;
825             RK_U32 sw_reserved_1    : 6;
826             RK_U32 yrgb_ver_coe11_1  : 10;
827         } reg44;         /* 0x02b0 */
828         struct {
829             RK_U32 yrgb_ver_coe11_2  : 10;
830             RK_U32 sw_reserved_1    : 6;
831             RK_U32 yrgb_ver_coe11_3  : 10;
832         } reg45;         /* 0x02b4 */
833         struct {
834             RK_U32 yrgb_ver_coe11_4  : 10;
835             RK_U32 sw_reserved_1    : 6;
836             RK_U32 yrgb_ver_coe11_5  : 10;
837         } reg46;         /* 0x02b8 */
838         struct {
839             RK_U32 yrgb_ver_coe11_6  : 10;
840             RK_U32 sw_reserved_1    : 6;
841             RK_U32 yrgb_ver_coe11_7  : 10;
842         } reg47;         /* 0x02bc */
843         struct {
844             RK_U32 yrgb_ver_coe12_0  : 10;
845             RK_U32 sw_reserved_1    : 6;
846             RK_U32 yrgb_ver_coe12_1  : 10;
847         } reg48;         /* 0x02c0 */
848         struct {
849             RK_U32 yrgb_ver_coe12_2  : 10;
850             RK_U32 sw_reserved_1    : 6;
851             RK_U32 yrgb_ver_coe12_3  : 10;
852         } reg49;         /* 0x02c4 */
853         struct {
854             RK_U32 yrgb_ver_coe12_4  : 10;
855             RK_U32 sw_reserved_1    : 6;
856             RK_U32 yrgb_ver_coe12_5  : 10;
857         } reg50;         /* 0x02c8 */
858         struct {
859             RK_U32 yrgb_ver_coe12_6  : 10;
860             RK_U32 sw_reserved_1    : 6;
861             RK_U32 yrgb_ver_coe12_7  : 10;
862         } reg51;         /* 0x02cc */
863         struct {
864             RK_U32 yrgb_ver_coe13_0  : 10;
865             RK_U32 sw_reserved_1    : 6;
866             RK_U32 yrgb_ver_coe13_1  : 10;
867         } reg52;         /* 0x02d0 */
868         struct {
869             RK_U32 yrgb_ver_coe13_2  : 10;
870             RK_U32 sw_reserved_1    : 6;
871             RK_U32 yrgb_ver_coe13_3  : 10;
872         } reg53;         /* 0x02d4 */
873         struct {
874             RK_U32 yrgb_ver_coe13_4  : 10;
875             RK_U32 sw_reserved_1    : 6;
876             RK_U32 yrgb_ver_coe13_5  : 10;
877         } reg54;         /* 0x02d8 */
878         struct {
879             RK_U32 yrgb_ver_coe13_6  : 10;
880             RK_U32 sw_reserved_1    : 6;
881             RK_U32 yrgb_ver_coe13_7  : 10;
882         } reg55;         /* 0x02dc */
883         struct {
884             RK_U32 yrgb_ver_coe14_0  : 10;
885             RK_U32 sw_reserved_1    : 6;
886             RK_U32 yrgb_ver_coe14_1  : 10;
887         } reg56;         /* 0x02e0 */
888         struct {
889             RK_U32 yrgb_ver_coe14_2  : 10;
890             RK_U32 sw_reserved_1    : 6;
891             RK_U32 yrgb_ver_coe14_3  : 10;
892         } reg57;         /* 0x02e4 */
893         struct {
894             RK_U32 yrgb_ver_coe14_4  : 10;
895             RK_U32 sw_reserved_1    : 6;
896             RK_U32 yrgb_ver_coe14_5  : 10;
897         } reg58;         /* 0x02e8 */
898         struct {
899             RK_U32 yrgb_ver_coe14_6  : 10;
900             RK_U32 sw_reserved_1    : 6;
901             RK_U32 yrgb_ver_coe14_7  : 10;
902         } reg59;         /* 0x02ec */
903         struct {
904             RK_U32 yrgb_ver_coe15_0  : 10;
905             RK_U32 sw_reserved_1    : 6;
906             RK_U32 yrgb_ver_coe15_1  : 10;
907         } reg60;         /* 0x02f0 */
908         struct {
909             RK_U32 yrgb_ver_coe15_2  : 10;
910             RK_U32 sw_reserved_1    : 6;
911             RK_U32 yrgb_ver_coe15_3  : 10;
912         } reg61;         /* 0x02f4 */
913         struct {
914             RK_U32 yrgb_ver_coe15_4  : 10;
915             RK_U32 sw_reserved_1    : 6;
916             RK_U32 yrgb_ver_coe15_5  : 10;
917         } reg62;         /* 0x02f8 */
918         struct {
919             RK_U32 yrgb_ver_coe15_6  : 10;
920             RK_U32 sw_reserved_1    : 6;
921             RK_U32 yrgb_ver_coe15_7  : 10;
922         } reg63;         /* 0x02fc */
923         struct {
924             RK_U32 yrgb_ver_coe16_0  : 10;
925             RK_U32 sw_reserved_1    : 6;
926             RK_U32 yrgb_ver_coe16_1  : 10;
927         } reg64;         /* 0x0300 */
928         struct {
929             RK_U32 yrgb_ver_coe16_2  : 10;
930             RK_U32 sw_reserved_1    : 6;
931             RK_U32 yrgb_ver_coe16_3  : 10;
932         } reg65;         /* 0x0304 */
933         struct {
934             RK_U32 yrgb_ver_coe16_4  : 10;
935             RK_U32 sw_reserved_1    : 6;
936             RK_U32 yrgb_ver_coe16_5  : 10;
937         } reg66;         /* 0x0308 */
938         struct {
939             RK_U32 yrgb_ver_coe16_6  : 10;
940             RK_U32 sw_reserved_1    : 6;
941             RK_U32 yrgb_ver_coe16_7  : 10;
942         } reg67;         /* 0x030c */
943 
944     } yrgb_ver_coe;
945 
946     struct {
947         struct {
948             RK_U32 cbcr_hor_coe0_0  : 10;
949             RK_U32 sw_reserved_1    : 6;
950             RK_U32 cbcr_hor_coe0_1  : 10;
951         } reg0;         /* 0x0400 */
952         struct {
953             RK_U32 cbcr_hor_coe0_2  : 10;
954             RK_U32 sw_reserved_1    : 6;
955             RK_U32 cbcr_hor_coe0_3  : 10;
956         } reg1;         /* 0x0404 */
957         struct {
958             RK_U32 cbcr_hor_coe0_4  : 10;
959             RK_U32 sw_reserved_1    : 6;
960             RK_U32 cbcr_hor_coe0_5  : 10;
961         } reg2;         /* 0x0408 */
962         struct {
963             RK_U32 cbcr_hor_coe0_6  : 10;
964             RK_U32 sw_reserved_1    : 6;
965             RK_U32 cbcr_hor_coe0_7  : 10;
966         } reg3;         /* 0x040c */
967         struct {
968             RK_U32 cbcr_hor_coe1_0  : 10;
969             RK_U32 sw_reserved_1    : 6;
970             RK_U32 cbcr_hor_coe1_1  : 10;
971         } reg4;         /* 0x0410 */
972         struct {
973             RK_U32 cbcr_hor_coe1_2  : 10;
974             RK_U32 sw_reserved_1    : 6;
975             RK_U32 cbcr_hor_coe1_3  : 10;
976         } reg5;         /* 0x0414 */
977         struct {
978             RK_U32 cbcr_hor_coe1_4  : 10;
979             RK_U32 sw_reserved_1    : 6;
980             RK_U32 cbcr_hor_coe1_5  : 10;
981         } reg6;         /* 0x0418 */
982         struct {
983             RK_U32 cbcr_hor_coe1_6  : 10;
984             RK_U32 sw_reserved_1    : 6;
985             RK_U32 cbcr_hor_coe1_7  : 10;
986         } reg7;         /* 0x041c */
987         struct {
988             RK_U32 cbcr_hor_coe2_0  : 10;
989             RK_U32 sw_reserved_1    : 6;
990             RK_U32 cbcr_hor_coe2_1  : 10;
991         } reg8;         /* 0x0420 */
992         struct {
993             RK_U32 cbcr_hor_coe2_2  : 10;
994             RK_U32 sw_reserved_1    : 6;
995             RK_U32 cbcr_hor_coe2_3  : 10;
996         } reg9;         /* 0x0424 */
997         struct {
998             RK_U32 cbcr_hor_coe2_4  : 10;
999             RK_U32 sw_reserved_1    : 6;
1000             RK_U32 cbcr_hor_coe2_5  : 10;
1001         } reg10;         /* 0x0428 */
1002         struct {
1003             RK_U32 cbcr_hor_coe2_6  : 10;
1004             RK_U32 sw_reserved_1    : 6;
1005             RK_U32 cbcr_hor_coe2_7  : 10;
1006         } reg11;         /* 0x042c */
1007         struct {
1008             RK_U32 cbcr_hor_coe3_0  : 10;
1009             RK_U32 sw_reserved_1    : 6;
1010             RK_U32 cbcr_hor_coe3_1  : 10;
1011         } reg12;         /* 0x0430 */
1012         struct {
1013             RK_U32 cbcr_hor_coe3_2  : 10;
1014             RK_U32 sw_reserved_1    : 6;
1015             RK_U32 cbcr_hor_coe3_3  : 10;
1016         } reg13;         /* 0x0434 */
1017         struct {
1018             RK_U32 cbcr_hor_coe3_4  : 10;
1019             RK_U32 sw_reserved_1    : 6;
1020             RK_U32 cbcr_hor_coe3_5  : 10;
1021         } reg14;         /* 0x0438 */
1022         struct {
1023             RK_U32 cbcr_hor_coe3_6  : 10;
1024             RK_U32 sw_reserved_1    : 6;
1025             RK_U32 cbcr_hor_coe3_7  : 10;
1026         } reg15;         /* 0x043c */
1027         struct {
1028             RK_U32 cbcr_hor_coe4_0  : 10;
1029             RK_U32 sw_reserved_1    : 6;
1030             RK_U32 cbcr_hor_coe4_1  : 10;
1031         } reg16;         /* 0x0440 */
1032         struct {
1033             RK_U32 cbcr_hor_coe4_2  : 10;
1034             RK_U32 sw_reserved_1    : 6;
1035             RK_U32 cbcr_hor_coe4_3  : 10;
1036         } reg17;         /* 0x0444 */
1037         struct {
1038             RK_U32 cbcr_hor_coe4_4  : 10;
1039             RK_U32 sw_reserved_1    : 6;
1040             RK_U32 cbcr_hor_coe4_5  : 10;
1041         } reg18;         /* 0x0448 */
1042         struct {
1043             RK_U32 cbcr_hor_coe4_6  : 10;
1044             RK_U32 sw_reserved_1    : 6;
1045             RK_U32 cbcr_hor_coe4_7  : 10;
1046         } reg19;         /* 0x044c */
1047         struct {
1048             RK_U32 cbcr_hor_coe5_0  : 10;
1049             RK_U32 sw_reserved_1    : 6;
1050             RK_U32 cbcr_hor_coe5_1  : 10;
1051         } reg20;         /* 0x0450 */
1052         struct {
1053             RK_U32 cbcr_hor_coe5_2  : 10;
1054             RK_U32 sw_reserved_1    : 6;
1055             RK_U32 cbcr_hor_coe5_3  : 10;
1056         } reg21;         /* 0x0454 */
1057         struct {
1058             RK_U32 cbcr_hor_coe5_4  : 10;
1059             RK_U32 sw_reserved_1    : 6;
1060             RK_U32 cbcr_hor_coe5_5  : 10;
1061         } reg22;         /* 0x0458 */
1062         struct {
1063             RK_U32 cbcr_hor_coe5_6  : 10;
1064             RK_U32 sw_reserved_1    : 6;
1065             RK_U32 cbcr_hor_coe5_7  : 10;
1066         } reg23;         /* 0x045c */
1067         struct {
1068             RK_U32 cbcr_hor_coe6_0  : 10;
1069             RK_U32 sw_reserved_1    : 6;
1070             RK_U32 cbcr_hor_coe6_1  : 10;
1071         } reg24;         /* 0x0460 */
1072         struct {
1073             RK_U32 cbcr_hor_coe6_2  : 10;
1074             RK_U32 sw_reserved_1    : 6;
1075             RK_U32 cbcr_hor_coe6_3  : 10;
1076         } reg25;         /* 0x0464 */
1077         struct {
1078             RK_U32 cbcr_hor_coe6_4  : 10;
1079             RK_U32 sw_reserved_1    : 6;
1080             RK_U32 cbcr_hor_coe6_5  : 10;
1081         } reg26;         /* 0x0468 */
1082         struct {
1083             RK_U32 cbcr_hor_coe6_6  : 10;
1084             RK_U32 sw_reserved_1    : 6;
1085             RK_U32 cbcr_hor_coe6_7  : 10;
1086         } reg27;         /* 0x046c */
1087         struct {
1088             RK_U32 cbcr_hor_coe7_0  : 10;
1089             RK_U32 sw_reserved_1    : 6;
1090             RK_U32 cbcr_hor_coe7_1  : 10;
1091         } reg28;         /* 0x0470 */
1092         struct {
1093             RK_U32 cbcr_hor_coe7_2  : 10;
1094             RK_U32 sw_reserved_1    : 6;
1095             RK_U32 cbcr_hor_coe7_3  : 10;
1096         } reg29;         /* 0x0474 */
1097         struct {
1098             RK_U32 cbcr_hor_coe7_4  : 10;
1099             RK_U32 sw_reserved_1    : 6;
1100             RK_U32 cbcr_hor_coe7_5  : 10;
1101         } reg30;         /* 0x0478 */
1102         struct {
1103             RK_U32 cbcr_hor_coe7_6  : 10;
1104             RK_U32 sw_reserved_1    : 6;
1105             RK_U32 cbcr_hor_coe7_7  : 10;
1106         } reg31;         /* 0x047c */
1107         struct {
1108             RK_U32 cbcr_hor_coe8_0  : 10;
1109             RK_U32 sw_reserved_1    : 6;
1110             RK_U32 cbcr_hor_coe8_1  : 10;
1111         } reg32;         /* 0x0480 */
1112         struct {
1113             RK_U32 cbcr_hor_coe8_2  : 10;
1114             RK_U32 sw_reserved_1    : 6;
1115             RK_U32 cbcr_hor_coe8_3  : 10;
1116         } reg33;         /* 0x0484 */
1117         struct {
1118             RK_U32 cbcr_hor_coe8_4  : 10;
1119             RK_U32 sw_reserved_1    : 6;
1120             RK_U32 cbcr_hor_coe8_5  : 10;
1121         } reg34;         /* 0x0488 */
1122         struct {
1123             RK_U32 cbcr_hor_coe8_6  : 10;
1124             RK_U32 sw_reserved_1    : 6;
1125             RK_U32 cbcr_hor_coe8_7  : 10;
1126         } reg35;         /* 0x048c */
1127         struct {
1128             RK_U32 cbcr_hor_coe9_0  : 10;
1129             RK_U32 sw_reserved_1    : 6;
1130             RK_U32 cbcr_hor_coe9_1  : 10;
1131         } reg36;         /* 0x0490 */
1132         struct {
1133             RK_U32 cbcr_hor_coe9_2  : 10;
1134             RK_U32 sw_reserved_1    : 6;
1135             RK_U32 cbcr_hor_coe9_3  : 10;
1136         } reg37;         /* 0x0494 */
1137         struct {
1138             RK_U32 cbcr_hor_coe9_4  : 10;
1139             RK_U32 sw_reserved_1    : 6;
1140             RK_U32 cbcr_hor_coe9_5  : 10;
1141         } reg38;         /* 0x0498 */
1142         struct {
1143             RK_U32 cbcr_hor_coe9_6  : 10;
1144             RK_U32 sw_reserved_1    : 6;
1145             RK_U32 cbcr_hor_coe9_7  : 10;
1146         } reg39;         /* 0x049c */
1147         struct {
1148             RK_U32 cbcr_hor_coe10_0  : 10;
1149             RK_U32 sw_reserved_1    : 6;
1150             RK_U32 cbcr_hor_coe10_1  : 10;
1151         } reg40;         /* 0x04a0 */
1152         struct {
1153             RK_U32 cbcr_hor_coe10_2  : 10;
1154             RK_U32 sw_reserved_1    : 6;
1155             RK_U32 cbcr_hor_coe10_3  : 10;
1156         } reg41;         /* 0x04a4 */
1157         struct {
1158             RK_U32 cbcr_hor_coe10_4  : 10;
1159             RK_U32 sw_reserved_1    : 6;
1160             RK_U32 cbcr_hor_coe10_5  : 10;
1161         } reg42;         /* 0x04a8 */
1162         struct {
1163             RK_U32 cbcr_hor_coe10_6  : 10;
1164             RK_U32 sw_reserved_1    : 6;
1165             RK_U32 cbcr_hor_coe10_7  : 10;
1166         } reg43;         /* 0x04ac */
1167         struct {
1168             RK_U32 cbcr_hor_coe11_0  : 10;
1169             RK_U32 sw_reserved_1    : 6;
1170             RK_U32 cbcr_hor_coe11_1  : 10;
1171         } reg44;         /* 0x04b0 */
1172         struct {
1173             RK_U32 cbcr_hor_coe11_2  : 10;
1174             RK_U32 sw_reserved_1    : 6;
1175             RK_U32 cbcr_hor_coe11_3  : 10;
1176         } reg45;         /* 0x04b4 */
1177         struct {
1178             RK_U32 cbcr_hor_coe11_4  : 10;
1179             RK_U32 sw_reserved_1    : 6;
1180             RK_U32 cbcr_hor_coe11_5  : 10;
1181         } reg46;         /* 0x04b8 */
1182         struct {
1183             RK_U32 cbcr_hor_coe11_6  : 10;
1184             RK_U32 sw_reserved_1    : 6;
1185             RK_U32 cbcr_hor_coe11_7  : 10;
1186         } reg47;         /* 0x04bc */
1187         struct {
1188             RK_U32 cbcr_hor_coe12_0  : 10;
1189             RK_U32 sw_reserved_1    : 6;
1190             RK_U32 cbcr_hor_coe12_1  : 10;
1191         } reg48;         /* 0x04c0 */
1192         struct {
1193             RK_U32 cbcr_hor_coe12_2  : 10;
1194             RK_U32 sw_reserved_1    : 6;
1195             RK_U32 cbcr_hor_coe12_3  : 10;
1196         } reg49;         /* 0x04c4 */
1197         struct {
1198             RK_U32 cbcr_hor_coe12_4  : 10;
1199             RK_U32 sw_reserved_1    : 6;
1200             RK_U32 cbcr_hor_coe12_5  : 10;
1201         } reg50;         /* 0x04c8 */
1202         struct {
1203             RK_U32 cbcr_hor_coe12_6  : 10;
1204             RK_U32 sw_reserved_1    : 6;
1205             RK_U32 cbcr_hor_coe12_7  : 10;
1206         } reg51;         /* 0x04cc */
1207         struct {
1208             RK_U32 cbcr_hor_coe13_0  : 10;
1209             RK_U32 sw_reserved_1    : 6;
1210             RK_U32 cbcr_hor_coe13_1  : 10;
1211         } reg52;         /* 0x04d0 */
1212         struct {
1213             RK_U32 cbcr_hor_coe13_2  : 10;
1214             RK_U32 sw_reserved_1    : 6;
1215             RK_U32 cbcr_hor_coe13_3  : 10;
1216         } reg53;         /* 0x04d4 */
1217         struct {
1218             RK_U32 cbcr_hor_coe13_4  : 10;
1219             RK_U32 sw_reserved_1    : 6;
1220             RK_U32 cbcr_hor_coe13_5  : 10;
1221         } reg54;         /* 0x04d8 */
1222         struct {
1223             RK_U32 cbcr_hor_coe13_6  : 10;
1224             RK_U32 sw_reserved_1    : 6;
1225             RK_U32 cbcr_hor_coe13_7  : 10;
1226         } reg55;         /* 0x04dc */
1227         struct {
1228             RK_U32 cbcr_hor_coe14_0  : 10;
1229             RK_U32 sw_reserved_1    : 6;
1230             RK_U32 cbcr_hor_coe14_1  : 10;
1231         } reg56;         /* 0x04e0 */
1232         struct {
1233             RK_U32 cbcr_hor_coe14_2  : 10;
1234             RK_U32 sw_reserved_1    : 6;
1235             RK_U32 cbcr_hor_coe14_3  : 10;
1236         } reg57;         /* 0x04e4 */
1237         struct {
1238             RK_U32 cbcr_hor_coe14_4  : 10;
1239             RK_U32 sw_reserved_1    : 6;
1240             RK_U32 cbcr_hor_coe14_5  : 10;
1241         } reg58;         /* 0x04e8 */
1242         struct {
1243             RK_U32 cbcr_hor_coe14_6  : 10;
1244             RK_U32 sw_reserved_1    : 6;
1245             RK_U32 cbcr_hor_coe14_7  : 10;
1246         } reg59;         /* 0x04ec */
1247         struct {
1248             RK_U32 cbcr_hor_coe15_0  : 10;
1249             RK_U32 sw_reserved_1    : 6;
1250             RK_U32 cbcr_hor_coe15_1  : 10;
1251         } reg60;         /* 0x04f0 */
1252         struct {
1253             RK_U32 cbcr_hor_coe15_2  : 10;
1254             RK_U32 sw_reserved_1    : 6;
1255             RK_U32 cbcr_hor_coe15_3  : 10;
1256         } reg61;         /* 0x04f4 */
1257         struct {
1258             RK_U32 cbcr_hor_coe15_4  : 10;
1259             RK_U32 sw_reserved_1    : 6;
1260             RK_U32 cbcr_hor_coe15_5  : 10;
1261         } reg62;         /* 0x04f8 */
1262         struct {
1263             RK_U32 cbcr_hor_coe15_6  : 10;
1264             RK_U32 sw_reserved_1    : 6;
1265             RK_U32 cbcr_hor_coe15_7  : 10;
1266         } reg63;         /* 0x04fc */
1267         struct {
1268             RK_U32 cbcr_hor_coe16_0  : 10;
1269             RK_U32 sw_reserved_1    : 6;
1270             RK_U32 cbcr_hor_coe16_1  : 10;
1271         } reg64;         /* 0x0500 */
1272         struct {
1273             RK_U32 cbcr_hor_coe16_2  : 10;
1274             RK_U32 sw_reserved_1    : 6;
1275             RK_U32 cbcr_hor_coe16_3  : 10;
1276         } reg65;         /* 0x0504 */
1277         struct {
1278             RK_U32 cbcr_hor_coe16_4  : 10;
1279             RK_U32 sw_reserved_1    : 6;
1280             RK_U32 cbcr_hor_coe16_5  : 10;
1281         } reg66;         /* 0x0508 */
1282         struct {
1283             RK_U32 cbcr_hor_coe16_6  : 10;
1284             RK_U32 sw_reserved_1    : 6;
1285             RK_U32 cbcr_hor_coe16_7  : 10;
1286         } reg67;         /* 0x050c */
1287 
1288     } cbcr_hor_coe;
1289 
1290     struct {
1291         struct {
1292             RK_U32 cbcr_ver_coe0_0  : 10;
1293             RK_U32 sw_reserved_1    : 6;
1294             RK_U32 cbcr_ver_coe0_1  : 10;
1295         } reg0;         /* 0x0600 */
1296         struct {
1297             RK_U32 cbcr_ver_coe0_2  : 10;
1298             RK_U32 sw_reserved_1    : 6;
1299             RK_U32 cbcr_ver_coe0_3  : 10;
1300         } reg1;         /* 0x0604 */
1301         struct {
1302             RK_U32 cbcr_ver_coe0_4  : 10;
1303             RK_U32 sw_reserved_1    : 6;
1304             RK_U32 cbcr_ver_coe0_5  : 10;
1305         } reg2;         /* 0x0608 */
1306         struct {
1307             RK_U32 cbcr_ver_coe0_6  : 10;
1308             RK_U32 sw_reserved_1    : 6;
1309             RK_U32 cbcr_ver_coe0_7  : 10;
1310         } reg3;         /* 0x060c */
1311         struct {
1312             RK_U32 cbcr_ver_coe1_0  : 10;
1313             RK_U32 sw_reserved_1    : 6;
1314             RK_U32 cbcr_ver_coe1_1  : 10;
1315         } reg4;         /* 0x0610 */
1316         struct {
1317             RK_U32 cbcr_ver_coe1_2  : 10;
1318             RK_U32 sw_reserved_1    : 6;
1319             RK_U32 cbcr_ver_coe1_3  : 10;
1320         } reg5;         /* 0x0614 */
1321         struct {
1322             RK_U32 cbcr_ver_coe1_4  : 10;
1323             RK_U32 sw_reserved_1    : 6;
1324             RK_U32 cbcr_ver_coe1_5  : 10;
1325         } reg6;         /* 0x0618 */
1326         struct {
1327             RK_U32 cbcr_ver_coe1_6  : 10;
1328             RK_U32 sw_reserved_1    : 6;
1329             RK_U32 cbcr_ver_coe1_7  : 10;
1330         } reg7;         /* 0x061c */
1331         struct {
1332             RK_U32 cbcr_ver_coe2_0  : 10;
1333             RK_U32 sw_reserved_1    : 6;
1334             RK_U32 cbcr_ver_coe2_1  : 10;
1335         } reg8;         /* 0x0620 */
1336         struct {
1337             RK_U32 cbcr_ver_coe2_2  : 10;
1338             RK_U32 sw_reserved_1    : 6;
1339             RK_U32 cbcr_ver_coe2_3  : 10;
1340         } reg9;         /* 0x0624 */
1341         struct {
1342             RK_U32 cbcr_ver_coe2_4  : 10;
1343             RK_U32 sw_reserved_1    : 6;
1344             RK_U32 cbcr_ver_coe2_5  : 10;
1345         } reg10;         /* 0x0628 */
1346         struct {
1347             RK_U32 cbcr_ver_coe2_6  : 10;
1348             RK_U32 sw_reserved_1    : 6;
1349             RK_U32 cbcr_ver_coe2_7  : 10;
1350         } reg11;         /* 0x062c */
1351         struct {
1352             RK_U32 cbcr_ver_coe3_0  : 10;
1353             RK_U32 sw_reserved_1    : 6;
1354             RK_U32 cbcr_ver_coe3_1  : 10;
1355         } reg12;         /* 0x0630 */
1356         struct {
1357             RK_U32 cbcr_ver_coe3_2  : 10;
1358             RK_U32 sw_reserved_1    : 6;
1359             RK_U32 cbcr_ver_coe3_3  : 10;
1360         } reg13;         /* 0x0634 */
1361         struct {
1362             RK_U32 cbcr_ver_coe3_4  : 10;
1363             RK_U32 sw_reserved_1    : 6;
1364             RK_U32 cbcr_ver_coe3_5  : 10;
1365         } reg14;         /* 0x0638 */
1366         struct {
1367             RK_U32 cbcr_ver_coe3_6  : 10;
1368             RK_U32 sw_reserved_1    : 6;
1369             RK_U32 cbcr_ver_coe3_7  : 10;
1370         } reg15;         /* 0x063c */
1371         struct {
1372             RK_U32 cbcr_ver_coe4_0  : 10;
1373             RK_U32 sw_reserved_1    : 6;
1374             RK_U32 cbcr_ver_coe4_1  : 10;
1375         } reg16;         /* 0x0640 */
1376         struct {
1377             RK_U32 cbcr_ver_coe4_2  : 10;
1378             RK_U32 sw_reserved_1    : 6;
1379             RK_U32 cbcr_ver_coe4_3  : 10;
1380         } reg17;         /* 0x0644 */
1381         struct {
1382             RK_U32 cbcr_ver_coe4_4  : 10;
1383             RK_U32 sw_reserved_1    : 6;
1384             RK_U32 cbcr_ver_coe4_5  : 10;
1385         } reg18;         /* 0x0648 */
1386         struct {
1387             RK_U32 cbcr_ver_coe4_6  : 10;
1388             RK_U32 sw_reserved_1    : 6;
1389             RK_U32 cbcr_ver_coe4_7  : 10;
1390         } reg19;         /* 0x064c */
1391         struct {
1392             RK_U32 cbcr_ver_coe5_0  : 10;
1393             RK_U32 sw_reserved_1    : 6;
1394             RK_U32 cbcr_ver_coe5_1  : 10;
1395         } reg20;         /* 0x0650 */
1396         struct {
1397             RK_U32 cbcr_ver_coe5_2  : 10;
1398             RK_U32 sw_reserved_1    : 6;
1399             RK_U32 cbcr_ver_coe5_3  : 10;
1400         } reg21;         /* 0x0654 */
1401         struct {
1402             RK_U32 cbcr_ver_coe5_4  : 10;
1403             RK_U32 sw_reserved_1    : 6;
1404             RK_U32 cbcr_ver_coe5_5  : 10;
1405         } reg22;         /* 0x0658 */
1406         struct {
1407             RK_U32 cbcr_ver_coe5_6  : 10;
1408             RK_U32 sw_reserved_1    : 6;
1409             RK_U32 cbcr_ver_coe5_7  : 10;
1410         } reg23;         /* 0x065c */
1411         struct {
1412             RK_U32 cbcr_ver_coe6_0  : 10;
1413             RK_U32 sw_reserved_1    : 6;
1414             RK_U32 cbcr_ver_coe6_1  : 10;
1415         } reg24;         /* 0x0660 */
1416         struct {
1417             RK_U32 cbcr_ver_coe6_2  : 10;
1418             RK_U32 sw_reserved_1    : 6;
1419             RK_U32 cbcr_ver_coe6_3  : 10;
1420         } reg25;         /* 0x0664 */
1421         struct {
1422             RK_U32 cbcr_ver_coe6_4  : 10;
1423             RK_U32 sw_reserved_1    : 6;
1424             RK_U32 cbcr_ver_coe6_5  : 10;
1425         } reg26;         /* 0x0668 */
1426         struct {
1427             RK_U32 cbcr_ver_coe6_6  : 10;
1428             RK_U32 sw_reserved_1    : 6;
1429             RK_U32 cbcr_ver_coe6_7  : 10;
1430         } reg27;         /* 0x066c */
1431         struct {
1432             RK_U32 cbcr_ver_coe7_0  : 10;
1433             RK_U32 sw_reserved_1    : 6;
1434             RK_U32 cbcr_ver_coe7_1  : 10;
1435         } reg28;         /* 0x0670 */
1436         struct {
1437             RK_U32 cbcr_ver_coe7_2  : 10;
1438             RK_U32 sw_reserved_1    : 6;
1439             RK_U32 cbcr_ver_coe7_3  : 10;
1440         } reg29;         /* 0x0674 */
1441         struct {
1442             RK_U32 cbcr_ver_coe7_4  : 10;
1443             RK_U32 sw_reserved_1    : 6;
1444             RK_U32 cbcr_ver_coe7_5  : 10;
1445         } reg30;         /* 0x0678 */
1446         struct {
1447             RK_U32 cbcr_ver_coe7_6  : 10;
1448             RK_U32 sw_reserved_1    : 6;
1449             RK_U32 cbcr_ver_coe7_7  : 10;
1450         } reg31;         /* 0x067c */
1451         struct {
1452             RK_U32 cbcr_ver_coe8_0  : 10;
1453             RK_U32 sw_reserved_1    : 6;
1454             RK_U32 cbcr_ver_coe8_1  : 10;
1455         } reg32;         /* 0x0680 */
1456         struct {
1457             RK_U32 cbcr_ver_coe8_2  : 10;
1458             RK_U32 sw_reserved_1    : 6;
1459             RK_U32 cbcr_ver_coe8_3  : 10;
1460         } reg33;         /* 0x0684 */
1461         struct {
1462             RK_U32 cbcr_ver_coe8_4  : 10;
1463             RK_U32 sw_reserved_1    : 6;
1464             RK_U32 cbcr_ver_coe8_5  : 10;
1465         } reg34;         /* 0x0688 */
1466         struct {
1467             RK_U32 cbcr_ver_coe8_6  : 10;
1468             RK_U32 sw_reserved_1    : 6;
1469             RK_U32 cbcr_ver_coe8_7  : 10;
1470         } reg35;         /* 0x068c */
1471         struct {
1472             RK_U32 cbcr_ver_coe9_0  : 10;
1473             RK_U32 sw_reserved_1    : 6;
1474             RK_U32 cbcr_ver_coe9_1  : 10;
1475         } reg36;         /* 0x0690 */
1476         struct {
1477             RK_U32 cbcr_ver_coe9_2  : 10;
1478             RK_U32 sw_reserved_1    : 6;
1479             RK_U32 cbcr_ver_coe9_3  : 10;
1480         } reg37;         /* 0x0694 */
1481         struct {
1482             RK_U32 cbcr_ver_coe9_4  : 10;
1483             RK_U32 sw_reserved_1    : 6;
1484             RK_U32 cbcr_ver_coe9_5  : 10;
1485         } reg38;         /* 0x0698 */
1486         struct {
1487             RK_U32 cbcr_ver_coe9_6  : 10;
1488             RK_U32 sw_reserved_1    : 6;
1489             RK_U32 cbcr_ver_coe9_7  : 10;
1490         } reg39;         /* 0x069c */
1491         struct {
1492             RK_U32 cbcr_ver_coe10_0  : 10;
1493             RK_U32 sw_reserved_1    : 6;
1494             RK_U32 cbcr_ver_coe10_1  : 10;
1495         } reg40;         /* 0x06a0 */
1496         struct {
1497             RK_U32 cbcr_ver_coe10_2  : 10;
1498             RK_U32 sw_reserved_1    : 6;
1499             RK_U32 cbcr_ver_coe10_3  : 10;
1500         } reg41;         /* 0x06a4 */
1501         struct {
1502             RK_U32 cbcr_ver_coe10_4  : 10;
1503             RK_U32 sw_reserved_1    : 6;
1504             RK_U32 cbcr_ver_coe10_5  : 10;
1505         } reg42;         /* 0x06a8 */
1506         struct {
1507             RK_U32 cbcr_ver_coe10_6  : 10;
1508             RK_U32 sw_reserved_1    : 6;
1509             RK_U32 cbcr_ver_coe10_7  : 10;
1510         } reg43;         /* 0x06ac */
1511         struct {
1512             RK_U32 cbcr_ver_coe11_0  : 10;
1513             RK_U32 sw_reserved_1    : 6;
1514             RK_U32 cbcr_ver_coe11_1  : 10;
1515         } reg44;         /* 0x06b0 */
1516         struct {
1517             RK_U32 cbcr_ver_coe11_2  : 10;
1518             RK_U32 sw_reserved_1    : 6;
1519             RK_U32 cbcr_ver_coe11_3  : 10;
1520         } reg45;         /* 0x06b4 */
1521         struct {
1522             RK_U32 cbcr_ver_coe11_4  : 10;
1523             RK_U32 sw_reserved_1    : 6;
1524             RK_U32 cbcr_ver_coe11_5  : 10;
1525         } reg46;         /* 0x06b8 */
1526         struct {
1527             RK_U32 cbcr_ver_coe11_6  : 10;
1528             RK_U32 sw_reserved_1    : 6;
1529             RK_U32 cbcr_ver_coe11_7  : 10;
1530         } reg47;         /* 0x06bc */
1531         struct {
1532             RK_U32 cbcr_ver_coe12_0  : 10;
1533             RK_U32 sw_reserved_1    : 6;
1534             RK_U32 cbcr_ver_coe12_1  : 10;
1535         } reg48;         /* 0x06c0 */
1536         struct {
1537             RK_U32 cbcr_ver_coe12_2  : 10;
1538             RK_U32 sw_reserved_1    : 6;
1539             RK_U32 cbcr_ver_coe12_3  : 10;
1540         } reg49;         /* 0x06c4 */
1541         struct {
1542             RK_U32 cbcr_ver_coe12_4  : 10;
1543             RK_U32 sw_reserved_1    : 6;
1544             RK_U32 cbcr_ver_coe12_5  : 10;
1545         } reg50;         /* 0x06c8 */
1546         struct {
1547             RK_U32 cbcr_ver_coe12_6  : 10;
1548             RK_U32 sw_reserved_1    : 6;
1549             RK_U32 cbcr_ver_coe12_7  : 10;
1550         } reg51;         /* 0x06cc */
1551         struct {
1552             RK_U32 cbcr_ver_coe13_0  : 10;
1553             RK_U32 sw_reserved_1    : 6;
1554             RK_U32 cbcr_ver_coe13_1  : 10;
1555         } reg52;         /* 0x06d0 */
1556         struct {
1557             RK_U32 cbcr_ver_coe13_2  : 10;
1558             RK_U32 sw_reserved_1    : 6;
1559             RK_U32 cbcr_ver_coe13_3  : 10;
1560         } reg53;         /* 0x06d4 */
1561         struct {
1562             RK_U32 cbcr_ver_coe13_4  : 10;
1563             RK_U32 sw_reserved_1    : 6;
1564             RK_U32 cbcr_ver_coe13_5  : 10;
1565         } reg54;         /* 0x06d8 */
1566         struct {
1567             RK_U32 cbcr_ver_coe13_6  : 10;
1568             RK_U32 sw_reserved_1    : 6;
1569             RK_U32 cbcr_ver_coe13_7  : 10;
1570         } reg55;         /* 0x06dc */
1571         struct {
1572             RK_U32 cbcr_ver_coe14_0  : 10;
1573             RK_U32 sw_reserved_1    : 6;
1574             RK_U32 cbcr_ver_coe14_1  : 10;
1575         } reg56;         /* 0x06e0 */
1576         struct {
1577             RK_U32 cbcr_ver_coe14_2  : 10;
1578             RK_U32 sw_reserved_1    : 6;
1579             RK_U32 cbcr_ver_coe14_3  : 10;
1580         } reg57;         /* 0x06e4 */
1581         struct {
1582             RK_U32 cbcr_ver_coe14_4  : 10;
1583             RK_U32 sw_reserved_1    : 6;
1584             RK_U32 cbcr_ver_coe14_5  : 10;
1585         } reg58;         /* 0x06e8 */
1586         struct {
1587             RK_U32 cbcr_ver_coe14_6  : 10;
1588             RK_U32 sw_reserved_1    : 6;
1589             RK_U32 cbcr_ver_coe14_7  : 10;
1590         } reg59;         /* 0x06ec */
1591         struct {
1592             RK_U32 cbcr_ver_coe15_0  : 10;
1593             RK_U32 sw_reserved_1    : 6;
1594             RK_U32 cbcr_ver_coe15_1  : 10;
1595         } reg60;         /* 0x06f0 */
1596         struct {
1597             RK_U32 cbcr_ver_coe15_2  : 10;
1598             RK_U32 sw_reserved_1    : 6;
1599             RK_U32 cbcr_ver_coe15_3  : 10;
1600         } reg61;         /* 0x06f4 */
1601         struct {
1602             RK_U32 cbcr_ver_coe15_4  : 10;
1603             RK_U32 sw_reserved_1    : 6;
1604             RK_U32 cbcr_ver_coe15_5  : 10;
1605         } reg62;         /* 0x06f8 */
1606         struct {
1607             RK_U32 cbcr_ver_coe15_6  : 10;
1608             RK_U32 sw_reserved_1    : 6;
1609             RK_U32 cbcr_ver_coe15_7  : 10;
1610         } reg63;         /* 0x06fc */
1611         struct {
1612             RK_U32 cbcr_ver_coe16_0  : 10;
1613             RK_U32 sw_reserved_1    : 6;
1614             RK_U32 cbcr_ver_coe16_1  : 10;
1615         } reg64;         /* 0x0700 */
1616         struct {
1617             RK_U32 cbcr_ver_coe16_2  : 10;
1618             RK_U32 sw_reserved_1    : 6;
1619             RK_U32 cbcr_ver_coe16_3  : 10;
1620         } reg65;         /* 0x0704 */
1621         struct {
1622             RK_U32 cbcr_ver_coe16_4  : 10;
1623             RK_U32 sw_reserved_1    : 6;
1624             RK_U32 cbcr_ver_coe16_5  : 10;
1625         } reg66;         /* 0x0708 */
1626         struct {
1627             RK_U32 cbcr_ver_coe16_6  : 10;
1628             RK_U32 sw_reserved_1    : 6;
1629             RK_U32 cbcr_ver_coe16_7  : 10;
1630         } reg67;         /* 0x070c */
1631 
1632     } cbcr_ver_coe;
1633 
1634     struct {
1635         struct {
1636             RK_U32 bypass_en        : 1;
1637             RK_U32 align_en         : 1;
1638             RK_U32 reserved_1       : 2;
1639             RK_U32 format_in        : 4;
1640             RK_U32 format_out       : 4;
1641             RK_U32 reserved_2       : 19;
1642             RK_U32 auto_gating_en   : 1;
1643         } reg0;         /* 0x0800 */
1644 
1645         RK_U32 reg1;    /* 0x0804 */
1646         RK_U32 reg2;    /* 0x0808 */
1647 
1648         struct {
1649             RK_U32 vir_width        : 16;
1650             RK_U32 vir_height       : 16;
1651         } reg3;         /* 0x080C */
1652 
1653         struct {
1654             RK_U32 yrgb_xsd_en      : 1;
1655             RK_U32 yrgb_xsu_en      : 1;
1656             RK_U32 yrgb_scl_mode    : 2;
1657             RK_U32 yrgb_ysd_en      : 1;
1658             RK_U32 yrgb_ysu_en      : 1;
1659             RK_U32 yrgb_yscl_mode   : 2;
1660             RK_U32 yrgb_dering_en   : 1;
1661             RK_U32 yrgb_gt_en       : 1;
1662             RK_U32 yrgb_gt_mode     : 2;
1663             RK_U32 yrgb_xgt_en      : 1;
1664             RK_U32 reserved_1       : 1;
1665             RK_U32 yrgb_xgt_mode    : 2;
1666             RK_U32 yrgb_xsd_bypass  : 1;
1667             RK_U32 yrgb_ys_bypass   : 1;
1668             RK_U32 yrgb_xsu_bypass  : 1;
1669         } reg4;         /* 0x0810 */
1670 
1671         struct {
1672             RK_U32 yrgb_src_width   : 16;
1673             RK_U32 yrgb_src_height  : 16;
1674         } reg5;         /* 0x0814 */
1675 
1676         struct {
1677             RK_U32 yrgb_dst_width   : 16;
1678             RK_U32 yrgb_dst_height  : 16;
1679         } reg6;         /* 0x0818 */
1680 
1681         struct {
1682             RK_U32 yrgb_dering_sen0 : 5;
1683             RK_U32 reserved_1       : 3;
1684             RK_U32 yrgb_dering_sen1 : 5;
1685             RK_U32 reserved_2       : 3;
1686             RK_U32 yrgb_dering_alpha: 5;
1687             RK_U32 reserved_3       : 3;
1688             RK_U32 yrgb_dering_delta: 5;
1689         } reg7;         /* 0x081C */
1690 
1691         struct {
1692             RK_U32 yrgb_xscl_factor : 16;
1693             RK_U32 yrgb_xscl_offset : 16;
1694         } reg8;         /* 0x0820 */
1695 
1696         struct {
1697             RK_U32 yrgb_yscl_factor : 16;
1698             RK_U32 yrgb_yscl_offset : 16;
1699         } reg9;         /* 0x0824 */
1700 
1701         RK_U32 reg10;   /* 0x0828 */
1702         RK_U32 reg11;   /* 0x082C */
1703 
1704         struct {
1705             RK_U32 cbcr_xsd_en      : 1;
1706             RK_U32 cbcr_xsu_en      : 1;
1707             RK_U32 cbcr_scl_mode    : 2;
1708             RK_U32 cbcr_ysd_en      : 1;
1709             RK_U32 cbcr_ysu_en      : 1;
1710             RK_U32 cbcr_yscl_mode   : 2;
1711             RK_U32 cbcr_dering_en   : 1;
1712             RK_U32 cbcr_gt_en       : 1;
1713             RK_U32 cbcr_gt_mode     : 2;
1714             RK_U32 cbcr_xgt_en      : 1;
1715             RK_U32 reserved_1       : 1;
1716             RK_U32 cbcr_xgt_mode    : 2;
1717             RK_U32 cbcr_xsd_bypass  : 1;
1718             RK_U32 cbcr_ys_bypass   : 1;
1719             RK_U32 cbcr_xsu_bypass  : 1;
1720         } reg12;         /* 0x0830 */
1721 
1722         struct {
1723             RK_U32 cbcr_src_width   : 16;
1724             RK_U32 cbcr_src_height  : 16;
1725         } reg13;         /* 0x0834 */
1726 
1727         struct {
1728             RK_U32 cbcr_dst_width   : 16;
1729             RK_U32 cbcr_dst_height  : 16;
1730         } reg14;         /* 0x0838 */
1731 
1732         struct {
1733             RK_U32 cbcr_dering_sen0 : 5;
1734             RK_U32 reserved_1       : 3;
1735             RK_U32 cbcr_dering_sen1 : 5;
1736             RK_U32 reserved_2       : 3;
1737             RK_U32 cbcr_dering_alpha: 5;
1738             RK_U32 reserved_3       : 3;
1739             RK_U32 cbcr_dering_delta: 5;
1740         } reg15;         /* 0x083C */
1741 
1742         struct {
1743             RK_U32 cbcr_xscl_factor : 16;
1744             RK_U32 cbcr_xscl_offset : 16;
1745         } reg16;         /* 0x0840 */
1746 
1747         struct {
1748             RK_U32 cbcr_yscl_factor : 16;
1749             RK_U32 cbcr_yscl_offset : 16;
1750         } reg17;         /* 0x0844 */
1751 
1752     } common;
1753 
1754 };               /* offset: 0x2000 */
1755 
1756 #ifdef __cplusplus
1757 extern "C" {
1758 #endif
1759 
1760 void set_dmsr_to_vdpp_reg(struct dmsr_params* p_dmsr_param, struct dmsr_reg* dmsr);
1761 
1762 void vdpp_set_default_zme_param(struct zme_params* param);
1763 void set_zme_to_vdpp_reg(struct zme_params *zme_params, struct zme_reg *zme);
1764 
1765 #ifdef __cplusplus
1766 }
1767 #endif
1768 
1769 #endif
1770