1*437bfbebSnyanmisaka /* 2*437bfbebSnyanmisaka * Copyright 2015 Rockchip Electronics Co. LTD 3*437bfbebSnyanmisaka * 4*437bfbebSnyanmisaka * Licensed under the Apache License, Version 2.0 (the "License"); 5*437bfbebSnyanmisaka * you may not use this file except in compliance with the License. 6*437bfbebSnyanmisaka * You may obtain a copy of the License at 7*437bfbebSnyanmisaka * 8*437bfbebSnyanmisaka * http://www.apache.org/licenses/LICENSE-2.0 9*437bfbebSnyanmisaka * 10*437bfbebSnyanmisaka * Unless required by applicable law or agreed to in writing, software 11*437bfbebSnyanmisaka * distributed under the License is distributed on an "AS IS" BASIS, 12*437bfbebSnyanmisaka * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13*437bfbebSnyanmisaka * See the License for the specific language governing permissions and 14*437bfbebSnyanmisaka * limitations under the License. 15*437bfbebSnyanmisaka */ 16*437bfbebSnyanmisaka 17*437bfbebSnyanmisaka #ifndef __HAL_AVSD_VDPU1_REG_H__ 18*437bfbebSnyanmisaka #define __HAL_AVSD_VDPU1_REG_H__ 19*437bfbebSnyanmisaka 20*437bfbebSnyanmisaka 21*437bfbebSnyanmisaka typedef struct { 22*437bfbebSnyanmisaka RK_U32 sw00; 23*437bfbebSnyanmisaka struct { 24*437bfbebSnyanmisaka RK_U32 dec_e : 1; 25*437bfbebSnyanmisaka RK_U32 reserve0 : 3; 26*437bfbebSnyanmisaka RK_U32 dec_irq_dis : 1; 27*437bfbebSnyanmisaka RK_U32 dec_abort_e : 1; 28*437bfbebSnyanmisaka RK_U32 reserve1 : 2; 29*437bfbebSnyanmisaka RK_U32 dec_irq : 1; 30*437bfbebSnyanmisaka RK_U32 reserve2 : 2; 31*437bfbebSnyanmisaka RK_U32 dec_abort_int : 1; 32*437bfbebSnyanmisaka RK_U32 dec_rdy_int : 1; 33*437bfbebSnyanmisaka RK_U32 dec_bus_int : 1; 34*437bfbebSnyanmisaka RK_U32 dec_buffer_int : 1; 35*437bfbebSnyanmisaka RK_U32 reserve3 : 1; 36*437bfbebSnyanmisaka RK_U32 dec_error_int : 1; 37*437bfbebSnyanmisaka RK_U32 reserve4 : 1; 38*437bfbebSnyanmisaka RK_U32 dec_timeout : 1; 39*437bfbebSnyanmisaka RK_U32 reserve5 : 5; 40*437bfbebSnyanmisaka RK_U32 dec_pic_inf : 1; 41*437bfbebSnyanmisaka RK_U32 reserve6 : 7; 42*437bfbebSnyanmisaka } sw01; 43*437bfbebSnyanmisaka union { 44*437bfbebSnyanmisaka struct { 45*437bfbebSnyanmisaka RK_U32 dec_max_burst : 5; 46*437bfbebSnyanmisaka RK_U32 dec_scmd_dis : 1; 47*437bfbebSnyanmisaka RK_U32 dec_adv_pre_dis : 1; 48*437bfbebSnyanmisaka RK_U32 tiled_mode_lsb : 1; 49*437bfbebSnyanmisaka RK_U32 dec_out_endian : 1; 50*437bfbebSnyanmisaka RK_U32 dec_in_endian : 1; 51*437bfbebSnyanmisaka RK_U32 dec_clk_gate_e : 1; 52*437bfbebSnyanmisaka RK_U32 dec_latency : 6; 53*437bfbebSnyanmisaka RK_U32 dec_out_tiled_e : 1; 54*437bfbebSnyanmisaka RK_U32 dec_data_disc_e : 1; 55*437bfbebSnyanmisaka RK_U32 dec_outswap32_e : 1; 56*437bfbebSnyanmisaka RK_U32 dec_inswap32_e : 1; 57*437bfbebSnyanmisaka RK_U32 dec_strendian_e : 1; 58*437bfbebSnyanmisaka RK_U32 dec_strswap32_e : 1; 59*437bfbebSnyanmisaka RK_U32 dec_timeout_e : 1; 60*437bfbebSnyanmisaka RK_U32 dec_axi_rd_id : 8; 61*437bfbebSnyanmisaka }; 62*437bfbebSnyanmisaka struct { 63*437bfbebSnyanmisaka RK_U32 reserve0 : 5; 64*437bfbebSnyanmisaka RK_U32 priority_mode : 3; 65*437bfbebSnyanmisaka RK_U32 reserve1 : 9; 66*437bfbebSnyanmisaka RK_U32 tiled_mode_msb : 1; 67*437bfbebSnyanmisaka RK_U32 dec_2chan_dis : 1; 68*437bfbebSnyanmisaka RK_U32 reserve2 : 13; 69*437bfbebSnyanmisaka }; 70*437bfbebSnyanmisaka } sw02; 71*437bfbebSnyanmisaka struct { 72*437bfbebSnyanmisaka RK_U32 dec_axi_wr_id : 8; 73*437bfbebSnyanmisaka RK_U32 dec_ahb_hlock_e : 1; 74*437bfbebSnyanmisaka RK_U32 picord_count_e : 1; 75*437bfbebSnyanmisaka RK_U32 reserve0 : 1; 76*437bfbebSnyanmisaka RK_U32 reftopfirst_e : 1; 77*437bfbebSnyanmisaka RK_U32 write_mvs_e : 1; 78*437bfbebSnyanmisaka RK_U32 pic_fixed_quant : 1; 79*437bfbebSnyanmisaka RK_U32 filtering_dis : 1; 80*437bfbebSnyanmisaka RK_U32 dec_out_dis : 1; 81*437bfbebSnyanmisaka RK_U32 ref_topfield_e : 1; 82*437bfbebSnyanmisaka RK_U32 reserve1 : 1; 83*437bfbebSnyanmisaka RK_U32 fwd_interlace_e : 1; 84*437bfbebSnyanmisaka RK_U32 pic_topfiled_e : 1; 85*437bfbebSnyanmisaka RK_U32 pic_inter_e : 1; 86*437bfbebSnyanmisaka RK_U32 pic_b_e : 1; 87*437bfbebSnyanmisaka RK_U32 pic_fieldmode_e : 1; 88*437bfbebSnyanmisaka RK_U32 pic_interlace_e : 1; 89*437bfbebSnyanmisaka RK_U32 reserve2 : 2; 90*437bfbebSnyanmisaka RK_U32 skip_mode : 1; 91*437bfbebSnyanmisaka RK_U32 rlc_mode_e : 1; 92*437bfbebSnyanmisaka RK_U32 dec_mode : 4; 93*437bfbebSnyanmisaka } sw03; 94*437bfbebSnyanmisaka struct { 95*437bfbebSnyanmisaka RK_U32 pic_refer_flag : 1; 96*437bfbebSnyanmisaka RK_U32 reverse0 : 10; 97*437bfbebSnyanmisaka RK_U32 pic_mb_height_p : 8; 98*437bfbebSnyanmisaka RK_U32 mb_width_off : 4; 99*437bfbebSnyanmisaka RK_U32 pic_mb_width : 9; 100*437bfbebSnyanmisaka } sw04; 101*437bfbebSnyanmisaka union { 102*437bfbebSnyanmisaka struct { 103*437bfbebSnyanmisaka RK_U32 fieldpic_flag_e : 1; 104*437bfbebSnyanmisaka RK_S32 reserve0 : 31; 105*437bfbebSnyanmisaka }; 106*437bfbebSnyanmisaka struct { 107*437bfbebSnyanmisaka RK_U32 beta_offset : 5; 108*437bfbebSnyanmisaka RK_U32 alpha_offset : 5; 109*437bfbebSnyanmisaka RK_U32 reserve1 : 16; 110*437bfbebSnyanmisaka RK_U32 strm_start_bit : 6; 111*437bfbebSnyanmisaka }; 112*437bfbebSnyanmisaka } sw05; 113*437bfbebSnyanmisaka struct { 114*437bfbebSnyanmisaka RK_U32 stream_len : 24; 115*437bfbebSnyanmisaka RK_U32 stream_len_ext : 1; 116*437bfbebSnyanmisaka RK_U32 init_qp : 6; 117*437bfbebSnyanmisaka RK_U32 start_code_e : 1; 118*437bfbebSnyanmisaka } sw06; 119*437bfbebSnyanmisaka RK_U32 sw07_11[5]; 120*437bfbebSnyanmisaka struct { 121*437bfbebSnyanmisaka RK_U32 rlc_vlc_base : 32; 122*437bfbebSnyanmisaka } sw12; 123*437bfbebSnyanmisaka struct { 124*437bfbebSnyanmisaka RK_U32 dec_out_base : 32; 125*437bfbebSnyanmisaka } sw13; 126*437bfbebSnyanmisaka union { 127*437bfbebSnyanmisaka RK_U32 refer0_base : 32; 128*437bfbebSnyanmisaka struct { //!< left move 10bit 129*437bfbebSnyanmisaka RK_U32 reserve0 : 10; 130*437bfbebSnyanmisaka RK_U32 refer0_topc_e : 1; 131*437bfbebSnyanmisaka RK_U32 refer0_field_e : 1; 132*437bfbebSnyanmisaka RK_U32 reserve1 : 20; 133*437bfbebSnyanmisaka }; 134*437bfbebSnyanmisaka } sw14; 135*437bfbebSnyanmisaka union { 136*437bfbebSnyanmisaka struct { 137*437bfbebSnyanmisaka RK_U32 refer1_base : 32; 138*437bfbebSnyanmisaka }; 139*437bfbebSnyanmisaka struct { //!< left move 10bit 140*437bfbebSnyanmisaka RK_U32 reserve0 : 10; 141*437bfbebSnyanmisaka RK_U32 refer1_topc_e : 1; 142*437bfbebSnyanmisaka RK_U32 refer1_field_e : 1; 143*437bfbebSnyanmisaka RK_U32 reserve1 : 20; 144*437bfbebSnyanmisaka }; 145*437bfbebSnyanmisaka } sw15; 146*437bfbebSnyanmisaka union { 147*437bfbebSnyanmisaka struct { 148*437bfbebSnyanmisaka RK_U32 refer2_base : 32; 149*437bfbebSnyanmisaka }; 150*437bfbebSnyanmisaka struct { //!< left move 10bit 151*437bfbebSnyanmisaka RK_U32 reserve0 : 10; 152*437bfbebSnyanmisaka RK_U32 refer2_topc_e : 1; 153*437bfbebSnyanmisaka RK_U32 refer2_field_e : 1; 154*437bfbebSnyanmisaka RK_U32 reserve1 : 20; 155*437bfbebSnyanmisaka }; 156*437bfbebSnyanmisaka } sw16; 157*437bfbebSnyanmisaka union { 158*437bfbebSnyanmisaka struct { 159*437bfbebSnyanmisaka RK_U32 refer3_base : 32; 160*437bfbebSnyanmisaka }; 161*437bfbebSnyanmisaka struct { //!< left move 10bit 162*437bfbebSnyanmisaka RK_U32 reserve0 : 10; 163*437bfbebSnyanmisaka RK_U32 refer3_topc_e : 1; 164*437bfbebSnyanmisaka RK_U32 refer3_field_e : 1; 165*437bfbebSnyanmisaka RK_U32 reserve1 : 20; 166*437bfbebSnyanmisaka }; 167*437bfbebSnyanmisaka } sw17; 168*437bfbebSnyanmisaka struct { 169*437bfbebSnyanmisaka RK_U32 prev_anc_type : 1; 170*437bfbebSnyanmisaka RK_U32 reverse0 : 31; 171*437bfbebSnyanmisaka } sw18; 172*437bfbebSnyanmisaka RK_U32 sw19_27[9]; 173*437bfbebSnyanmisaka struct { 174*437bfbebSnyanmisaka RK_U32 ref_invd_cur_0 : 16; 175*437bfbebSnyanmisaka RK_U32 ref_invd_cur_1 : 16; 176*437bfbebSnyanmisaka } sw28; 177*437bfbebSnyanmisaka struct { 178*437bfbebSnyanmisaka RK_U32 ref_invd_cur_2 : 16; 179*437bfbebSnyanmisaka RK_U32 ref_invd_cur_3 : 16; 180*437bfbebSnyanmisaka } sw29; 181*437bfbebSnyanmisaka struct { 182*437bfbebSnyanmisaka RK_U32 ref_dist_cur_0 : 16; 183*437bfbebSnyanmisaka RK_U32 ref_dist_cur_1 : 16; 184*437bfbebSnyanmisaka } sw30; 185*437bfbebSnyanmisaka struct { 186*437bfbebSnyanmisaka RK_U32 ref_dist_cur_2 : 16; 187*437bfbebSnyanmisaka RK_U32 ref_dist_cur_3 : 16; 188*437bfbebSnyanmisaka } sw31; 189*437bfbebSnyanmisaka struct { 190*437bfbebSnyanmisaka RK_U32 ref_invd_col_0 : 16; 191*437bfbebSnyanmisaka RK_U32 ref_invd_col_1 : 16; 192*437bfbebSnyanmisaka } sw32; 193*437bfbebSnyanmisaka struct { 194*437bfbebSnyanmisaka RK_U32 ref_invd_col_2 : 16; 195*437bfbebSnyanmisaka RK_U32 ref_invd_col_3 : 16; 196*437bfbebSnyanmisaka } sw33; 197*437bfbebSnyanmisaka struct { 198*437bfbebSnyanmisaka RK_U32 reserve0 : 2; 199*437bfbebSnyanmisaka RK_U32 pred_bc_tap_1_1 : 10; 200*437bfbebSnyanmisaka RK_U32 pred_bc_tap_1_0 : 10; 201*437bfbebSnyanmisaka RK_U32 pred_bc_tap_0_3 : 10; 202*437bfbebSnyanmisaka } sw34; 203*437bfbebSnyanmisaka struct { 204*437bfbebSnyanmisaka RK_U32 reserve0 : 12; 205*437bfbebSnyanmisaka RK_U32 pred_bc_tap_1_3 : 10; 206*437bfbebSnyanmisaka RK_U32 pred_bc_tap_1_2 : 10; 207*437bfbebSnyanmisaka } sw35; 208*437bfbebSnyanmisaka RK_U32 sw36_40[5]; 209*437bfbebSnyanmisaka struct { 210*437bfbebSnyanmisaka RK_U32 dir_mv_base : 32; 211*437bfbebSnyanmisaka } sw41; 212*437bfbebSnyanmisaka RK_U32 sw42_47[6]; 213*437bfbebSnyanmisaka struct { 214*437bfbebSnyanmisaka RK_U32 reserve0 : 14; 215*437bfbebSnyanmisaka RK_U32 startmb_y : 9; 216*437bfbebSnyanmisaka RK_U32 startmb_x : 9; 217*437bfbebSnyanmisaka } sw48; 218*437bfbebSnyanmisaka struct { 219*437bfbebSnyanmisaka RK_U32 reserve0 : 2; 220*437bfbebSnyanmisaka RK_U32 pred_bc_tap_0_2 : 10; 221*437bfbebSnyanmisaka RK_U32 pred_bc_tap_0_1 : 10; 222*437bfbebSnyanmisaka RK_U32 pred_bc_tap_0_0 : 10; 223*437bfbebSnyanmisaka } sw49; 224*437bfbebSnyanmisaka RK_U32 sw50_54[5]; 225*437bfbebSnyanmisaka struct { 226*437bfbebSnyanmisaka RK_U32 apf_threshold : 14; 227*437bfbebSnyanmisaka RK_U32 refbu2_picid : 5; 228*437bfbebSnyanmisaka RK_U32 refbu2_thr : 12; 229*437bfbebSnyanmisaka RK_U32 refbu2_buf_e : 1; 230*437bfbebSnyanmisaka } sw55; 231*437bfbebSnyanmisaka RK_U32 sw56; 232*437bfbebSnyanmisaka struct { 233*437bfbebSnyanmisaka RK_U32 stream_len_ext : 1; 234*437bfbebSnyanmisaka RK_U32 inter_dblspeed : 1; 235*437bfbebSnyanmisaka RK_U32 intra_dblspeed : 1; 236*437bfbebSnyanmisaka RK_U32 intra_dbl3t : 1; 237*437bfbebSnyanmisaka RK_U32 bus_pos_sel : 1; 238*437bfbebSnyanmisaka RK_U32 axi_sel : 1; 239*437bfbebSnyanmisaka RK_U32 pref_sigchan : 1; 240*437bfbebSnyanmisaka RK_U32 cache_en : 1; 241*437bfbebSnyanmisaka RK_U32 reserve : 24; 242*437bfbebSnyanmisaka } sw57; 243*437bfbebSnyanmisaka RK_U32 sw58_59[2]; 244*437bfbebSnyanmisaka RK_U32 resever[40]; 245*437bfbebSnyanmisaka } AvsdVdpu1Regs_t; 246*437bfbebSnyanmisaka 247*437bfbebSnyanmisaka #endif /*__HAL_AVSD_VDPU1_REG_H__*/ 248