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