1*437bfbebSnyanmisaka /* 2*437bfbebSnyanmisaka * Copyright 2022 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_JPEGE_VEPU540C_REG_H__ 18*437bfbebSnyanmisaka #define __HAL_JPEGE_VEPU540C_REG_H__ 19*437bfbebSnyanmisaka 20*437bfbebSnyanmisaka #include "rk_type.h" 21*437bfbebSnyanmisaka #include "vepu540c_common.h" 22*437bfbebSnyanmisaka 23*437bfbebSnyanmisaka /* class: control/link */ 24*437bfbebSnyanmisaka /* 0x00000000 reg0 - 0x00000120 reg72 */ 25*437bfbebSnyanmisaka typedef struct JpegVepu540cControlCfg_t { 26*437bfbebSnyanmisaka /* 0x00000000 reg0 */ 27*437bfbebSnyanmisaka struct { 28*437bfbebSnyanmisaka RK_U32 sub_ver : 8; 29*437bfbebSnyanmisaka RK_U32 h264_cap : 1; 30*437bfbebSnyanmisaka RK_U32 hevc_cap : 1; 31*437bfbebSnyanmisaka RK_U32 reserved : 2; 32*437bfbebSnyanmisaka RK_U32 res_cap : 4; 33*437bfbebSnyanmisaka RK_U32 osd_cap : 2; 34*437bfbebSnyanmisaka RK_U32 filtr_cap : 2; 35*437bfbebSnyanmisaka RK_U32 bfrm_cap : 1; 36*437bfbebSnyanmisaka RK_U32 fbc_cap : 2; 37*437bfbebSnyanmisaka RK_U32 reserved1 : 1; 38*437bfbebSnyanmisaka RK_U32 ip_id : 8; 39*437bfbebSnyanmisaka } reg0001_version; 40*437bfbebSnyanmisaka 41*437bfbebSnyanmisaka /* 0x4 - 0xc */ 42*437bfbebSnyanmisaka RK_U32 reserved1_3[3]; 43*437bfbebSnyanmisaka 44*437bfbebSnyanmisaka /* 0x00000010 reg4 */ 45*437bfbebSnyanmisaka struct { 46*437bfbebSnyanmisaka RK_U32 lkt_num : 8; 47*437bfbebSnyanmisaka RK_U32 vepu_cmd : 3; 48*437bfbebSnyanmisaka RK_U32 reserved : 21; 49*437bfbebSnyanmisaka } reg0004_enc_strt; 50*437bfbebSnyanmisaka 51*437bfbebSnyanmisaka /* 0x00000014 reg5 */ 52*437bfbebSnyanmisaka struct { 53*437bfbebSnyanmisaka RK_U32 safe_clr : 1; 54*437bfbebSnyanmisaka RK_U32 force_clr : 1; 55*437bfbebSnyanmisaka RK_U32 reserved : 30; 56*437bfbebSnyanmisaka } reg0005_enc_clr; 57*437bfbebSnyanmisaka 58*437bfbebSnyanmisaka /* 0x18 */ 59*437bfbebSnyanmisaka struct { 60*437bfbebSnyanmisaka RK_U32 vswm_lcnt_soft : 14; 61*437bfbebSnyanmisaka RK_U32 vswm_fcnt_soft : 8; 62*437bfbebSnyanmisaka RK_U32 reserved : 2; 63*437bfbebSnyanmisaka RK_U32 dvbm_ack_soft : 1; 64*437bfbebSnyanmisaka RK_U32 dvbm_ack_sel : 1; 65*437bfbebSnyanmisaka RK_U32 reserved1 : 6; 66*437bfbebSnyanmisaka } reg0006_vs_ldly; 67*437bfbebSnyanmisaka 68*437bfbebSnyanmisaka /* 0x1c */ 69*437bfbebSnyanmisaka RK_U32 reserved007; 70*437bfbebSnyanmisaka 71*437bfbebSnyanmisaka /* 0x00000020 reg8 */ 72*437bfbebSnyanmisaka struct { 73*437bfbebSnyanmisaka RK_U32 enc_done_en : 1; 74*437bfbebSnyanmisaka RK_U32 lkt_node_done_en : 1; 75*437bfbebSnyanmisaka RK_U32 sclr_done_en : 1; 76*437bfbebSnyanmisaka RK_U32 slc_done_en : 1; 77*437bfbebSnyanmisaka RK_U32 bsf_oflw_en : 1; 78*437bfbebSnyanmisaka RK_U32 brsp_otsd_en : 1; 79*437bfbebSnyanmisaka RK_U32 wbus_err_en : 1; 80*437bfbebSnyanmisaka RK_U32 rbus_err_en : 1; 81*437bfbebSnyanmisaka RK_U32 wdg_en : 1; 82*437bfbebSnyanmisaka RK_U32 lkt_err_int_en : 1; 83*437bfbebSnyanmisaka RK_U32 lkt_err_stop_en : 1; 84*437bfbebSnyanmisaka RK_U32 lkt_force_stop_en : 1; 85*437bfbebSnyanmisaka RK_U32 jslc_done_en : 1; 86*437bfbebSnyanmisaka RK_U32 jbsf_oflw_en : 1; 87*437bfbebSnyanmisaka RK_U32 reserved : 18; 88*437bfbebSnyanmisaka } reg0008_int_en; 89*437bfbebSnyanmisaka 90*437bfbebSnyanmisaka /* 0x00000024 reg9 */ 91*437bfbebSnyanmisaka struct { 92*437bfbebSnyanmisaka RK_U32 enc_done_msk : 1; 93*437bfbebSnyanmisaka RK_U32 lkt_node_done_msk : 1; 94*437bfbebSnyanmisaka RK_U32 sclr_done_msk : 1; 95*437bfbebSnyanmisaka RK_U32 slc_done_msk : 1; 96*437bfbebSnyanmisaka RK_U32 bsf_oflw_msk : 1; 97*437bfbebSnyanmisaka RK_U32 brsp_otsd_msk : 1; 98*437bfbebSnyanmisaka RK_U32 wbus_err_msk : 1; 99*437bfbebSnyanmisaka RK_U32 rbus_err_msk : 1; 100*437bfbebSnyanmisaka RK_U32 wdg_msk : 1; 101*437bfbebSnyanmisaka RK_U32 lkt_err_msk : 1; 102*437bfbebSnyanmisaka RK_U32 lkt_err_stop_msk : 1; 103*437bfbebSnyanmisaka RK_U32 lkt_force_stop_msk : 1; 104*437bfbebSnyanmisaka RK_U32 jslc_done_msk : 1; 105*437bfbebSnyanmisaka RK_U32 jbsf_oflw_msk : 1; 106*437bfbebSnyanmisaka RK_U32 reserved : 18; 107*437bfbebSnyanmisaka } reg0009_int_msk; 108*437bfbebSnyanmisaka 109*437bfbebSnyanmisaka /* 0x00000028 reg10 */ 110*437bfbebSnyanmisaka struct { 111*437bfbebSnyanmisaka RK_U32 enc_done_clr : 1; 112*437bfbebSnyanmisaka RK_U32 lkt_node_done_clr : 1; 113*437bfbebSnyanmisaka RK_U32 sclr_done_clr : 1; 114*437bfbebSnyanmisaka RK_U32 slc_done_clr : 1; 115*437bfbebSnyanmisaka RK_U32 bsf_oflw_clr : 1; 116*437bfbebSnyanmisaka RK_U32 brsp_otsd_clr : 1; 117*437bfbebSnyanmisaka RK_U32 wbus_err_clr : 1; 118*437bfbebSnyanmisaka RK_U32 rbus_err_clr : 1; 119*437bfbebSnyanmisaka RK_U32 wdg_clr : 1; 120*437bfbebSnyanmisaka RK_U32 lkt_err_clr : 1; 121*437bfbebSnyanmisaka RK_U32 lkt_err_stop_msk : 1; 122*437bfbebSnyanmisaka RK_U32 lkt_force_stop_msk : 1; 123*437bfbebSnyanmisaka RK_U32 jslc_done_clr : 1; 124*437bfbebSnyanmisaka RK_U32 jbsf_oflw_clr : 1; 125*437bfbebSnyanmisaka RK_U32 reserved : 18; 126*437bfbebSnyanmisaka } reg0010_int_clr; 127*437bfbebSnyanmisaka 128*437bfbebSnyanmisaka /* 0x0000002c reg11 */ 129*437bfbebSnyanmisaka struct { 130*437bfbebSnyanmisaka RK_U32 enc_done_sta : 1; 131*437bfbebSnyanmisaka RK_U32 lkt_node_done_sta : 1; 132*437bfbebSnyanmisaka RK_U32 sclr_done_sta : 1; 133*437bfbebSnyanmisaka RK_U32 slc_done_sta : 1; 134*437bfbebSnyanmisaka RK_U32 bsf_oflw_sta : 1; 135*437bfbebSnyanmisaka RK_U32 brsp_otsd_sta : 1; 136*437bfbebSnyanmisaka RK_U32 wbus_err_sta : 1; 137*437bfbebSnyanmisaka RK_U32 rbus_err_sta : 1; 138*437bfbebSnyanmisaka RK_U32 wdg_sta : 1; 139*437bfbebSnyanmisaka RK_U32 lkt_err_sta : 1; 140*437bfbebSnyanmisaka RK_U32 lkt_err_stop_sta : 1; 141*437bfbebSnyanmisaka RK_U32 lkt_force_stop_sta : 1; 142*437bfbebSnyanmisaka RK_U32 jslc_done_sta : 1; 143*437bfbebSnyanmisaka RK_U32 jbsf_oflw_sta : 1; 144*437bfbebSnyanmisaka RK_U32 reserved : 18; 145*437bfbebSnyanmisaka } reg0011_int_sta; 146*437bfbebSnyanmisaka 147*437bfbebSnyanmisaka /* 0x00000030 reg12 */ 148*437bfbebSnyanmisaka struct { 149*437bfbebSnyanmisaka RK_U32 jpeg_bus_edin : 4; 150*437bfbebSnyanmisaka RK_U32 src_bus_edin : 4; 151*437bfbebSnyanmisaka RK_U32 meiw_bus_edin : 4; 152*437bfbebSnyanmisaka RK_U32 bsw_bus_edin : 4; 153*437bfbebSnyanmisaka RK_U32 lktr_bus_edin : 4; 154*437bfbebSnyanmisaka RK_U32 roir_bus_edin : 4; 155*437bfbebSnyanmisaka RK_U32 lktw_bus_edin : 4; 156*437bfbebSnyanmisaka RK_U32 rec_nfbc_bus_edin : 4; 157*437bfbebSnyanmisaka } reg0012_dtrns_map; 158*437bfbebSnyanmisaka 159*437bfbebSnyanmisaka /* 0x00000034 reg13 */ 160*437bfbebSnyanmisaka struct { 161*437bfbebSnyanmisaka RK_U32 reserved : 16; 162*437bfbebSnyanmisaka RK_U32 axi_brsp_cke : 10; 163*437bfbebSnyanmisaka RK_U32 reserved1 : 6; 164*437bfbebSnyanmisaka } reg0013_dtrns_cfg; 165*437bfbebSnyanmisaka 166*437bfbebSnyanmisaka /* 0x00000038 reg14 */ 167*437bfbebSnyanmisaka struct { 168*437bfbebSnyanmisaka RK_U32 vs_load_thd : 24; 169*437bfbebSnyanmisaka RK_U32 rfp_load_thd : 8; 170*437bfbebSnyanmisaka } reg0014_enc_wdg; 171*437bfbebSnyanmisaka 172*437bfbebSnyanmisaka /* 0x0000003c reg15 */ 173*437bfbebSnyanmisaka struct { 174*437bfbebSnyanmisaka RK_U32 hurry_en : 1; 175*437bfbebSnyanmisaka RK_U32 hurry_low : 3; 176*437bfbebSnyanmisaka RK_U32 hurry_mid : 3; 177*437bfbebSnyanmisaka RK_U32 hurry_high : 3; 178*437bfbebSnyanmisaka RK_U32 reserved : 22; 179*437bfbebSnyanmisaka } reg0015_qos_cfg; 180*437bfbebSnyanmisaka 181*437bfbebSnyanmisaka /* 0x00000040 reg16 */ 182*437bfbebSnyanmisaka struct { 183*437bfbebSnyanmisaka RK_U32 qos_period : 16; 184*437bfbebSnyanmisaka RK_U32 reserved : 16; 185*437bfbebSnyanmisaka } reg0016_qos_perd; 186*437bfbebSnyanmisaka 187*437bfbebSnyanmisaka /* 0x00000044 reg17 */ 188*437bfbebSnyanmisaka RK_U32 reg0017_hurry_thd_low; 189*437bfbebSnyanmisaka 190*437bfbebSnyanmisaka /* 0x00000048 reg18 */ 191*437bfbebSnyanmisaka RK_U32 reg0018_hurry_thd_mid; 192*437bfbebSnyanmisaka 193*437bfbebSnyanmisaka /* 0x0000004c reg19 */ 194*437bfbebSnyanmisaka RK_U32 reg0019_hurry_thd_high; 195*437bfbebSnyanmisaka 196*437bfbebSnyanmisaka /* 0x00000050 reg20 */ 197*437bfbebSnyanmisaka struct { 198*437bfbebSnyanmisaka RK_U32 idle_en_core : 1; 199*437bfbebSnyanmisaka RK_U32 idle_en_axi : 1; 200*437bfbebSnyanmisaka RK_U32 idle_en_ahb : 1; 201*437bfbebSnyanmisaka RK_U32 reserved : 29; 202*437bfbebSnyanmisaka } reg0020_enc_idle_en; 203*437bfbebSnyanmisaka 204*437bfbebSnyanmisaka /* 0x00000054 reg21 */ 205*437bfbebSnyanmisaka struct { 206*437bfbebSnyanmisaka RK_U32 cke : 1; 207*437bfbebSnyanmisaka RK_U32 resetn_hw_en : 1; 208*437bfbebSnyanmisaka RK_U32 enc_done_tmvp_en : 1; 209*437bfbebSnyanmisaka RK_U32 sram_ckg_en : 1; 210*437bfbebSnyanmisaka RK_U32 link_err_stop : 1; 211*437bfbebSnyanmisaka RK_U32 reserved : 27; 212*437bfbebSnyanmisaka } reg0021_func_en; 213*437bfbebSnyanmisaka 214*437bfbebSnyanmisaka /* 0x00000058 reg22 */ 215*437bfbebSnyanmisaka struct { 216*437bfbebSnyanmisaka RK_U32 recon32_ckg : 1; 217*437bfbebSnyanmisaka RK_U32 iqit32_ckg : 1; 218*437bfbebSnyanmisaka RK_U32 q32_ckg : 1; 219*437bfbebSnyanmisaka RK_U32 t32_ckg : 1; 220*437bfbebSnyanmisaka RK_U32 cabac32_ckg : 1; 221*437bfbebSnyanmisaka RK_U32 recon16_ckg : 1; 222*437bfbebSnyanmisaka RK_U32 iqit16_ckg : 1; 223*437bfbebSnyanmisaka RK_U32 q16_ckg : 1; 224*437bfbebSnyanmisaka RK_U32 t16_ckg : 1; 225*437bfbebSnyanmisaka RK_U32 cabac16_ckg : 1; 226*437bfbebSnyanmisaka RK_U32 recon8_ckg : 1; 227*437bfbebSnyanmisaka RK_U32 iqit8_ckg : 1; 228*437bfbebSnyanmisaka RK_U32 q8_ckg : 1; 229*437bfbebSnyanmisaka RK_U32 t8_ckg : 1; 230*437bfbebSnyanmisaka RK_U32 cabac8_ckg : 1; 231*437bfbebSnyanmisaka RK_U32 recon4_ckg : 1; 232*437bfbebSnyanmisaka RK_U32 iqit4_ckg : 1; 233*437bfbebSnyanmisaka RK_U32 q4_ckg : 1; 234*437bfbebSnyanmisaka RK_U32 t4_ckg : 1; 235*437bfbebSnyanmisaka RK_U32 cabac4_ckg : 1; 236*437bfbebSnyanmisaka RK_U32 intra32_ckg : 1; 237*437bfbebSnyanmisaka RK_U32 intra16_ckg : 1; 238*437bfbebSnyanmisaka RK_U32 intra8_ckg : 1; 239*437bfbebSnyanmisaka RK_U32 intra4_ckg : 1; 240*437bfbebSnyanmisaka RK_U32 inter_pred_ckg : 1; 241*437bfbebSnyanmisaka RK_U32 reserved : 7; 242*437bfbebSnyanmisaka } reg0022_rdo_ckg; 243*437bfbebSnyanmisaka 244*437bfbebSnyanmisaka /* 0x0000005c reg23 */ 245*437bfbebSnyanmisaka struct { 246*437bfbebSnyanmisaka RK_U32 core_id : 2; 247*437bfbebSnyanmisaka RK_U32 reserved : 30; 248*437bfbebSnyanmisaka } reg0023_enc_id; 249*437bfbebSnyanmisaka 250*437bfbebSnyanmisaka 251*437bfbebSnyanmisaka /* 0x00000060 reg24 */ 252*437bfbebSnyanmisaka struct { 253*437bfbebSnyanmisaka RK_U32 dvbm_en : 1; 254*437bfbebSnyanmisaka RK_U32 reserved0 : 1; 255*437bfbebSnyanmisaka RK_U32 vinf_frm_match : 1; 256*437bfbebSnyanmisaka RK_U32 vrsp_rtn_en : 1; 257*437bfbebSnyanmisaka RK_U32 vrsp_half_cycle : 4; 258*437bfbebSnyanmisaka RK_U32 reserved : 24; 259*437bfbebSnyanmisaka } reg0024_dvbm_cfg; 260*437bfbebSnyanmisaka 261*437bfbebSnyanmisaka /* 0x00000064 - 0x6c*/ 262*437bfbebSnyanmisaka RK_U32 reg025_027[3]; 263*437bfbebSnyanmisaka 264*437bfbebSnyanmisaka /* 0x00000070*/ 265*437bfbebSnyanmisaka struct { 266*437bfbebSnyanmisaka RK_U32 reserved : 4; 267*437bfbebSnyanmisaka RK_U32 lkt_addr : 28; 268*437bfbebSnyanmisaka } reg0028_lkt_base_addr; 269*437bfbebSnyanmisaka 270*437bfbebSnyanmisaka /* 0x74 - 0xfc */ 271*437bfbebSnyanmisaka RK_U32 reserved29_63[35]; 272*437bfbebSnyanmisaka 273*437bfbebSnyanmisaka struct { 274*437bfbebSnyanmisaka RK_U32 node_core_id : 2; 275*437bfbebSnyanmisaka RK_U32 node_int : 1; 276*437bfbebSnyanmisaka RK_U32 reserved : 1; 277*437bfbebSnyanmisaka RK_U32 task_id : 12; 278*437bfbebSnyanmisaka RK_U32 reserved1 : 16; 279*437bfbebSnyanmisaka } reg0064_lkt_node_cfg; 280*437bfbebSnyanmisaka 281*437bfbebSnyanmisaka /* 0x00000104 reg65 */ 282*437bfbebSnyanmisaka struct { 283*437bfbebSnyanmisaka RK_U32 pcfg_rd_en : 1; 284*437bfbebSnyanmisaka RK_U32 reserved : 3; 285*437bfbebSnyanmisaka RK_U32 lkt_addr_pcfg : 28; 286*437bfbebSnyanmisaka } reg0065_lkt_addr_pcfg; 287*437bfbebSnyanmisaka 288*437bfbebSnyanmisaka /* 0x00000108 reg66 */ 289*437bfbebSnyanmisaka struct { 290*437bfbebSnyanmisaka RK_U32 rc_cfg_rd_en : 1; 291*437bfbebSnyanmisaka RK_U32 reserved : 3; 292*437bfbebSnyanmisaka RK_U32 lkt_addr_rc_cfg : 28; 293*437bfbebSnyanmisaka } reg0066_lkt_addr_rc_cfg; 294*437bfbebSnyanmisaka 295*437bfbebSnyanmisaka /* 0x0000010c reg67 */ 296*437bfbebSnyanmisaka struct { 297*437bfbebSnyanmisaka RK_U32 par_cfg_rd_en : 1; 298*437bfbebSnyanmisaka RK_U32 reserved : 3; 299*437bfbebSnyanmisaka RK_U32 lkt_addr_par_cfg : 28; 300*437bfbebSnyanmisaka } reg0067_lkt_addr_par_cfg; 301*437bfbebSnyanmisaka 302*437bfbebSnyanmisaka /* 0x00000110 reg68 */ 303*437bfbebSnyanmisaka struct { 304*437bfbebSnyanmisaka RK_U32 sqi_cfg_rd_en : 1; 305*437bfbebSnyanmisaka RK_U32 reserved : 3; 306*437bfbebSnyanmisaka RK_U32 lkt_addr_sqi_cfg : 28; 307*437bfbebSnyanmisaka } reg0068_lkt_addr_sqi_cfg; 308*437bfbebSnyanmisaka 309*437bfbebSnyanmisaka /* 0x00000114 reg69 */ 310*437bfbebSnyanmisaka struct { 311*437bfbebSnyanmisaka RK_U32 scal_cfg_rd_en : 1; 312*437bfbebSnyanmisaka RK_U32 reserved : 3; 313*437bfbebSnyanmisaka RK_U32 lkt_addr_scal_cfg : 28; 314*437bfbebSnyanmisaka } reg0069_lkt_addr_scal_cfg; 315*437bfbebSnyanmisaka 316*437bfbebSnyanmisaka /* 0x00000118 reg70 */ 317*437bfbebSnyanmisaka struct { 318*437bfbebSnyanmisaka RK_U32 pp_cfg_rd_en : 1; 319*437bfbebSnyanmisaka RK_U32 reserved : 3; 320*437bfbebSnyanmisaka RK_U32 lkt_addr_pp_cfg : 28; 321*437bfbebSnyanmisaka } reg0070_lkt_addr_osd_cfg; 322*437bfbebSnyanmisaka 323*437bfbebSnyanmisaka /* 0x0000011c reg71 */ 324*437bfbebSnyanmisaka struct { 325*437bfbebSnyanmisaka RK_U32 st_out_en : 1; 326*437bfbebSnyanmisaka RK_U32 reserved : 3; 327*437bfbebSnyanmisaka RK_U32 lkt_addr_st : 28; 328*437bfbebSnyanmisaka } reg0071_lkt_addr_st; 329*437bfbebSnyanmisaka 330*437bfbebSnyanmisaka /* 0x00000120 reg72 */ 331*437bfbebSnyanmisaka struct { 332*437bfbebSnyanmisaka RK_U32 nxt_node_vld : 1; 333*437bfbebSnyanmisaka RK_U32 reserved : 3; 334*437bfbebSnyanmisaka RK_U32 lkt_addr_nxt : 28; 335*437bfbebSnyanmisaka } reg0072_lkt_addr_nxt; 336*437bfbebSnyanmisaka 337*437bfbebSnyanmisaka 338*437bfbebSnyanmisaka } jpeg_vepu540c_control_cfg; 339*437bfbebSnyanmisaka 340*437bfbebSnyanmisaka /* class: buffer/video syntax */ 341*437bfbebSnyanmisaka /* 0x00000280 reg160 - 0x000003f4 reg253*/ 342*437bfbebSnyanmisaka typedef struct JpegVepu540cBase_t { 343*437bfbebSnyanmisaka vepu540c_online online_addr; 344*437bfbebSnyanmisaka /* 0x00000280 reg160 */ 345*437bfbebSnyanmisaka RK_U32 reg0160_adr_src0; 346*437bfbebSnyanmisaka 347*437bfbebSnyanmisaka /* 0x00000284 reg161 */ 348*437bfbebSnyanmisaka RK_U32 reg0161_adr_src1; 349*437bfbebSnyanmisaka 350*437bfbebSnyanmisaka /* 0x00000288 reg162 */ 351*437bfbebSnyanmisaka RK_U32 reg0162_adr_src2; 352*437bfbebSnyanmisaka 353*437bfbebSnyanmisaka /* 0x0000028c reg163 */ 354*437bfbebSnyanmisaka RK_U32 reg0163_rfpw_h_addr; 355*437bfbebSnyanmisaka 356*437bfbebSnyanmisaka /* 0x00000290 reg164 */ 357*437bfbebSnyanmisaka RK_U32 reg0164_rfpw_b_addr; 358*437bfbebSnyanmisaka 359*437bfbebSnyanmisaka /* 0x00000294 reg165 */ 360*437bfbebSnyanmisaka RK_U32 reg0165_rfpr_h_addr; 361*437bfbebSnyanmisaka 362*437bfbebSnyanmisaka /* 0x00000298 reg166 */ 363*437bfbebSnyanmisaka RK_U32 reg0166_rfpr_b_addr; 364*437bfbebSnyanmisaka 365*437bfbebSnyanmisaka /* 0x0000029c reg167 */ 366*437bfbebSnyanmisaka RK_U32 reg0167_cmvw_addr; 367*437bfbebSnyanmisaka 368*437bfbebSnyanmisaka /* 0x000002a0 reg168 */ 369*437bfbebSnyanmisaka RK_U32 reg0168_cmvr_addr; 370*437bfbebSnyanmisaka 371*437bfbebSnyanmisaka /* 0x000002a4 reg169 */ 372*437bfbebSnyanmisaka RK_U32 reg0169_dspw_addr; 373*437bfbebSnyanmisaka 374*437bfbebSnyanmisaka /* 0x000002a8 reg170 */ 375*437bfbebSnyanmisaka RK_U32 reg0170_dspr_addr; 376*437bfbebSnyanmisaka 377*437bfbebSnyanmisaka /* 0x000002ac reg171 */ 378*437bfbebSnyanmisaka RK_U32 reg0171_meiw_addr; 379*437bfbebSnyanmisaka 380*437bfbebSnyanmisaka /* 0x000002b0 reg172 */ 381*437bfbebSnyanmisaka RK_U32 reg0172_bsbt_addr; 382*437bfbebSnyanmisaka 383*437bfbebSnyanmisaka /* 0x000002b4 reg173 */ 384*437bfbebSnyanmisaka RK_U32 reg0173_bsbb_addr; 385*437bfbebSnyanmisaka 386*437bfbebSnyanmisaka /* 0x000002b8 reg174 */ 387*437bfbebSnyanmisaka RK_U32 reg0174_bsbr_addr; 388*437bfbebSnyanmisaka 389*437bfbebSnyanmisaka /* 0x000002bc reg175 */ 390*437bfbebSnyanmisaka RK_U32 reg0175_adr_bsbs; 391*437bfbebSnyanmisaka 392*437bfbebSnyanmisaka /* 0x000002c0 reg176 */ 393*437bfbebSnyanmisaka RK_U32 reg0176_lpfw_addr; 394*437bfbebSnyanmisaka 395*437bfbebSnyanmisaka /* 0x000002c4 reg177 */ 396*437bfbebSnyanmisaka RK_U32 reg0177_lpfr_addr; 397*437bfbebSnyanmisaka 398*437bfbebSnyanmisaka /* 0x000002c8 reg178 */ 399*437bfbebSnyanmisaka RK_U32 reg0178_adr_ebuft; 400*437bfbebSnyanmisaka 401*437bfbebSnyanmisaka /* 0x000002cc reg179 */ 402*437bfbebSnyanmisaka RK_U32 reg0179_adr_ebufb; 403*437bfbebSnyanmisaka 404*437bfbebSnyanmisaka /* 0x000002d0 reg180 */ 405*437bfbebSnyanmisaka RK_U32 reg0180_adr_rfpt_h; 406*437bfbebSnyanmisaka 407*437bfbebSnyanmisaka /* 0x000002d4 reg181 */ 408*437bfbebSnyanmisaka RK_U32 reg0181_adr_rfpb_h; 409*437bfbebSnyanmisaka 410*437bfbebSnyanmisaka /* 0x000002d8 reg182 */ 411*437bfbebSnyanmisaka RK_U32 reg0182_adr_rfpt_b; 412*437bfbebSnyanmisaka 413*437bfbebSnyanmisaka /* 0x000002dc reg183 */ 414*437bfbebSnyanmisaka RK_U32 reg0183_adr_rfpb_b; 415*437bfbebSnyanmisaka 416*437bfbebSnyanmisaka /* 0x000002e0 reg184 */ 417*437bfbebSnyanmisaka RK_U32 reg0184_adr_smr_rd; 418*437bfbebSnyanmisaka 419*437bfbebSnyanmisaka /* 0x000002e4 reg185 */ 420*437bfbebSnyanmisaka RK_U32 reg0185_adr_smr_wr; 421*437bfbebSnyanmisaka 422*437bfbebSnyanmisaka /* 0x000002e8 reg186 */ 423*437bfbebSnyanmisaka RK_U32 reg0186_adr_roir; 424*437bfbebSnyanmisaka 425*437bfbebSnyanmisaka /* 0x2ec - 0x2fc */ 426*437bfbebSnyanmisaka RK_U32 reserved187_191[5]; 427*437bfbebSnyanmisaka 428*437bfbebSnyanmisaka /* 0x00000300 reg192 */ 429*437bfbebSnyanmisaka struct { 430*437bfbebSnyanmisaka RK_U32 enc_stnd : 2; 431*437bfbebSnyanmisaka RK_U32 cur_frm_ref : 1; 432*437bfbebSnyanmisaka RK_U32 mei_stor : 1; 433*437bfbebSnyanmisaka RK_U32 bs_scp : 1; 434*437bfbebSnyanmisaka RK_U32 reserved : 3; 435*437bfbebSnyanmisaka RK_U32 pic_qp : 6; 436*437bfbebSnyanmisaka RK_U32 num_pic_tot_cur : 5; 437*437bfbebSnyanmisaka RK_U32 log2_ctu_num : 5; 438*437bfbebSnyanmisaka RK_U32 reserved1 : 6; 439*437bfbebSnyanmisaka RK_U32 slen_fifo : 1; 440*437bfbebSnyanmisaka RK_U32 rec_fbc_dis : 1; 441*437bfbebSnyanmisaka } reg0192_enc_pic; 442*437bfbebSnyanmisaka 443*437bfbebSnyanmisaka 444*437bfbebSnyanmisaka /* 0x304 */ 445*437bfbebSnyanmisaka RK_U32 reserved_193; 446*437bfbebSnyanmisaka 447*437bfbebSnyanmisaka /* 0x00000308 reg194 */ 448*437bfbebSnyanmisaka struct { 449*437bfbebSnyanmisaka RK_U32 frame_id : 8; 450*437bfbebSnyanmisaka RK_U32 reserved : 8; 451*437bfbebSnyanmisaka RK_U32 ch_id : 2; 452*437bfbebSnyanmisaka RK_U32 reserved1 : 14; 453*437bfbebSnyanmisaka } reg0194_dvbm_id; 454*437bfbebSnyanmisaka 455*437bfbebSnyanmisaka /* 0x0000030c reg195 */ 456*437bfbebSnyanmisaka RK_U32 bsp_size; 457*437bfbebSnyanmisaka 458*437bfbebSnyanmisaka /* 0x00000310 reg196 */ 459*437bfbebSnyanmisaka struct { 460*437bfbebSnyanmisaka RK_U32 pic_wd8_m1 : 11; 461*437bfbebSnyanmisaka RK_U32 reserved : 5; 462*437bfbebSnyanmisaka RK_U32 pic_hd8_m1 : 11; 463*437bfbebSnyanmisaka RK_U32 reserved1 : 5; 464*437bfbebSnyanmisaka } reg0196_enc_rsl; 465*437bfbebSnyanmisaka 466*437bfbebSnyanmisaka /* 0x00000314 reg197 */ 467*437bfbebSnyanmisaka struct { 468*437bfbebSnyanmisaka RK_U32 pic_wfill : 6; 469*437bfbebSnyanmisaka RK_U32 reserved : 10; 470*437bfbebSnyanmisaka RK_U32 pic_hfill : 6; 471*437bfbebSnyanmisaka RK_U32 reserved1 : 10; 472*437bfbebSnyanmisaka } reg0197_src_fill; 473*437bfbebSnyanmisaka 474*437bfbebSnyanmisaka /* 0x00000318 reg198 */ 475*437bfbebSnyanmisaka struct { 476*437bfbebSnyanmisaka RK_U32 alpha_swap : 1; 477*437bfbebSnyanmisaka RK_U32 rbuv_swap : 1; 478*437bfbebSnyanmisaka RK_U32 src_cfmt : 4; 479*437bfbebSnyanmisaka RK_U32 src_rcne : 1; 480*437bfbebSnyanmisaka RK_U32 out_fmt : 1; 481*437bfbebSnyanmisaka RK_U32 src_range_trns_en : 1; 482*437bfbebSnyanmisaka RK_U32 src_range_trns_sel : 1; 483*437bfbebSnyanmisaka RK_U32 chroma_ds_mode : 1; 484*437bfbebSnyanmisaka RK_U32 reserved : 21; 485*437bfbebSnyanmisaka } reg0198_src_fmt; 486*437bfbebSnyanmisaka 487*437bfbebSnyanmisaka /* 0x0000031c reg199 */ 488*437bfbebSnyanmisaka struct { 489*437bfbebSnyanmisaka RK_U32 csc_wgt_b2y : 9; 490*437bfbebSnyanmisaka RK_U32 csc_wgt_g2y : 9; 491*437bfbebSnyanmisaka RK_U32 csc_wgt_r2y : 9; 492*437bfbebSnyanmisaka RK_U32 reserved : 5; 493*437bfbebSnyanmisaka } reg0199_src_udfy; 494*437bfbebSnyanmisaka 495*437bfbebSnyanmisaka /* 0x00000320 reg200 */ 496*437bfbebSnyanmisaka struct { 497*437bfbebSnyanmisaka RK_U32 csc_wgt_b2u : 9; 498*437bfbebSnyanmisaka RK_U32 csc_wgt_g2u : 9; 499*437bfbebSnyanmisaka RK_U32 csc_wgt_r2u : 9; 500*437bfbebSnyanmisaka RK_U32 reserved : 5; 501*437bfbebSnyanmisaka } reg0200_src_udfu; 502*437bfbebSnyanmisaka 503*437bfbebSnyanmisaka /* 0x00000324 reg201 */ 504*437bfbebSnyanmisaka struct { 505*437bfbebSnyanmisaka RK_U32 csc_wgt_b2v : 9; 506*437bfbebSnyanmisaka RK_U32 csc_wgt_g2v : 9; 507*437bfbebSnyanmisaka RK_U32 csc_wgt_r2v : 9; 508*437bfbebSnyanmisaka RK_U32 reserved : 5; 509*437bfbebSnyanmisaka } reg0201_src_udfv; 510*437bfbebSnyanmisaka 511*437bfbebSnyanmisaka /* 0x00000328 reg202 */ 512*437bfbebSnyanmisaka struct { 513*437bfbebSnyanmisaka RK_U32 csc_ofst_v : 8; 514*437bfbebSnyanmisaka RK_U32 csc_ofst_u : 8; 515*437bfbebSnyanmisaka RK_U32 csc_ofst_y : 5; 516*437bfbebSnyanmisaka RK_U32 reserved : 11; 517*437bfbebSnyanmisaka } reg0202_src_udfo; 518*437bfbebSnyanmisaka 519*437bfbebSnyanmisaka /* 0x0000032c reg203 */ 520*437bfbebSnyanmisaka struct { 521*437bfbebSnyanmisaka RK_U32 reserved : 26; 522*437bfbebSnyanmisaka RK_U32 src_mirr : 1; 523*437bfbebSnyanmisaka RK_U32 src_rot : 2; 524*437bfbebSnyanmisaka RK_U32 reserved1 : 3; 525*437bfbebSnyanmisaka } reg0203_src_proc; 526*437bfbebSnyanmisaka 527*437bfbebSnyanmisaka /* 0x00000330 reg204 */ 528*437bfbebSnyanmisaka struct { 529*437bfbebSnyanmisaka RK_U32 pic_ofst_x : 14; 530*437bfbebSnyanmisaka RK_U32 reserved : 2; 531*437bfbebSnyanmisaka RK_U32 pic_ofst_y : 14; 532*437bfbebSnyanmisaka RK_U32 reserved1 : 2; 533*437bfbebSnyanmisaka } reg0204_pic_ofst; 534*437bfbebSnyanmisaka 535*437bfbebSnyanmisaka /* 0x00000334 reg205 */ 536*437bfbebSnyanmisaka struct { 537*437bfbebSnyanmisaka RK_U32 src_strd0 : 17; 538*437bfbebSnyanmisaka RK_U32 reserved : 15; 539*437bfbebSnyanmisaka } reg0205_src_strd0; 540*437bfbebSnyanmisaka 541*437bfbebSnyanmisaka /* 0x00000338 reg206 */ 542*437bfbebSnyanmisaka struct { 543*437bfbebSnyanmisaka RK_U32 src_strd1 : 16; 544*437bfbebSnyanmisaka RK_U32 reserved : 16; 545*437bfbebSnyanmisaka } reg0206_src_strd1; 546*437bfbebSnyanmisaka 547*437bfbebSnyanmisaka /* 0x0000033c reg207 */ 548*437bfbebSnyanmisaka struct { 549*437bfbebSnyanmisaka RK_U32 pp_corner_filter_strength : 2; 550*437bfbebSnyanmisaka RK_U32 reserved : 2; 551*437bfbebSnyanmisaka RK_U32 pp_edge_filter_strength : 2; 552*437bfbebSnyanmisaka RK_U32 reserved1 : 2; 553*437bfbebSnyanmisaka RK_U32 pp_internal_filter_strength : 2; 554*437bfbebSnyanmisaka RK_U32 reserved2 : 22; 555*437bfbebSnyanmisaka } reg0207_src_flt_cfg; 556*437bfbebSnyanmisaka 557*437bfbebSnyanmisaka /* 0x340 - 0x34c */ 558*437bfbebSnyanmisaka RK_U32 reserved208_211[4]; 559*437bfbebSnyanmisaka 560*437bfbebSnyanmisaka /* 0x00000350 reg212 */ 561*437bfbebSnyanmisaka struct { 562*437bfbebSnyanmisaka RK_U32 rc_en : 1; 563*437bfbebSnyanmisaka RK_U32 aq_en : 1; 564*437bfbebSnyanmisaka RK_U32 aq_mode : 1; 565*437bfbebSnyanmisaka RK_U32 reserved : 9; 566*437bfbebSnyanmisaka RK_U32 rc_ctu_num : 20; 567*437bfbebSnyanmisaka } reg212_rc_cfg; 568*437bfbebSnyanmisaka 569*437bfbebSnyanmisaka /* 0x00000354 reg213 */ 570*437bfbebSnyanmisaka struct { 571*437bfbebSnyanmisaka RK_U32 reserved : 16; 572*437bfbebSnyanmisaka RK_U32 rc_qp_range : 4; 573*437bfbebSnyanmisaka RK_U32 rc_max_qp : 6; 574*437bfbebSnyanmisaka RK_U32 rc_min_qp : 6; 575*437bfbebSnyanmisaka } reg213_rc_qp; 576*437bfbebSnyanmisaka 577*437bfbebSnyanmisaka /* 0x00000358 reg214 */ 578*437bfbebSnyanmisaka struct { 579*437bfbebSnyanmisaka RK_U32 ctu_ebit : 20; 580*437bfbebSnyanmisaka RK_U32 reserved : 12; 581*437bfbebSnyanmisaka } reg214_rc_tgt; 582*437bfbebSnyanmisaka 583*437bfbebSnyanmisaka /* 0x35c */ 584*437bfbebSnyanmisaka RK_U32 reserved_215; 585*437bfbebSnyanmisaka 586*437bfbebSnyanmisaka /* 0x00000360 reg216 */ 587*437bfbebSnyanmisaka struct { 588*437bfbebSnyanmisaka RK_U32 sli_splt : 1; 589*437bfbebSnyanmisaka RK_U32 sli_splt_mode : 1; 590*437bfbebSnyanmisaka RK_U32 sli_splt_cpst : 1; 591*437bfbebSnyanmisaka RK_U32 reserved : 12; 592*437bfbebSnyanmisaka RK_U32 sli_flsh : 1; 593*437bfbebSnyanmisaka RK_U32 sli_max_num_m1 : 15; 594*437bfbebSnyanmisaka RK_U32 reserved1 : 1; 595*437bfbebSnyanmisaka } reg0216_sli_splt; 596*437bfbebSnyanmisaka 597*437bfbebSnyanmisaka /* 0x00000364 reg217 */ 598*437bfbebSnyanmisaka struct { 599*437bfbebSnyanmisaka RK_U32 sli_splt_byte : 20; 600*437bfbebSnyanmisaka RK_U32 reserved : 12; 601*437bfbebSnyanmisaka } reg0217_sli_byte; 602*437bfbebSnyanmisaka 603*437bfbebSnyanmisaka /* 0x00000368 reg218 */ 604*437bfbebSnyanmisaka struct { 605*437bfbebSnyanmisaka RK_U32 sli_splt_cnum_m1 : 20; 606*437bfbebSnyanmisaka RK_U32 reserved : 12; 607*437bfbebSnyanmisaka } reg0218_sli_cnum; 608*437bfbebSnyanmisaka 609*437bfbebSnyanmisaka /* 0x0000036c reg219 */ 610*437bfbebSnyanmisaka struct { 611*437bfbebSnyanmisaka RK_U32 uvc_partition0_len : 12; 612*437bfbebSnyanmisaka RK_U32 uvc_partition_len : 12; 613*437bfbebSnyanmisaka RK_U32 uvc_skip_len : 6; 614*437bfbebSnyanmisaka RK_U32 reserved : 2; 615*437bfbebSnyanmisaka } reg0218_uvc_cfg; 616*437bfbebSnyanmisaka 617*437bfbebSnyanmisaka /* 0x00000370 reg220 */ 618*437bfbebSnyanmisaka struct { 619*437bfbebSnyanmisaka RK_U32 cime_srch_dwnh : 4; 620*437bfbebSnyanmisaka RK_U32 cime_srch_uph : 4; 621*437bfbebSnyanmisaka RK_U32 cime_srch_rgtw : 4; 622*437bfbebSnyanmisaka RK_U32 cime_srch_lftw : 4; 623*437bfbebSnyanmisaka RK_U32 dlt_frm_num : 16; 624*437bfbebSnyanmisaka } reg0220_me_rnge; 625*437bfbebSnyanmisaka 626*437bfbebSnyanmisaka /* 0x00000374 reg221 */ 627*437bfbebSnyanmisaka struct { 628*437bfbebSnyanmisaka RK_U32 srgn_max_num : 7; 629*437bfbebSnyanmisaka RK_U32 cime_dist_thre : 10; 630*437bfbebSnyanmisaka RK_U32 reserved : 3; 631*437bfbebSnyanmisaka RK_U32 rme_srch_h : 2; 632*437bfbebSnyanmisaka RK_U32 rme_srch_v : 2; 633*437bfbebSnyanmisaka RK_U32 rme_dis : 3; 634*437bfbebSnyanmisaka RK_U32 reserved1 : 1; 635*437bfbebSnyanmisaka RK_U32 fme_dis : 3; 636*437bfbebSnyanmisaka RK_U32 reserved2 : 1; 637*437bfbebSnyanmisaka } reg0221_me_cfg; 638*437bfbebSnyanmisaka 639*437bfbebSnyanmisaka /* 0x00000378 reg222 */ 640*437bfbebSnyanmisaka struct { 641*437bfbebSnyanmisaka RK_U32 cime_size_rama : 10; 642*437bfbebSnyanmisaka RK_U32 reserved : 1; 643*437bfbebSnyanmisaka RK_U32 cime_hgt_rama : 5; 644*437bfbebSnyanmisaka RK_U32 reserved1 : 2; 645*437bfbebSnyanmisaka RK_U32 cme_linebuf_w : 10; 646*437bfbebSnyanmisaka RK_U32 fme_prefsu_en : 2; 647*437bfbebSnyanmisaka RK_U32 colmv_stor : 1; 648*437bfbebSnyanmisaka RK_U32 colmv_load : 1; 649*437bfbebSnyanmisaka } reg0222_me_cach; 650*437bfbebSnyanmisaka 651*437bfbebSnyanmisaka 652*437bfbebSnyanmisaka /* 0x37c - 0x39c */ 653*437bfbebSnyanmisaka RK_U32 reserved223_231[9]; 654*437bfbebSnyanmisaka 655*437bfbebSnyanmisaka /* 0x000003a0 reg232 */ 656*437bfbebSnyanmisaka struct { 657*437bfbebSnyanmisaka RK_U32 ltm_col : 1; 658*437bfbebSnyanmisaka RK_U32 ltm_idx0l0 : 1; 659*437bfbebSnyanmisaka RK_U32 chrm_spcl : 1; 660*437bfbebSnyanmisaka RK_U32 cu_inter_e : 12; 661*437bfbebSnyanmisaka RK_U32 reserved : 4; 662*437bfbebSnyanmisaka RK_U32 cu_intra_e : 4; 663*437bfbebSnyanmisaka RK_U32 ccwa_e : 1; 664*437bfbebSnyanmisaka RK_U32 scl_lst_sel : 2; 665*437bfbebSnyanmisaka RK_U32 lambda_qp_use_avg_cu16_flag : 1; 666*437bfbebSnyanmisaka RK_U32 yuvskip_calc_en : 1; 667*437bfbebSnyanmisaka RK_U32 atf_e : 1; 668*437bfbebSnyanmisaka RK_U32 atr_e : 1; 669*437bfbebSnyanmisaka RK_U32 reserved1 : 2; 670*437bfbebSnyanmisaka } reg0232_rdo_cfg; 671*437bfbebSnyanmisaka 672*437bfbebSnyanmisaka /* 0x000003a4 reg233 */ 673*437bfbebSnyanmisaka struct { 674*437bfbebSnyanmisaka RK_U32 rdo_mark_mode : 9; 675*437bfbebSnyanmisaka RK_U32 reserved : 23; 676*437bfbebSnyanmisaka } reg0233_iprd_csts; 677*437bfbebSnyanmisaka 678*437bfbebSnyanmisaka /* 0x3a8 - 0x3ac */ 679*437bfbebSnyanmisaka RK_U32 reserved234_235[2]; 680*437bfbebSnyanmisaka 681*437bfbebSnyanmisaka /* 0x000003b0 reg236 */ 682*437bfbebSnyanmisaka 683*437bfbebSnyanmisaka struct { 684*437bfbebSnyanmisaka RK_U32 nal_unit_type : 6; 685*437bfbebSnyanmisaka RK_U32 reserved : 26; 686*437bfbebSnyanmisaka } reg0236_synt_nal; 687*437bfbebSnyanmisaka 688*437bfbebSnyanmisaka /* 0x000003b4 reg237 */ 689*437bfbebSnyanmisaka struct { 690*437bfbebSnyanmisaka RK_U32 smpl_adpt_ofst_e : 1; 691*437bfbebSnyanmisaka RK_U32 num_st_ref_pic : 7; 692*437bfbebSnyanmisaka RK_U32 lt_ref_pic_prsnt : 1; 693*437bfbebSnyanmisaka RK_U32 num_lt_ref_pic : 6; 694*437bfbebSnyanmisaka RK_U32 tmpl_mvp_e : 1; 695*437bfbebSnyanmisaka RK_U32 log2_max_poc_lsb : 4; 696*437bfbebSnyanmisaka RK_U32 strg_intra_smth : 1; 697*437bfbebSnyanmisaka RK_U32 reserved : 11; 698*437bfbebSnyanmisaka } reg0237_synt_sps; 699*437bfbebSnyanmisaka 700*437bfbebSnyanmisaka /* 0x000003b8 reg238 */ 701*437bfbebSnyanmisaka struct { 702*437bfbebSnyanmisaka RK_U32 dpdnt_sli_seg_en : 1; 703*437bfbebSnyanmisaka RK_U32 out_flg_prsnt_flg : 1; 704*437bfbebSnyanmisaka RK_U32 num_extr_sli_hdr : 3; 705*437bfbebSnyanmisaka RK_U32 sgn_dat_hid_en : 1; 706*437bfbebSnyanmisaka RK_U32 cbc_init_prsnt_flg : 1; 707*437bfbebSnyanmisaka RK_U32 pic_init_qp : 6; 708*437bfbebSnyanmisaka RK_U32 cu_qp_dlt_en : 1; 709*437bfbebSnyanmisaka RK_U32 chrm_qp_ofst_prsn : 1; 710*437bfbebSnyanmisaka RK_U32 lp_fltr_acrs_sli : 1; 711*437bfbebSnyanmisaka RK_U32 dblk_fltr_ovrd_en : 1; 712*437bfbebSnyanmisaka RK_U32 lst_mdfy_prsnt_flg : 1; 713*437bfbebSnyanmisaka RK_U32 sli_seg_hdr_extn : 1; 714*437bfbebSnyanmisaka RK_U32 cu_qp_dlt_depth : 2; 715*437bfbebSnyanmisaka RK_U32 lpf_fltr_acrs_til : 1; 716*437bfbebSnyanmisaka RK_U32 reserved : 10; 717*437bfbebSnyanmisaka } reg0238_synt_pps; 718*437bfbebSnyanmisaka 719*437bfbebSnyanmisaka /* 0x000003bc reg239 */ 720*437bfbebSnyanmisaka struct { 721*437bfbebSnyanmisaka RK_U32 cbc_init_flg : 1; 722*437bfbebSnyanmisaka RK_U32 mvd_l1_zero_flg : 1; 723*437bfbebSnyanmisaka RK_U32 mrg_up_flg : 1; 724*437bfbebSnyanmisaka RK_U32 mrg_lft_flg : 1; 725*437bfbebSnyanmisaka RK_U32 reserved : 1; 726*437bfbebSnyanmisaka RK_U32 ref_pic_lst_mdf_l0 : 1; 727*437bfbebSnyanmisaka RK_U32 num_refidx_l1_act : 2; 728*437bfbebSnyanmisaka RK_U32 num_refidx_l0_act : 2; 729*437bfbebSnyanmisaka RK_U32 num_refidx_act_ovrd : 1; 730*437bfbebSnyanmisaka RK_U32 sli_sao_chrm_flg : 1; 731*437bfbebSnyanmisaka RK_U32 sli_sao_luma_flg : 1; 732*437bfbebSnyanmisaka RK_U32 sli_tmprl_mvp_e : 1; 733*437bfbebSnyanmisaka RK_U32 pic_out_flg : 1; 734*437bfbebSnyanmisaka RK_U32 sli_type : 2; 735*437bfbebSnyanmisaka RK_U32 sli_rsrv_flg : 7; 736*437bfbebSnyanmisaka RK_U32 dpdnt_sli_seg_flg : 1; 737*437bfbebSnyanmisaka RK_U32 sli_pps_id : 6; 738*437bfbebSnyanmisaka RK_U32 no_out_pri_pic : 1; 739*437bfbebSnyanmisaka } reg0239_synt_sli0; 740*437bfbebSnyanmisaka 741*437bfbebSnyanmisaka /* 0x000003c0 reg240 */ 742*437bfbebSnyanmisaka struct { 743*437bfbebSnyanmisaka RK_U32 sp_tc_ofst_div2 : 4; 744*437bfbebSnyanmisaka RK_U32 sp_beta_ofst_div2 : 4; 745*437bfbebSnyanmisaka RK_U32 sli_lp_fltr_acrs_sli : 1; 746*437bfbebSnyanmisaka RK_U32 sp_dblk_fltr_dis : 1; 747*437bfbebSnyanmisaka RK_U32 dblk_fltr_ovrd_flg : 1; 748*437bfbebSnyanmisaka RK_U32 sli_cb_qp_ofst : 5; 749*437bfbebSnyanmisaka RK_U32 sli_qp : 6; 750*437bfbebSnyanmisaka RK_U32 max_mrg_cnd : 2; 751*437bfbebSnyanmisaka RK_U32 reserved : 1; 752*437bfbebSnyanmisaka RK_U32 col_ref_idx : 1; 753*437bfbebSnyanmisaka RK_U32 col_frm_l0_flg : 1; 754*437bfbebSnyanmisaka RK_U32 lst_entry_l0 : 4; 755*437bfbebSnyanmisaka RK_U32 reserved1 : 1; 756*437bfbebSnyanmisaka } reg0240_synt_sli1; 757*437bfbebSnyanmisaka 758*437bfbebSnyanmisaka /* 0x000003c4 reg241 */ 759*437bfbebSnyanmisaka struct { 760*437bfbebSnyanmisaka RK_U32 sli_poc_lsb : 16; 761*437bfbebSnyanmisaka RK_U32 sli_hdr_ext_len : 9; 762*437bfbebSnyanmisaka RK_U32 reserved : 7; 763*437bfbebSnyanmisaka } reg0241_synt_sli2; 764*437bfbebSnyanmisaka 765*437bfbebSnyanmisaka /* 0x000003c8 reg242 */ 766*437bfbebSnyanmisaka 767*437bfbebSnyanmisaka struct { 768*437bfbebSnyanmisaka RK_U32 st_ref_pic_flg : 1; 769*437bfbebSnyanmisaka RK_U32 poc_lsb_lt0 : 16; 770*437bfbebSnyanmisaka RK_U32 lt_idx_sps : 5; 771*437bfbebSnyanmisaka RK_U32 num_lt_pic : 2; 772*437bfbebSnyanmisaka RK_U32 st_ref_pic_idx : 6; 773*437bfbebSnyanmisaka RK_U32 num_lt_sps : 2; 774*437bfbebSnyanmisaka } reg0242_synt_refm0; 775*437bfbebSnyanmisaka 776*437bfbebSnyanmisaka /* 0x000003cc reg243 */ 777*437bfbebSnyanmisaka struct { 778*437bfbebSnyanmisaka RK_U32 used_by_s0_flg : 4; 779*437bfbebSnyanmisaka RK_U32 num_pos_pic : 1; 780*437bfbebSnyanmisaka RK_U32 num_negative_pics : 5; 781*437bfbebSnyanmisaka RK_U32 dlt_poc_msb_cycl0 : 16; 782*437bfbebSnyanmisaka RK_U32 dlt_poc_msb_prsnt0 : 1; 783*437bfbebSnyanmisaka RK_U32 dlt_poc_msb_prsnt1 : 1; 784*437bfbebSnyanmisaka RK_U32 dlt_poc_msb_prsnt2 : 1; 785*437bfbebSnyanmisaka RK_U32 used_by_lt_flg0 : 1; 786*437bfbebSnyanmisaka RK_U32 used_by_lt_flg1 : 1; 787*437bfbebSnyanmisaka RK_U32 used_by_lt_flg2 : 1; 788*437bfbebSnyanmisaka } reg0243_synt_refm1; 789*437bfbebSnyanmisaka 790*437bfbebSnyanmisaka /* 0x000003d0 reg244 */ 791*437bfbebSnyanmisaka struct { 792*437bfbebSnyanmisaka RK_U32 dlt_poc_s0_m10 : 16; 793*437bfbebSnyanmisaka RK_U32 dlt_poc_s0_m11 : 16; 794*437bfbebSnyanmisaka } reg0244_synt_refm2; 795*437bfbebSnyanmisaka /* 0x000003d4 reg245 */ 796*437bfbebSnyanmisaka struct { 797*437bfbebSnyanmisaka RK_U32 dlt_poc_s0_m12 : 16; 798*437bfbebSnyanmisaka RK_U32 dlt_poc_s0_m13 : 16; 799*437bfbebSnyanmisaka } reg0245_synt_refm3; 800*437bfbebSnyanmisaka 801*437bfbebSnyanmisaka /* 0x000003d8 reg246 */ 802*437bfbebSnyanmisaka struct { 803*437bfbebSnyanmisaka RK_U32 poc_lsb_lt1 : 16; 804*437bfbebSnyanmisaka RK_U32 poc_lsb_lt2 : 16; 805*437bfbebSnyanmisaka } reg0246_synt_long_refm0; 806*437bfbebSnyanmisaka 807*437bfbebSnyanmisaka /* 0x000003dc reg247 */ 808*437bfbebSnyanmisaka struct { 809*437bfbebSnyanmisaka RK_U32 dlt_poc_msb_cycl1 : 16; 810*437bfbebSnyanmisaka RK_U32 dlt_poc_msb_cycl2 : 16; 811*437bfbebSnyanmisaka } reg0247_synt_long_refm1; 812*437bfbebSnyanmisaka 813*437bfbebSnyanmisaka struct { 814*437bfbebSnyanmisaka RK_U32 sao_lambda_multi : 4; 815*437bfbebSnyanmisaka RK_U32 reserved : 20; 816*437bfbebSnyanmisaka RK_U32 reserved1 : 8; 817*437bfbebSnyanmisaka } reg0248_sao_cfg; 818*437bfbebSnyanmisaka 819*437bfbebSnyanmisaka /* 0x3e4 - 0x3ec */ 820*437bfbebSnyanmisaka RK_U32 reserved249_251[3]; 821*437bfbebSnyanmisaka 822*437bfbebSnyanmisaka /* 0x000003f0 reg252 */ 823*437bfbebSnyanmisaka struct { 824*437bfbebSnyanmisaka RK_U32 tile_w_m1 : 8; 825*437bfbebSnyanmisaka RK_U32 reserved : 8; 826*437bfbebSnyanmisaka RK_U32 tile_h_m1 : 8; 827*437bfbebSnyanmisaka RK_U32 reserved1 : 7; 828*437bfbebSnyanmisaka RK_U32 tile_en : 1; 829*437bfbebSnyanmisaka } reg0252_tile_cfg; 830*437bfbebSnyanmisaka /* 0x000003f4 reg253 */ 831*437bfbebSnyanmisaka struct { 832*437bfbebSnyanmisaka RK_U32 tile_x : 8; 833*437bfbebSnyanmisaka RK_U32 reserved : 8; 834*437bfbebSnyanmisaka RK_U32 tile_y : 8; 835*437bfbebSnyanmisaka RK_U32 reserved1 : 8; 836*437bfbebSnyanmisaka } reg0253_tile_pos; 837*437bfbebSnyanmisaka 838*437bfbebSnyanmisaka /* 0x3f8 - 0x3fc */ 839*437bfbebSnyanmisaka RK_U32 reserved254_255[2]; 840*437bfbebSnyanmisaka 841*437bfbebSnyanmisaka /* 0x00000400 reg256 - 0x00000480 reg288 */ 842*437bfbebSnyanmisaka Vepu540cJpegReg jpegReg; 843*437bfbebSnyanmisaka 844*437bfbebSnyanmisaka } jpeg_vepu540c_base; 845*437bfbebSnyanmisaka 846*437bfbebSnyanmisaka typedef struct JpegV540cRegSet_t { 847*437bfbebSnyanmisaka jpeg_vepu540c_control_cfg reg_ctl; 848*437bfbebSnyanmisaka jpeg_vepu540c_base reg_base; 849*437bfbebSnyanmisaka vepu540c_jpeg_tab jpeg_table; 850*437bfbebSnyanmisaka vepu540c_dbg reg_dbg; 851*437bfbebSnyanmisaka } JpegV540cRegSet; 852*437bfbebSnyanmisaka 853*437bfbebSnyanmisaka typedef struct JpegV540cStatus_t { 854*437bfbebSnyanmisaka vepu540c_hw_status hw_status; 855*437bfbebSnyanmisaka vepu540c_status st; 856*437bfbebSnyanmisaka } JpegV540cStatus; 857*437bfbebSnyanmisaka 858*437bfbebSnyanmisaka #endif 859