xref: /rockchip-linux_mpp/mpp/hal/rkdec/avsd/hal_avsd_vdpu2_reg.h (revision 437bfbeb9567cca9cd9080e3f6954aa9d6a94f18)
1 /*
2  * Copyright 2015 Rockchip Electronics Co. LTD
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 #ifndef __HAL_AVSD_VDPU2_REG_H__
18 #define __HAL_AVSD_VDPU2_REG_H__
19 
20 
21 typedef struct {
22     RK_U32 sw00_49[50];
23     struct {
24         RK_U32 dec_tiled_msb : 1;
25         RK_U32 adtion_latency : 6;
26         RK_U32 dec_fixed_quant : 1;
27         RK_U32 filtering_dis : 1;
28         RK_U32 skip_mode : 1;
29         RK_U32 dec_ascmd0_dis : 1;
30         RK_U32 adv_pref_dis : 1;
31         RK_U32 dec_tiled_lsb : 1;
32         RK_U32 refbuf_thrd : 12;
33         RK_U32 refbuf_pid : 5;
34         RK_U32 reverse0 : 2;
35     } sw50;
36     struct {
37         RK_U32 stream_len : 24;
38         RK_U32 stream_len_ext : 1;
39         RK_U32 init_qp : 6;
40         RK_U32 reverse0 : 1;
41     } sw51;
42     struct {
43         RK_U32 startmb_y : 8;
44         RK_U32 startmb_x : 9;
45         RK_U32 adv_pref_thrd : 14;
46         RK_U32 reverse0 : 1;
47     } sw52;
48     struct {
49         RK_U32 dec_fmt_sel : 4;
50         RK_U32 reverse0 : 28;
51     } sw53;
52     struct {
53         RK_U32 dec_in_endian : 1;
54         RK_U32 dec_out_endian : 1;
55         RK_U32 dec_in_wordsp : 1;
56         RK_U32 dec_out_wordsp : 1;
57         RK_U32 dec_strm_wordsp : 1;
58         RK_U32 dec_strendian_e : 1;
59         RK_U32 reverse0 : 26;
60     } sw54;
61     struct {
62         RK_U32 dec_irq : 1;
63         RK_U32 dec_irq_dis : 1;
64         RK_U32 reverse0 : 2;
65         RK_U32 dec_rdy_sts : 1;
66         RK_U32 pp_bus_sts : 1;
67         RK_U32 buf_emt_sts : 1;
68         RK_U32 reverse1 : 1;
69         RK_U32 aso_det_sts : 1;
70         RK_U32 slice_det_sts : 1;
71         RK_U32 bslice_det_sts : 1;
72         RK_U32 reverse2 : 1;
73         RK_U32 error_det_sts : 1;
74         RK_U32 timeout_det_sts : 1;
75         RK_U32 reverse3 : 18;
76     } sw55;
77     struct {
78         RK_U32 dec_axi_id_rd : 8;
79         RK_U32 dec_axi_id_wr : 8;
80         RK_U32 dec_max_burlen : 5;
81         RK_U32 bus_pos_sel : 1;
82         RK_U32 dec_data_discd_en : 1;
83         RK_U32 axi_sel : 1;
84         RK_U32 reverse0 : 8;
85     } sw56;
86     struct {
87         RK_U32 dec_e : 1;
88         RK_U32 refpic_buf2_en : 1;
89         RK_U32 dec_out_dis : 1;
90         RK_U32 reverse0 : 1;
91         RK_U32 dec_clkgate_en : 1;
92         RK_U32 timeout_sts_en : 1;
93         RK_U32 rd_cnt_tab_en : 1;
94         RK_U32 reverse1 : 1;
95         RK_U32 first_reftop_en : 1;
96         RK_U32 reftop_en : 1;
97         RK_U32 dmmv_wr_en : 1;
98         RK_U32 reverse2 : 1;
99         RK_U32 fwd_interlace_e : 1;
100         RK_U32 pic_topfield_e : 1;
101         RK_U32 pic_inter_e : 1;
102         RK_U32 pic_b_e : 1;
103         RK_U32 pic_fieldmode_e : 1;
104         RK_U32 pic_interlace_e : 1;
105         RK_U32 reverse3 : 2;
106         RK_U32 rlc_mode_en : 1;
107         RK_U32 addit_ch_fmt_wen : 1;
108         RK_U32 st_code_exit : 1;
109         RK_U32 reverse4 : 2;
110         RK_U32 inter_dblspeed : 1;
111         RK_U32 intra_dblspeed : 1;
112         RK_U32 intra_dbl3t : 1;
113         RK_U32 pref_sigchan : 1;
114         RK_U32 cache_en : 1;
115         RK_U32 reverse5 : 1;
116         RK_U32 dec_timeout_mode : 1;
117     } sw57;
118     RK_U32 sw58;
119     struct {
120         RK_U32 reserve : 2;
121         RK_U32 pred_bc_tap_0_2 : 10;
122         RK_U32 pred_bc_tap_0_1 : 10;
123         RK_U32 pred_bc_tap_0_0 : 10;
124     } sw59;
125     RK_U32 sw60;
126     RK_U32 sw61;
127     struct {
128         RK_U32 dmmv_st_adr : 32;
129     } sw62;
130     struct {
131         RK_U32 dec_out_st_adr : 32;
132     } sw63;
133     struct {
134         RK_U32 rlc_vlc_st_adr : 32;
135     } sw64;
136     RK_U32 sw65_119[55];
137     struct {
138         RK_U32 pic_refer_flag : 1;
139         RK_U32 reserver0 : 6;
140         RK_U32 mb_height_off : 4;
141         RK_U32 pic_mb_height_p : 8;
142         RK_U32 mb_width_off : 4;
143         RK_U32 pic_mb_width : 9;
144     } sw120;
145     struct {
146         RK_U32 reserve0 : 25;
147         RK_U32 avs_h_ext : 1;
148         RK_U32 reserve1 : 6;
149     } sw121;
150     struct {
151         RK_U32 beta_offset : 5;
152         RK_U32 alpha_offset : 5;
153         RK_U32 reserver0 : 16;
154         RK_U32 strm_start_bit : 6;
155     } sw122;
156     RK_U32 sw123_128[6];
157     struct {
158         RK_U32 ref_invd_col_0 : 16;
159         RK_U32 ref_invd_col_1 : 16;
160     } sw129;
161     struct {
162         RK_U32 ref_invd_col_2 : 16;
163         RK_U32 ref_invd_col_3 : 16;
164     } sw130;
165     union {
166         RK_U32 refer0_base : 32;
167         struct { //!< left move 10bit
168             RK_U32 refer0_topc_e  : 1;
169             RK_U32 refer0_field_e : 1;
170         };
171     } sw131;
172     struct {
173         RK_U32 ref_dist_cur_0 : 16;
174         RK_U32 ref_dist_cur_1 : 16;
175     } sw132;
176     struct {
177         RK_U32 ref_dist_cur_2 : 16;
178         RK_U32 ref_dist_cur_3 : 16;
179     } sw133;
180     union {
181         RK_U32 refer2_base : 32;
182         struct { //!< left move 10bit
183             RK_U32 refer2_topc_e  : 1;
184             RK_U32 refer2_field_e : 1;
185         };
186     } sw134;
187     union {
188         RK_U32 refer3_base : 32;
189         struct { //!< left move 10bit
190             RK_U32 refer3_topc_e  : 1;
191             RK_U32 refer3_field_e : 1;
192         };
193     } sw135;
194     struct {
195         RK_U32 prev_anc_type : 1;
196         RK_U32 reserver0 : 31;
197     } sw136;
198     RK_U32 sw137_145[9];
199     struct {
200         RK_U32 ref_invd_cur_0 : 16;
201         RK_U32 ref_invd_cur_1 : 16;
202     } sw146;
203     struct {
204         RK_U32 ref_invd_cur_2 : 16;
205         RK_U32 ref_invd_cur_3 : 16;
206     } sw147;
207     union {
208         RK_U32 refer1_base : 32;
209         struct { //!< left move 10bit
210             RK_U32 refer1_topc_e  : 1;
211             RK_U32 refer1_field_e : 1;
212         };
213     } sw148;
214     RK_U32 sw149_152[4];
215     struct {
216         RK_U32  reserve : 2;
217         RK_U32  pred_bc_tap_1_1 : 10;
218         RK_U32  pred_bc_tap_1_0 : 10;
219         RK_U32  pred_bc_tap_0_3 : 10;
220     } sw153;
221     struct {
222         RK_U32  reserve : 2;
223         RK_U32  pred_bc_tap_2_0 : 10;
224         RK_U32  pred_bc_tap_1_3 : 10;
225         RK_U32  pred_bc_tap_1_2 : 10;
226     } sw154;
227     RK_U32 sw155_158[4];
228 } AvsdVdpu2Regs_t;
229 
230 #endif /*__HAL_AVSD_VDPU2_REG_H__*/
231