xref: /rockchip-linux_mpp/mpp/vproc/vdpp/vdpp2_reg.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 __VDPP2_REG_H__
7 #define __VDPP2_REG_H__
8 
9 #include "rk_type.h"
10 
11 #define VDPP_REG_OFF_DMSR               (0x80)
12 #define VDPP_REG_OFF_DCI                (0xE0)
13 #define VDPP_REG_OFF_ES                 (0x0100)
14 #define VDPP_REG_OFF_SHARP              (0x0200)
15 #define VDPP_REG_OFF_YRGB_HOR_COE       (0x2000)
16 #define VDPP_REG_OFF_YRGB_VER_COE       (0x2200)
17 #define VDPP_REG_OFF_CBCR_HOR_COE       (0x2400)
18 #define VDPP_REG_OFF_CBCR_VER_COE       (0x2600)
19 #define VDPP_REG_OFF_ZME_COMMON         (0x2800)
20 
21 struct vdpp2_reg {
22     struct {
23 
24         struct {
25             RK_U32 sw_vdpp_frm_en       : 1;
26         } reg0;         // 0x0000
27 
28         struct {
29             RK_U32 sw_vdpp_src_fmt      : 2;
30             RK_U32 sw_reserved_1        : 2;
31             RK_U32 sw_vdpp_src_yuv_swap : 2;
32             RK_U32 sw_reserved_2        : 2;
33             RK_U32 sw_vdpp_dst_fmt      : 2;
34             RK_U32 sw_vdpp_yuvout_diff_en       : 1;
35             RK_U32 sw_reserved_3        : 1;
36             RK_U32 sw_vdpp_dst_yuv_swap : 2;
37             RK_U32 sw_reserved_4        : 2;
38             RK_U32 sw_vdpp_debug_data_en: 1;
39             RK_U32 sw_reserved_5        : 3;
40             RK_U32 sw_vdpp_rst_protect_dis      : 1;
41             RK_U32 sys_vdpp_sreset_p    : 1;
42             RK_U32 sw_vdpp_init_dis     : 1;
43             RK_U32 sw_reserved_6        : 1;
44             RK_U32 sw_vdpp_dbmsr_en     : 1;
45             RK_U32 sw_dci_en            : 1;
46         } reg1;         // 0x0004
47 
48         struct {
49             RK_U32 sw_vdpp_working_mode : 2;
50         } reg2;         // 0x0008
51 
52         struct {
53             RK_U32 sw_vdpp_arqos_en     : 1;
54             RK_U32 sw_vdpp_awqos_en     : 1;
55             RK_U32 sw_reserved_1        : 2;
56             RK_U32 sw_ar_mmu_qos3       : 4;
57         } reg3;         // 0x000C
58 
59         struct {
60             RK_U32 sw_vdpp_clk_on       : 1;
61             RK_U32 sw_md_clk_on         : 1;
62             RK_U32 sw_dect_clk_on       : 1;
63             RK_U32 sw_me_clk_on         : 1;
64             RK_U32 sw_mc_clk_on         : 1;
65             RK_U32 sw_eedi_clk_on       : 1;
66             RK_U32 sw_ble_clk_on        : 1;
67             RK_U32 sw_out_clk_on        : 1;
68             RK_U32 sw_ctrl_clk_on       : 1;
69             RK_U32 sw_ram_clk_on        : 1;
70             RK_U32 sw_dma_clk_on        : 1;
71             RK_U32 sw_reg_clk_on        : 1;
72         } reg4;         // 0x0010
73 
74         struct {
75             RK_U32 ro_arst_finish_done  : 1;
76         } reg5;         // 0x0014
77 
78         struct {
79             RK_U32 sw_ar_y_qos1         : 4;
80             RK_U32 sw_ar_y_qos2         : 4;
81             RK_U32 sw_ar_uv_qos1        : 4;
82             RK_U32 sw_ar_uv_qos2        : 4;
83         } reg6;         // 0x0018
84 
85         struct {
86             RK_U32 sw_aw_id7_qos        : 4;
87             RK_U32 sw_aw_id8_qos        : 4;
88             RK_U32 sw_aw_id9_qos        : 4;
89             RK_U32 sw_aw_id10_qos       : 4;
90         } reg7;         // 0x001c
91 
92         struct {
93             RK_U32 sw_vdpp_frm_done_en  : 1;
94             RK_U32 sw_vdpp_osd_max_en   : 1;
95             RK_U32 sw_reserved_1        : 2;
96             RK_U32 sw_vdpp_bus_error_en : 1;
97             RK_U32 sw_vdpp_timeout_int_en       : 1;
98             RK_U32 sw_vdpp_config_error_en      : 1;
99         } reg8;         // 0x0020
100 
101         struct {
102             RK_U32 sw_vdpp_frm_done_clr : 1;
103             RK_U32 sw_vdpp_osd_max_clr  : 1;
104             RK_U32 sw_reserved_1        : 2;
105             RK_U32 sw_vdpp_bus_error_clr: 1;
106             RK_U32 sw_vdpp_timeout_int_clr      : 1;
107             RK_U32 sw_vdpp_config_error_clr     : 1;
108         } reg9;        // 0x0024
109 
110         struct {
111             RK_U32 ro_frm_done_sts      : 1;
112             RK_U32 ro_osd_max_sts       : 1;
113             RK_U32 sw_reserved_1        : 2;
114             RK_U32 ro_bus_error_sts     : 1;
115             RK_U32 ro_timeout_sts       : 1;
116             RK_U32 ro_config_error_sts  : 1;
117         } reg10;        // 0x0028, read only
118 
119         struct {
120             RK_U32 ro_frm_done_raw      : 1;
121             RK_U32 ro_osd_max_raw       : 1;
122             RK_U32 sw_reserved_1        : 2;
123             RK_U32 ro_bus_error_raw     : 1;
124             RK_U32 ro_timeout_raw       : 1;
125             RK_U32 ro_config_error_raw  : 1;
126         } reg11;        // 0x002C, read only
127 
128         struct {
129             RK_U32 sw_vdpp_src_vir_y_stride     : 16;
130         } reg12;         // 0x0030
131 
132         struct {
133             RK_U32 sw_vdpp_dst_vir_y_stride     : 16;
134             RK_U32 sw_vdpp_dst_vir_c_stride     : 16;
135         } reg13;         // 0x0034
136 
137         struct {
138             RK_U32 sw_vdpp_src_pic_width        : 11;
139             RK_U32 sw_reserved_1        : 1;
140             RK_U32 sw_vdpp_src_right_redundant  : 4;
141             RK_U32 sw_vdpp_src_pic_height       : 11;
142             RK_U32 sw_reserved_2        : 1;
143             RK_U32 sw_vdpp_src_down_redundant   : 3;
144         } reg14;         // 0x0038
145 
146         struct {
147             RK_U32 sw_vdpp_dst_pic_width        : 11;
148             RK_U32 sw_reserved_1        : 1;
149             RK_U32 sw_vdpp_dst_right_redundant  : 4;
150             RK_U32 sw_vdpp_dst_pic_height       : 11;
151         } reg15;         // 0x003C
152 
153         struct {
154             RK_U32 sw_vdpp_dst_pic_width_c      : 11;
155             RK_U32 reserved1                    : 1;
156             RK_U32 sw_vdpp_dst_right_redundant_c: 4;
157             RK_U32 sw_vdpp_dst_pic_height_c     : 11;
158         } reg16;         // 0x0040
159 
160         RK_U32 reg17;    // 0x0044
161         RK_U32 reg18;    // 0x0048
162         RK_U32 reg19;    // 0x004C
163 
164         struct {
165             RK_U32 sw_vdpp_timeout_cnt  : 31;
166             RK_U32 sw_vdpp_timeout_en   : 1;
167         } reg20;         // 0x0050
168 
169         struct {
170             RK_U32 svnbuild     : 20;
171             RK_U32 minor        : 8;
172             RK_U32 major        : 4;
173         } reg21;         // 0x0054
174 
175         struct {
176             RK_U32 dbg_frm_cnt  : 16;
177         } reg22;         // 0x0058
178 
179         RK_U32 reg23;    // 0x005C
180 
181         struct {
182             RK_U32 sw_vdpp_src_addr_y   : 32;
183         } reg24;         // 0x0060
184 
185         struct {
186             RK_U32 sw_vdpp_src_addr_uv  : 32;
187         } reg25;         // 0x0064
188 
189         struct {
190             RK_U32 sw_vdpp_dst_addr_y   : 32;
191         } reg26;         // 0x0068
192 
193         struct {
194             RK_U32 sw_vdpp_dst_addr_uv  : 32;
195         } reg27;         // 0x006C
196 
197     } common;            // offset: 0x1000
198 
199     struct {
200         struct {
201             RK_U32 sw_dci_yrgb_addr     : 32;
202         } reg0;          // 0x00E0
203 
204         struct {
205             RK_U32 sw_dci_yrgb_vir_stride       : 16;
206             RK_U32 sw_dci_yrgb_gather_num       : 4;
207             RK_U32 sw_dci_yrgb_gather_en: 1;
208         } reg1;          // 0x00E4
209 
210         struct {
211             RK_U32 sw_vdpp_src_pic_width: 12;
212             RK_U32 reserved1            : 4;
213             RK_U32 sw_vdpp_src_pic_height       : 12;
214         } reg2;          // 0x00E8
215 
216         struct {
217             RK_U32 sw_dci_data_format   : 3;
218             RK_U32 sw_dci_csc_range     : 1;
219             RK_U32 sw_dci_vsd_mode      : 2;
220             RK_U32 sw_dci_hsd_mode      : 1;
221             RK_U32 sw_dci_alpha_swap    : 1;
222             RK_U32 sw_dci_rb_swap       : 1;
223             RK_U32 reserved1            : 7;
224             RK_U32 sw_dci_blk_hsize     : 8;
225             RK_U32 sw_dci_blk_vsize     : 8;
226         } reg3;          // 0x00EC
227 
228         struct {
229             RK_U32 sw_dci_hist_addr     : 32;
230         } reg4;          // 0x00F0
231 
232     } dci;               // offset: 0x10E0
233 
234     RK_U32 reg_5_7[3];
235 
236     struct {
237         struct {
238             RK_U32 es_enable         : 1;
239         } reg0;          // 0x0100
240 
241         struct {
242             RK_U32 flat_th           : 8;
243             RK_U32 dir_th            : 8;
244         } reg1;          // 0x0104
245 
246         struct {
247             RK_U32 tan_hi_th         : 9;
248             RK_U32 reserved1         : 7;
249             RK_U32 tan_lo_th         : 9;
250         } reg2;          // 0x0108
251 
252         struct {
253             RK_U32 ep_chk_en         : 1;
254             RK_U32 reserved1         : 7;
255             RK_U32 mem_gat_en        : 1;
256         } reg3;          // 0x010C
257 
258         struct {
259             RK_U32 diff_gain0        : 16;
260             RK_U32 diff_limit        : 16;
261         } reg4;          // 0x0110
262 
263         struct {
264             RK_U32 lut_x0            : 16;
265             RK_U32 diff_gain1        : 16;
266         } reg5;          // 0x0114
267 
268         struct {
269             RK_U32 lut_x2            : 16;
270             RK_U32 lut_x1            : 16;
271         } reg6;          // 0x0118
272 
273         struct {
274             RK_U32 lut_x4            : 16;
275             RK_U32 lut_x3            : 16;
276         } reg7;          // 0x011C
277 
278         struct {
279             RK_U32 lut_x6            : 16;
280             RK_U32 lut_x5            : 16;
281         } reg8;          // 0x0120
282 
283         struct {
284             RK_U32 lut_x8            : 16;
285             RK_U32 lut_x7            : 16;
286         } reg9;          // 0x0124
287 
288         struct {
289             RK_U32 lut_y0            : 8;
290             RK_U32 lut_y1            : 8;
291             RK_U32 lut_y2            : 8;
292             RK_U32 lut_y3            : 8;
293         } reg10;         // 0x0128
294 
295         struct {
296             RK_U32 lut_y4            : 8;
297             RK_U32 lut_y5            : 8;
298             RK_U32 lut_y6            : 8;
299             RK_U32 lut_y7            : 8;
300         } reg11;         // 0x012C
301 
302         struct {
303             RK_U32 lut_y8            : 8;
304         } reg12;         // 0x0130
305 
306         struct {
307             RK_U32 lut_k0            : 8;
308             RK_U32 lut_k1            : 8;
309             RK_U32 lut_k2            : 8;
310             RK_U32 lut_k3            : 8;
311         } reg13;         // 0x0134
312 
313         struct {
314             RK_U32 lut_k4            : 8;
315             RK_U32 lut_k5            : 8;
316             RK_U32 lut_k6            : 8;
317             RK_U32 lut_k7            : 8;
318         } reg14;         // 0x0138
319 
320         struct {
321             RK_U32 wgt_decay         : 8;
322             RK_U32 wgt_gain          : 8;
323         } reg15;         // 0x013C
324 
325         struct {
326             RK_U32 conf_mean_th      : 8;
327             RK_U32 conf_cnt_th       : 4;
328             RK_U32 reserved1         : 4;
329             RK_U32 low_conf_ratio    : 8;
330             RK_U32 low_conf_th       : 8;
331         } reg16;         // 0x0140
332 
333         struct {
334             RK_U32 ink_en            : 1;
335             RK_U32 reserved1         : 3;
336             RK_U32 ink_mode          : 4;
337         } reg17;         // 0x0144
338 
339         RK_U32 reg_18_27[10];
340 
341         struct {
342             RK_U32 in_rdy            : 1;
343             RK_U32 reserved1         : 3;
344             RK_U32 mem_in_vsync      : 1;
345             RK_U32 reserved2         : 3;
346             RK_U32 in_hsync          : 1;
347             RK_U32 reserved3         : 3;
348             RK_U32 in_vld            : 1;
349             RK_U32 reserved4         : 3;
350             RK_U32 mem_in_line_cnt   : 11;
351         } reg28;         // 0x0170
352 
353         struct {
354             RK_U32 in_pix            : 16;
355             RK_U32 in_dir            : 6;
356             RK_U32 reserved1         : 2;
357             RK_U32 in_flat           : 2;
358         } reg29;         // 0x0174
359 
360         struct {
361             RK_U32 out_rdy           : 1;
362             RK_U32 reserved1         : 3;
363             RK_U32 out_vsync         : 1;
364             RK_U32 reserved2         : 3;
365             RK_U32 out_hsync         : 1;
366             RK_U32 reserved3         : 3;
367             RK_U32 out_vld           : 1;
368             RK_U32 reserved4         : 3;
369             RK_U32 out_line_cnt      : 11;
370         } reg30;         // 0x0178
371 
372         struct {
373             RK_U32 out_pix           : 16;
374         } reg31;         // 0x017C
375 
376     } es;                // offset: 0x1100
377 
378     RK_U32 reg_32_63[32];
379 
380     struct {
381         struct {
382             RK_U32 sw_sharp_enable      : 1;
383             RK_U32 sw_lti_enable        : 1;
384             RK_U32 sw_cti_enable        : 1;
385             RK_U32 sw_peaking_enable    : 1;
386             RK_U32 sw_peaking_ctrl_enable       : 1;
387             RK_U32 reserved1            : 1;
388             RK_U32 sw_edge_proc_enable  : 1;
389             RK_U32 sw_shoot_ctrl_enable : 1;
390             RK_U32 sw_gain_ctrl_enable  : 1;
391             RK_U32 sw_color_adj_enable  : 1;
392             RK_U32 sw_texture_adj_enable: 1;
393             RK_U32 sw_coloradj_bypass_en: 1;
394             RK_U32 sw_ink_enable        : 1;
395             RK_U32 sw_sharp_redundent_bypass    : 1;
396         } reg0;          // 0x0200
397 
398         struct {
399             RK_U32 sw_mem_gating_en     : 1;
400             RK_U32 sw_lti_gating_en     : 1;
401             RK_U32 sw_cti_gating_en     : 1;
402             RK_U32 sw_peaking_gating_en : 1;
403             RK_U32 sw_peaking_ctrl_gating_en    : 1;
404             RK_U32 reserved1            : 1;
405             RK_U32 sw_edge_proc_gating_en       : 1;
406             RK_U32 sw_shoot_ctrl_gating_en      : 1;
407             RK_U32 sw_gain_ctrl_gating_en       : 1;
408             RK_U32 sw_color_adj_gating_en       : 1;
409             RK_U32 sw_texture_adj_gating_en     : 1;
410         } reg1;          // 0x0204
411 
412         struct {
413             RK_U32 sw_peaking_v00       : 4;
414             RK_U32 sw_peaking_v01       : 4;
415             RK_U32 sw_peaking_v02       : 4;
416             RK_U32 sw_peaking_v10       : 4;
417             RK_U32 sw_peaking_v11       : 4;
418             RK_U32 sw_peaking_v12       : 4;
419         } reg2;          // 0x0208
420 
421         struct {
422             RK_U32 sw_peaking_v20       : 4;
423             RK_U32 sw_peaking_v21       : 4;
424             RK_U32 sw_peaking_v22       : 4;
425             RK_U32 sw_peaking_usm0      : 4;
426             RK_U32 sw_peaking_usm1      : 4;
427             RK_U32 sw_peaking_usm2      : 4;
428             RK_U32 sw_diag_coef         : 3;
429         } reg3;          // 0x020C
430 
431         struct {
432             RK_U32 sw_peaking_h00       : 6;
433             RK_U32 reserved1            : 2;
434             RK_U32 sw_peaking_h01       : 6;
435             RK_U32 reserved2            : 2;
436             RK_U32 sw_peaking_h02       : 6;
437         } reg4;          // 0x0210
438 
439         RK_U32 reg5;
440 
441         struct {
442             RK_U32 sw_peaking_h10       : 6;
443             RK_U32 reserved1            : 2;
444             RK_U32 sw_peaking_h11       : 6;
445             RK_U32 reserved2            : 2;
446             RK_U32 sw_peaking_h12       : 6;
447         } reg6;          // 0x0218
448 
449         RK_U32 reg7;
450 
451         struct {
452             RK_U32 sw_peaking_h20       : 6;
453             RK_U32 reserved1            : 2;
454             RK_U32 sw_peaking_h21       : 6;
455             RK_U32 reserved2            : 2;
456             RK_U32 sw_peaking_h22       : 6;
457         } reg8;          // 0x0220
458 
459         RK_U32 reg_9_11[3];
460 
461         struct {
462             RK_U32 sw_peaking0_idx_n0   : 9;
463             RK_U32 reserved1            : 7;
464             RK_U32 sw_peaking0_idx_n1   : 9;
465         } reg12;         // 0x0230
466 
467         struct {
468             RK_U32 sw_peaking0_idx_n2   : 9;
469             RK_U32 reserved1            : 7;
470             RK_U32 sw_peaking0_idx_n3   : 9;
471         } reg13;         // 0x0234
472 
473         struct {
474             RK_U32 sw_peaking0_idx_p0   : 9;
475             RK_U32 reserved1            : 7;
476             RK_U32 sw_peaking0_idx_p1   : 9;
477         } reg14;         // 0x0238
478 
479         struct {
480             RK_U32 sw_peaking0_idx_p2   : 9;
481             RK_U32 reserved1            : 7;
482             RK_U32 sw_peaking0_idx_p3   : 9;
483         } reg15;         // 0x023C
484 
485         struct {
486             RK_U32 sw_peaking0_value_n1 : 9;
487             RK_U32 reserved1            : 7;
488             RK_U32 sw_peaking0_value_n2 : 9;
489         } reg16;         // 0x0240
490 
491         struct {
492             RK_U32 sw_peaking0_value_n3 : 9;
493             RK_U32 reserved1            : 7;
494             RK_U32 sw_peaking0_value_p1 : 9;
495         } reg17;         // 0x0244
496 
497         struct {
498             RK_U32 sw_peaking0_value_p2 : 9;
499             RK_U32 reserved1            : 7;
500             RK_U32 sw_peaking0_value_p3 : 9;
501         } reg18;         // 0x0248
502 
503         struct {
504             RK_U32 sw_peaking0_ratio_n01: 12;
505             RK_U32 reserved1            : 4;
506             RK_U32 sw_peaking0_ratio_n12: 12;
507         } reg19;         // 0x024C
508 
509         struct {
510             RK_U32 sw_peaking0_ratio_n23: 12;
511             RK_U32 reserved1            : 4;
512             RK_U32 sw_peaking0_ratio_p01: 12;
513         } reg20;         // 0x0250
514 
515         struct {
516             RK_U32 sw_peaking0_ratio_p12: 12;
517             RK_U32 sw_peaking0_ratio_p23: 12;
518         } reg21;         // 0x0254
519 
520         RK_U32 reg22;
521 
522         struct {
523             RK_U32 sw_peaking1_idx_n0   : 9;
524             RK_U32 reserved1            : 7;
525             RK_U32 sw_peaking1_idx_n1   : 9;
526         } reg23;         // 0x025C
527 
528         struct {
529             RK_U32 sw_peaking1_idx_n2   : 9;
530             RK_U32 reserved1            : 7;
531             RK_U32 sw_peaking1_idx_n3   : 9;
532         } reg24;         // 0x0260
533 
534         struct {
535             RK_U32 sw_peaking1_idx_p0   : 9;
536             RK_U32 reserved1            : 7;
537             RK_U32 sw_peaking1_idx_p1   : 9;
538         } reg25;         // 0x0264
539 
540         struct {
541             RK_U32 sw_peaking1_idx_p2   : 9;
542             RK_U32 reserved1            : 7;
543             RK_U32 sw_peaking1_idx_p3   : 9;
544         } reg26;         // 0x0268
545 
546         struct {
547             RK_U32 sw_peaking1_value_n1 : 9;
548             RK_U32 reserved1            : 7;
549             RK_U32 sw_peaking1_value_n2 : 9;
550         } reg27;         // 0x026C
551 
552         struct {
553             RK_U32 sw_peaking1_value_n3 : 9;
554             RK_U32 reserved1            : 7;
555             RK_U32 sw_peaking1_value_p1 : 9;
556         } reg28;         // 0x0270
557 
558         struct {
559             RK_U32 sw_peaking1_value_p2 : 9;
560             RK_U32 reserved1            : 7;
561             RK_U32 sw_peaking1_value_p3 : 9;
562         } reg29;         // 0x0274
563 
564         struct {
565             RK_U32 sw_peaking1_ratio_n01: 12;
566             RK_U32 reserved1            : 4;
567             RK_U32 sw_peaking1_ratio_n12: 12;
568         } reg30;         // 0x0278
569 
570         struct {
571             RK_U32 sw_peaking1_ratio_n23: 12;
572             RK_U32 reserved1            : 4;
573             RK_U32 sw_peaking1_ratio_p01: 12;
574         } reg31;         // 0x027C
575 
576         struct {
577             RK_U32 sw_peaking1_ratio_p12: 12;
578             RK_U32 sw_peaking1_ratio_p23: 12;
579         } reg32;         // 0x0280
580 
581         RK_U32 reg33;
582 
583         struct {
584             RK_U32 sw_peaking2_idx_n0   : 9;
585             RK_U32 reserved1            : 7;
586             RK_U32 sw_peaking2_idx_n1   : 9;
587         } reg34;         // 0x0288
588 
589         struct {
590             RK_U32 sw_peaking2_idx_n2   : 9;
591             RK_U32 reserved1            : 7;
592             RK_U32 sw_peaking2_idx_n3   : 9;
593         } reg35;         // 0x028C
594 
595         struct {
596             RK_U32 sw_peaking2_idx_p0   : 9;
597             RK_U32 reserved1            : 7;
598             RK_U32 sw_peaking2_idx_p1   : 9;
599         } reg36;         // 0x0290
600 
601         struct {
602             RK_U32 sw_peaking2_idx_p2   : 9;
603             RK_U32 reserved1            : 7;
604             RK_U32 sw_peaking2_idx_p3   : 9;
605         } reg37;         // 0x0294
606 
607         struct {
608             RK_U32 sw_peaking2_value_n1 : 9;
609             RK_U32 reserved1            : 7;
610             RK_U32 sw_peaking2_value_n2 : 9;
611         } reg38;         // 0x0298
612 
613         struct {
614             RK_U32 sw_peaking2_value_n3 : 9;
615             RK_U32 reserved1            : 7;
616             RK_U32 sw_peaking2_value_p1 : 9;
617         } reg39;         // 0x029C
618 
619         struct {
620             RK_U32 sw_peaking2_value_p2 : 9;
621             RK_U32 reserved1            : 7;
622             RK_U32 sw_peaking2_value_p3 : 9;
623         } reg40;         // 0x02A0
624 
625         struct {
626             RK_U32 sw_peaking2_ratio_n01: 12;
627             RK_U32 reserved1            : 4;
628             RK_U32 sw_peaking2_ratio_n12: 12;
629         } reg41;         // 0x02A4
630 
631         struct {
632             RK_U32 sw_peaking2_ratio_n23: 12;
633             RK_U32 reserved1            : 4;
634             RK_U32 sw_peaking2_ratio_p01: 12;
635         } reg42;         // 0x02A8
636 
637         struct {
638             RK_U32 sw_peaking2_ratio_p12: 12;
639             RK_U32 sw_peaking2_ratio_p23: 12;
640         } reg43;         // 0x02AC
641 
642         RK_U32 reg44;
643 
644         struct {
645             RK_U32 sw_peaking3_idx_n0   : 9;
646             RK_U32 reserved1            : 7;
647             RK_U32 sw_peaking3_idx_n1   : 9;
648         } reg45;         // 0x02B4
649 
650         struct {
651             RK_U32 sw_peaking3_idx_n2   : 9;
652             RK_U32 reserved1            : 7;
653             RK_U32 sw_peaking3_idx_n3   : 9;
654         } reg46;         // 0x02B8
655 
656         struct {
657             RK_U32 sw_peaking3_idx_p0   : 9;
658             RK_U32 reserved1            : 7;
659             RK_U32 sw_peaking3_idx_p1   : 9;
660         } reg47;         // 0x02BC
661 
662         struct {
663             RK_U32 sw_peaking3_idx_p2   : 9;
664             RK_U32 reserved1            : 7;
665             RK_U32 sw_peaking3_idx_p3   : 9;
666         } reg48;         // 0x02C0
667 
668         struct {
669             RK_U32 sw_peaking3_value_n1 : 9;
670             RK_U32 reserved1            : 7;
671             RK_U32 sw_peaking3_value_n2 : 9;
672         } reg49;         // 0x02C4
673 
674         struct {
675             RK_U32 sw_peaking3_value_n3 : 9;
676             RK_U32 reserved1            : 7;
677             RK_U32 sw_peaking3_value_p1 : 9;
678         } reg50;         // 0x02C8
679 
680         struct {
681             RK_U32 sw_peaking3_value_p2 : 9;
682             RK_U32 reserved1            : 7;
683             RK_U32 sw_peaking3_value_p3 : 9;
684         } reg51;         // 0x02CC
685 
686         struct {
687             RK_U32 sw_peaking3_ratio_n01: 12;
688             RK_U32 reserved1            : 4;
689             RK_U32 sw_peaking3_ratio_n12: 12;
690         } reg52;         // 0x02D0
691 
692         struct {
693             RK_U32 sw_peaking3_ratio_n23: 12;
694             RK_U32 reserved1            : 4;
695             RK_U32 sw_peaking3_ratio_p01: 12;
696         } reg53;         // 0x02D4
697 
698         struct {
699             RK_U32 sw_peaking3_ratio_p12: 12;
700             RK_U32 sw_peaking3_ratio_p23: 12;
701         } reg54;         // 0x02D8
702 
703         RK_U32 reg55;
704 
705         struct {
706             RK_U32 sw_peaking4_idx_n0   : 9;
707             RK_U32 reserved1            : 7;
708             RK_U32 sw_peaking4_idx_n1   : 9;
709         } reg56;         // 0x02E0
710 
711         struct {
712             RK_U32 sw_peaking4_idx_n2   : 9;
713             RK_U32 reserved1            : 7;
714             RK_U32 sw_peaking4_idx_n3   : 9;
715         } reg57;         // 0x02E4
716 
717         struct {
718             RK_U32 sw_peaking4_idx_p0   : 9;
719             RK_U32 reserved1            : 7;
720             RK_U32 sw_peaking4_idx_p1   : 9;
721         } reg58;         // 0x02E8
722 
723         struct {
724             RK_U32 sw_peaking4_idx_p2   : 9;
725             RK_U32 reserved1            : 7;
726             RK_U32 sw_peaking4_idx_p3   : 9;
727         } reg59;         // 0x02EC
728 
729         struct {
730             RK_U32 sw_peaking4_value_n1 : 9;
731             RK_U32 reserved1            : 7;
732             RK_U32 sw_peaking4_value_n2 : 9;
733         } reg60;         // 0x02F0
734 
735         struct {
736             RK_U32 sw_peaking4_value_n3 : 9;
737             RK_U32 reserved1            : 7;
738             RK_U32 sw_peaking4_value_p1 : 9;
739         } reg61;         // 0x02F4
740 
741         struct {
742             RK_U32 sw_peaking4_value_p2 : 9;
743             RK_U32 reserved1            : 7;
744             RK_U32 sw_peaking4_value_p3 : 9;
745         } reg62;         // 0x02F8
746 
747         struct {
748             RK_U32 sw_peaking4_ratio_n01: 12;
749             RK_U32 reserved1            : 4;
750             RK_U32 sw_peaking4_ratio_n12: 12;
751         } reg63;         // 0x02FC
752 
753         struct {
754             RK_U32 sw_peaking4_ratio_n23: 12;
755             RK_U32 reserved1            : 4;
756             RK_U32 sw_peaking4_ratio_p01: 12;
757         } reg64;         // 0x0300
758 
759         struct {
760             RK_U32 sw_peaking4_ratio_p12: 12;
761             RK_U32 sw_peaking4_ratio_p23: 12;
762         } reg65;         // 0x0304
763 
764         RK_U32 reg66;
765 
766         struct {
767             RK_U32 sw_peaking5_idx_n0   : 9;
768             RK_U32 reserved1            : 7;
769             RK_U32 sw_peaking5_idx_n1   : 9;
770         } reg67;         // 0x030C
771 
772         struct {
773             RK_U32 sw_peaking5_idx_n2   : 9;
774             RK_U32 reserved1            : 7;
775             RK_U32 sw_peaking5_idx_n3   : 9;
776         } reg68;         // 0x0310
777 
778         struct {
779             RK_U32 sw_peaking5_idx_p0   : 9;
780             RK_U32 reserved1            : 7;
781             RK_U32 sw_peaking5_idx_p1   : 9;
782         } reg69;         // 0x0314
783 
784         struct {
785             RK_U32 sw_peaking5_idx_p2   : 9;
786             RK_U32 reserved1            : 7;
787             RK_U32 sw_peaking5_idx_p3   : 9;
788         } reg70;         // 0x0318
789 
790         struct {
791             RK_U32 sw_peaking5_value_n1 : 9;
792             RK_U32 reserved1            : 7;
793             RK_U32 sw_peaking5_value_n2 : 9;
794         } reg71;         // 0x031C
795 
796         struct {
797             RK_U32 sw_peaking5_value_n3 : 9;
798             RK_U32 reserved1            : 7;
799             RK_U32 sw_peaking5_value_p1 : 9;
800         } reg72;         // 0x0320
801 
802         struct {
803             RK_U32 sw_peaking5_value_p2 : 9;
804             RK_U32 reserved1            : 7;
805             RK_U32 sw_peaking5_value_p3 : 9;
806         } reg73;         // 0x0324
807 
808         struct {
809             RK_U32 sw_peaking5_ratio_n01: 12;
810             RK_U32 reserved1            : 4;
811             RK_U32 sw_peaking5_ratio_n12: 12;
812         } reg74;         // 0x0328
813 
814         struct {
815             RK_U32 sw_peaking5_ratio_n23: 12;
816             RK_U32 reserved1            : 4;
817             RK_U32 sw_peaking5_ratio_p01: 12;
818         } reg75;         // 0x032C
819 
820         struct {
821             RK_U32 sw_peaking5_ratio_p12: 12;
822             RK_U32 sw_peaking5_ratio_p23: 12;
823         } reg76;         // 0x0330
824 
825         RK_U32 reg77;
826 
827         struct {
828             RK_U32 sw_peaking6_idx_n0   : 12;
829             RK_U32 reserved1            : 4;
830             RK_U32 sw_peaking6_idx_n1   : 12;
831         } reg78;         // 0x0338
832 
833         struct {
834             RK_U32 sw_peaking6_idx_n2   : 9;
835             RK_U32 reserved1            : 7;
836             RK_U32 sw_peaking6_idx_n3   : 9;
837         } reg79;         // 0x033C
838 
839         struct {
840             RK_U32 sw_peaking6_idx_p0   : 9;
841             RK_U32 reserved1            : 7;
842             RK_U32 sw_peaking6_idx_p1   : 9;
843         } reg80;         // 0x0340
844 
845         struct {
846             RK_U32 sw_peaking6_idx_p2   : 9;
847             RK_U32 reserved1            : 7;
848             RK_U32 sw_peaking6_idx_p3   : 9;
849         } reg81;         // 0x0344
850 
851         struct {
852             RK_U32 sw_peaking6_value_n1 : 9;
853             RK_U32 reserved1            : 7;
854             RK_U32 sw_peaking6_value_n2 : 9;
855         } reg82;         // 0x0348
856 
857         struct {
858             RK_U32 sw_peaking6_value_n3 : 9;
859             RK_U32 reserved1            : 7;
860             RK_U32 sw_peaking6_value_p1 : 9;
861         } reg83;         // 0x034C
862 
863         struct {
864             RK_U32 sw_peaking6_value_p2 : 9;
865             RK_U32 reserved1            : 7;
866             RK_U32 sw_peaking6_value_p3 : 9;
867         } reg84;         // 0x0350
868 
869         struct {
870             RK_U32 sw_peaking6_ratio_n01: 12;
871             RK_U32 reserved1            : 4;
872             RK_U32 sw_peaking6_ratio_n12: 12;
873         } reg85;         // 0x0354
874 
875         struct {
876             RK_U32 sw_peaking6_ratio_n23: 12;
877             RK_U32 reserved1            : 4;
878             RK_U32 sw_peaking6_ratio_p01: 12;
879         } reg86;         // 0x0358
880 
881         struct {
882             RK_U32 sw_peaking6_ratio_p12: 12;
883             RK_U32 sw_peaking6_ratio_p23: 12;
884         } reg87;         // 0x035C
885 
886         RK_U32 reg_88_99[12];
887 
888         struct {
889             RK_U32 sw_peaking_gain      : 10;
890             RK_U32 reserved1            : 2;
891             RK_U32 sw_nondir_thr        : 7;
892             RK_U32 reserved2            : 1;
893             RK_U32 sw_dir_cmp_ratio     : 4;
894             RK_U32 sw_nondir_wgt_ratio  : 5;
895         } reg100;        // 0x0390
896 
897         struct {
898             RK_U32 sw_nondir_wgt_offset : 8;
899             RK_U32 sw_dir_cnt_thr       : 4;
900             RK_U32 sw_dir_cnt_avg       : 3;
901             RK_U32 reserved1            : 1;
902             RK_U32 sw_dir_cnt_offset    : 4;
903             RK_U32 sw_diag_dir_thr      : 7;
904         } reg101;        // 0x0394
905 
906         struct {
907             RK_U32 sw_diag_adjgain_tab0 : 4;
908             RK_U32 sw_diag_adjgain_tab1 : 4;
909             RK_U32 sw_diag_adjgain_tab2 : 4;
910             RK_U32 sw_diag_adjgain_tab3 : 4;
911             RK_U32 sw_diag_adjgain_tab4 : 4;
912             RK_U32 sw_diag_adjgain_tab5 : 4;
913             RK_U32 sw_diag_adjgain_tab6 : 4;
914             RK_U32 sw_diag_adjgain_tab7 : 4;
915         } reg102;        // 0x0398
916 
917         struct {
918             RK_U32 sw_edge_alpha_over_non       : 7;
919             RK_U32 reserved1            : 1;
920             RK_U32 sw_edge_alpha_under_non      : 7;
921             RK_U32 reserved2            : 1;
922             RK_U32 sw_edge_alpha_over_unlimit_non       : 7;
923             RK_U32 reserved3            : 1;
924             RK_U32 sw_edge_alpha_under_unlimit_non      : 7;
925         } reg103;        // 0x039C
926 
927         struct {
928             RK_U32 sw_edge_alpha_over_v : 7;
929             RK_U32 reserved1            : 1;
930             RK_U32 sw_edge_alpha_under_v: 7;
931             RK_U32 reserved2            : 1;
932             RK_U32 sw_edge_alpha_over_unlimit_v : 7;
933             RK_U32 reserved3            : 1;
934             RK_U32 sw_edge_alpha_under_unlimit_v: 7;
935         } reg104;        // 0x03A0
936 
937         struct {
938             RK_U32 sw_edge_alpha_over_h : 7;
939             RK_U32 reserved1            : 1;
940             RK_U32 sw_edge_alpha_under_h: 7;
941             RK_U32 reserved2            : 1;
942             RK_U32 sw_edge_alpha_over_unlimit_h : 7;
943             RK_U32 reserved3            : 1;
944             RK_U32 sw_edge_alpha_under_unlimit_h: 7;
945         } reg105;        // 0x03A4
946 
947         struct {
948             RK_U32 sw_edge_alpha_over_d0: 7;
949             RK_U32 reserved1            : 1;
950             RK_U32 sw_edge_alpha_under_d0       : 7;
951             RK_U32 reserved2            : 1;
952             RK_U32 sw_edge_alpha_over_unlimit_d0: 7;
953             RK_U32 reserved3            : 1;
954             RK_U32 sw_edge_alpha_under_unlimit_d0       : 7;
955         } reg106;        // 0x03A8
956 
957         struct {
958             RK_U32 sw_edge_alpha_over_d1: 7;
959             RK_U32 reserved1            : 1;
960             RK_U32 sw_edge_alpha_under_d1       : 7;
961             RK_U32 reserved2            : 1;
962             RK_U32 sw_edge_alpha_over_unlimit_d1: 7;
963             RK_U32 reserved3            : 1;
964             RK_U32 sw_edge_alpha_under_unlimit_d1       : 7;
965         } reg107;        // 0x03AC
966 
967         struct {
968             RK_U32 sw_edge_delta_offset_non     : 8;
969             RK_U32 sw_edge_delta_offset_v       : 8;
970             RK_U32 sw_edge_delta_offset_h       : 8;
971         } reg108;        // 0x03B0
972 
973         struct {
974             RK_U32 sw_edge_delta_offset_d0      : 8;
975             RK_U32 sw_edge_delta_offset_d1      : 8;
976         } reg109;        // 0x03B4
977 
978         struct {
979             RK_U32 sw_shoot_filt_radius : 1;
980             RK_U32 reserved1            : 3;
981             RK_U32 sw_shoot_delta_offset: 8;
982             RK_U32 sw_shoot_alpha_over  : 7;
983             RK_U32 reserved2            : 1;
984             RK_U32 sw_shoot_alpha_under : 7;
985         } reg110;        // 0x03B8
986 
987         struct {
988             RK_U32 sw_shoot_alpha_over_unlimit  : 7;
989             RK_U32 reserved1            : 1;
990             RK_U32 sw_shoot_alpha_under_unlimit : 7;
991         } reg111;        // 0x03BC
992 
993         struct {
994             RK_U32 sw_adp_idx0          : 8;
995             RK_U32 reserved1            : 2;
996             RK_U32 sw_adp_idx1          : 8;
997             RK_U32 reserved2            : 2;
998             RK_U32 sw_adp_idx2          : 8;
999         } reg112;        // 0x03C0
1000 
1001         struct {
1002             RK_U32 sw_adp_idx3          : 8;
1003             RK_U32 reserved1            : 4;
1004             RK_U32 sw_adp_gain0         : 7;
1005             RK_U32 reserved2            : 1;
1006             RK_U32 sw_adp_gain1         : 7;
1007         } reg113;        // 0x03C4
1008 
1009         struct {
1010             RK_U32 sw_adp_gain2         : 7;
1011             RK_U32 reserved1            : 1;
1012             RK_U32 sw_adp_gain3         : 7;
1013             RK_U32 reserved2            : 1;
1014             RK_U32 sw_adp_gain4         : 7;
1015         } reg114;        // 0x03C8
1016 
1017         struct {
1018             RK_U32 sw_adp_slp01         : 11;
1019             RK_U32 reserved1            : 1;
1020             RK_U32 sw_adp_slp12         : 11;
1021         } reg115;        // 0x03CC
1022 
1023         RK_U32 reg_116_127[12];
1024 
1025         struct {
1026             RK_U32 sw_adp_slp23         : 11;
1027             RK_U32 reserved1            : 1;
1028             RK_U32 sw_adp_slp34         : 11;
1029         } reg128;        // 0x0400
1030 
1031         struct {
1032             RK_U32 sw_adp_slp45         : 11;
1033             RK_U32 sw_var_idx0          : 8;
1034             RK_U32 reserved1            : 2;
1035             RK_U32 sw_var_idx1          : 8;
1036         } reg129;        // 0x0404
1037 
1038         struct {
1039             RK_U32 sw_var_idx2          : 8;
1040             RK_U32 reserved1            : 4;
1041             RK_U32 sw_var_idx3          : 8;
1042             RK_U32 reserved2            : 4;
1043             RK_U32 sw_var_gain0         : 7;
1044         } reg130;        // 0x0408
1045 
1046         struct {
1047             RK_U32 sw_var_gain1         : 7;
1048             RK_U32 reserved1            : 1;
1049             RK_U32 sw_var_gain2         : 7;
1050             RK_U32 reserved2            : 1;
1051             RK_U32 sw_var_gain3         : 7;
1052             RK_U32 reserved3            : 1;
1053             RK_U32 sw_var_gain4         : 7;
1054         } reg131;        // 0x040C
1055 
1056         struct {
1057             RK_U32 sw_var_slp01         : 11;
1058             RK_U32 reserved1            : 1;
1059             RK_U32 sw_var_slp12         : 11;
1060         } reg132;        // 0x0410
1061 
1062         struct {
1063             RK_U32 sw_var_slp23         : 11;
1064             RK_U32 reserved1            : 1;
1065             RK_U32 sw_var_slp34         : 11;
1066         } reg133;        // 0x0414
1067 
1068         struct {
1069             RK_U32 sw_var_slp45         : 11;
1070             RK_U32 reserved1            : 5;
1071             RK_U32 sw_lum_select        : 2;
1072             RK_U32 reserved2            : 2;
1073             RK_U32 sw_lum_idx0          : 8;
1074         } reg134;        // 0x0418
1075 
1076         struct {
1077             RK_U32 sw_lum_idx1          : 8;
1078             RK_U32 reserved1            : 2;
1079             RK_U32 sw_lum_idx2          : 8;
1080             RK_U32 reserved2            : 2;
1081             RK_U32 sw_lum_idx3          : 8;
1082         } reg135;        // 0x041C
1083 
1084         struct {
1085             RK_U32 sw_lum_gain0         : 7;
1086             RK_U32 reserved1            : 1;
1087             RK_U32 sw_lum_gain1         : 7;
1088             RK_U32 reserved2            : 1;
1089             RK_U32 sw_lum_gain2         : 7;
1090             RK_U32 reserved3            : 1;
1091             RK_U32 sw_lum_gain3         : 7;
1092         } reg136;        // 0x0420
1093 
1094         struct {
1095             RK_U32 sw_lum_gain4         : 7;
1096             RK_U32 reserved1            : 1;
1097             RK_U32 sw_lum_slp01         : 11;
1098             RK_U32 reserved2            : 1;
1099             RK_U32 sw_lum_slp12         : 11;
1100         } reg137;        // 0x0424
1101 
1102         struct {
1103             RK_U32 sw_lum_slp23         : 11;
1104             RK_U32 reserved1            : 1;
1105             RK_U32 sw_lum_slp34         : 11;
1106         } reg138;        // 0x0428
1107 
1108         struct {
1109             RK_U32 sw_lum_slp45         : 11;
1110         } reg139;        // 0x042C
1111 
1112         struct {
1113             RK_U32 sw_adj_point_x0      : 8;
1114             RK_U32 reserved1            : 4;
1115             RK_U32 sw_adj_point_y0      : 8;
1116             RK_U32 reserved2            : 4;
1117             RK_U32 sw_adj_scaling_coef0 : 3;
1118         } reg140;        // 0x0430
1119 
1120         struct {
1121             RK_U32 sw_coloradj_tab0_0   : 5;
1122             RK_U32 sw_coloradj_tab0_1   : 5;
1123             RK_U32 sw_coloradj_tab0_2   : 5;
1124             RK_U32 sw_coloradj_tab0_3   : 5;
1125             RK_U32 sw_coloradj_tab0_4   : 5;
1126             RK_U32 sw_coloradj_tab0_5   : 5;
1127         } reg141;        // 0x0434
1128 
1129         struct {
1130             RK_U32 sw_coloradj_tab0_6   : 5;
1131             RK_U32 sw_coloradj_tab0_7   : 5;
1132             RK_U32 sw_coloradj_tab0_8   : 5;
1133             RK_U32 sw_coloradj_tab0_9   : 5;
1134             RK_U32 sw_coloradj_tab0_10  : 5;
1135             RK_U32 sw_coloradj_tab0_11  : 5;
1136         } reg142;        // 0x0438
1137 
1138         struct {
1139             RK_U32 sw_coloradj_tab0_12  : 5;
1140             RK_U32 sw_coloradj_tab0_13  : 5;
1141             RK_U32 sw_coloradj_tab0_14  : 5;
1142             RK_U32 sw_coloradj_tab0_15  : 5;
1143         } reg143;        // 0x043C
1144 
1145         struct {
1146             RK_U32 sw_adj_point_x1      : 8;
1147             RK_U32 reserved1            : 4;
1148             RK_U32 sw_adj_point_y1      : 8;
1149             RK_U32 reserved2            : 4;
1150             RK_U32 sw_adj_scaling_coef1 : 3;
1151         } reg144;        // 0x0440
1152 
1153         struct {
1154             RK_U32 sw_coloradj_tab1_0   : 5;
1155             RK_U32 sw_coloradj_tab1_1   : 5;
1156             RK_U32 sw_coloradj_tab1_2   : 5;
1157             RK_U32 sw_coloradj_tab1_3   : 5;
1158             RK_U32 sw_coloradj_tab1_4   : 5;
1159             RK_U32 sw_coloradj_tab1_5   : 5;
1160         } reg145;        // 0x0444
1161 
1162         struct {
1163             RK_U32 sw_coloradj_tab1_6   : 5;
1164             RK_U32 sw_coloradj_tab1_7   : 5;
1165             RK_U32 sw_coloradj_tab1_8   : 5;
1166             RK_U32 sw_coloradj_tab1_9   : 5;
1167             RK_U32 sw_coloradj_tab1_10  : 5;
1168             RK_U32 sw_coloradj_tab1_11  : 5;
1169         } reg146;        // 0x0448
1170 
1171         struct {
1172             RK_U32 sw_coloradj_tab1_12  : 5;
1173             RK_U32 sw_coloradj_tab1_13  : 5;
1174             RK_U32 sw_coloradj_tab1_14  : 5;
1175             RK_U32 sw_coloradj_tab1_15  : 5;
1176         } reg147;        // 0x044C
1177 
1178         struct {
1179             RK_U32 sw_adj_point_x2      : 8;
1180             RK_U32 reserved1            : 4;
1181             RK_U32 sw_adj_point_y2      : 8;
1182             RK_U32 reserved2            : 4;
1183             RK_U32 sw_adj_scaling_coef2 : 3;
1184         } reg148;        // 0x0450
1185 
1186         struct {
1187             RK_U32 sw_coloradj_tab2_0   : 5;
1188             RK_U32 sw_coloradj_tab2_1   : 5;
1189             RK_U32 sw_coloradj_tab2_2   : 5;
1190             RK_U32 sw_coloradj_tab2_3   : 5;
1191             RK_U32 sw_coloradj_tab2_4   : 5;
1192             RK_U32 sw_coloradj_tab2_5   : 5;
1193         } reg149;        // 0x0454
1194 
1195         struct {
1196             RK_U32 sw_coloradj_tab2_6   : 5;
1197             RK_U32 sw_coloradj_tab2_7   : 5;
1198             RK_U32 sw_coloradj_tab2_8   : 5;
1199             RK_U32 sw_coloradj_tab2_9   : 5;
1200             RK_U32 sw_coloradj_tab2_10  : 5;
1201             RK_U32 sw_coloradj_tab2_11  : 5;
1202         } reg150;        // 0x0458
1203 
1204         struct {
1205             RK_U32 sw_coloradj_tab2_12  : 5;
1206             RK_U32 sw_coloradj_tab2_13  : 5;
1207             RK_U32 sw_coloradj_tab2_14  : 5;
1208             RK_U32 sw_coloradj_tab2_15  : 5;
1209         } reg151;        // 0x045C
1210 
1211         struct {
1212             RK_U32 sw_adj_point_x3      : 8;
1213             RK_U32 reserved1            : 4;
1214             RK_U32 sw_adj_point_y3      : 8;
1215             RK_U32 reserved2            : 4;
1216             RK_U32 sw_adj_scaling_coef3 : 3;
1217         } reg152;        // 0x0460
1218 
1219         struct {
1220             RK_U32 sw_coloradj_tab3_0   : 5;
1221             RK_U32 sw_coloradj_tab3_1   : 5;
1222             RK_U32 sw_coloradj_tab3_2   : 5;
1223             RK_U32 sw_coloradj_tab3_3   : 5;
1224             RK_U32 sw_coloradj_tab3_4   : 5;
1225             RK_U32 sw_coloradj_tab3_5   : 5;
1226         } reg153;        // 0x0464
1227 
1228         struct {
1229             RK_U32 sw_coloradj_tab3_6   : 5;
1230             RK_U32 sw_coloradj_tab3_7   : 5;
1231             RK_U32 sw_coloradj_tab3_8   : 5;
1232             RK_U32 sw_coloradj_tab3_9   : 5;
1233             RK_U32 sw_coloradj_tab3_10  : 5;
1234             RK_U32 sw_coloradj_tab3_11  : 5;
1235         } reg154;        // 0x0468
1236 
1237         struct {
1238             RK_U32 sw_coloradj_tab3_12  : 5;
1239             RK_U32 sw_coloradj_tab3_13  : 5;
1240             RK_U32 sw_coloradj_tab3_14  : 5;
1241             RK_U32 sw_coloradj_tab3_15  : 5;
1242         } reg155;        // 0x046C
1243 
1244         struct {
1245             RK_U32 sw_idxmode_select    : 1;
1246             RK_U32 sw_ymode_select      : 2;
1247             RK_U32 reserved1            : 1;
1248             RK_U32 sw_tex_idx0          : 8;
1249             RK_U32 reserved2            : 4;
1250             RK_U32 sw_tex_idx1          : 8;
1251         } reg156;        // 0x0470
1252 
1253         struct {
1254             RK_U32 sw_tex_idx2          : 8;
1255             RK_U32 reserved1            : 4;
1256             RK_U32 sw_tex_idx3          : 8;
1257             RK_U32 reserved2            : 4;
1258             RK_U32 sw_tex_gain0         : 7;
1259         } reg157;        // 0x0474
1260 
1261         struct {
1262             RK_U32 sw_tex_gain1         : 7;
1263             RK_U32 reserved1            : 1;
1264             RK_U32 sw_tex_gain2         : 7;
1265             RK_U32 reserved2            : 1;
1266             RK_U32 sw_tex_gain3         : 7;
1267             RK_U32 reserved3            : 1;
1268             RK_U32 sw_tex_gain4         : 7;
1269         } reg158;        // 0x0478
1270 
1271         struct {
1272             RK_U32 sw_tex_slp01         : 11;
1273             RK_U32 reserved1            : 1;
1274             RK_U32 sw_tex_slp12         : 11;
1275         } reg159;        // 0x047C
1276 
1277         struct {
1278             RK_U32 sw_tex_slp23         : 11;
1279             RK_U32 reserved1            : 1;
1280             RK_U32 sw_tex_slp34         : 11;
1281         } reg160;        // 0x0480
1282 
1283         struct {
1284             RK_U32 sw_tex_slp45         : 11;
1285         } reg161;        // 0x0484
1286 
1287         struct {
1288             RK_U32 sw_ltih_radius       : 1;
1289             RK_U32 reserved1            : 3;
1290             RK_U32 sw_ltih_slp1         : 9;
1291             RK_U32 reserved2            : 3;
1292             RK_U32 sw_ltih_thr1         : 9;
1293         } reg162;        // 0x0488
1294 
1295         struct {
1296             RK_U32 sw_ltih_noisethrneg  : 10;
1297             RK_U32 reserved1            : 2;
1298             RK_U32 sw_ltih_noisethrpos  : 10;
1299             RK_U32 reserved2            : 2;
1300             RK_U32 sw_ltih_tigain       : 5;
1301         } reg163;        // 0x048C
1302 
1303         struct {
1304             RK_U32 sw_ltiv_radius       : 1;
1305             RK_U32 reserved1            : 3;
1306             RK_U32 sw_ltiv_slp1         : 9;
1307             RK_U32 reserved2            : 3;
1308             RK_U32 sw_ltiv_thr1         : 9;
1309         } reg164;        // 0x0490
1310 
1311         struct {
1312             RK_U32 sw_ltiv_noisethrneg  : 10;
1313             RK_U32 reserved1            : 2;
1314             RK_U32 sw_ltiv_noisethrpos  : 10;
1315             RK_U32 reserved2            : 2;
1316             RK_U32 sw_ltiv_tigain       : 5;
1317         } reg165;        // 0x0494
1318 
1319         struct {
1320             RK_U32 sw_ctih_radius       : 1;
1321             RK_U32 reserved1            : 3;
1322             RK_U32 sw_ctih_slp1         : 9;
1323             RK_U32 reserved2            : 3;
1324             RK_U32 sw_ctih_thr1         : 9;
1325         } reg166;        // 0x0498
1326 
1327         struct {
1328             RK_U32 sw_ctih_noisethrneg  : 10;
1329             RK_U32 reserved1            : 2;
1330             RK_U32 sw_ctih_noisethrpos  : 10;
1331             RK_U32 reserved2            : 2;
1332             RK_U32 sw_ctih_tigain       : 5;
1333         } reg167;        // 0x049C
1334 
1335         RK_U32 reg_168_169[2];
1336 
1337         struct {
1338             RK_U32 sw_ink_mode          : 4;
1339         } reg170;        // 0x04A8
1340 
1341         RK_U32 reg171;
1342 
1343     } sharp;             // offset: 0x1200
1344 
1345 };
1346 
1347 #endif
1348