
#ifndef _HW_SRS_INT_H_
#define _HW_SRS_INT_H_

#define SRS_INT_BASE (IO_VIRT_SRE + 0xE000)                        

//Page SUPERRES_SUPERRES
#define SUPERRES_00 (SRS_INT_BASE + 0x000)
    #define SR_EN Fld(1,31,AC_MSKB3)//[31:31]
    #define SR_BYPASS_EN Fld(1,30,AC_MSKB3)//[30:30]
    #define SR_DCM_DIS Fld(1,29,AC_MSKB3)//[29:29]
    #define SR_INK_SEL Fld(4,24,AC_MSKB3)//[27:24]
    #define SR_RST Fld(1,16,AC_MSKB2)//[16:16]
    #define SR_YUV422_MODE Fld(1,8,AC_MSKB1)//[8:8]
    #define SR_VSYNC_POLAR Fld(1,7,AC_MSKB0)//[7:7]
#define SUPERRES_01 (SRS_INT_BASE + 0x004)
    #define DEMO_SWAP Fld(1,5,AC_MSKB0)//[5:5]
    #define SUPERRES_DEMO_EN Fld(1,4,AC_MSKB0)//[4:4]
#define SUPERRES_02 (SRS_INT_BASE + 0x008)
    #define DEMO_MASK_HSTART Fld(13,16,AC_MSKW32)//[28:16]
    #define DEMO_MASK_HEND Fld(13,0,AC_MSKW10)//[12:0]
#define SUPERRES_03 (SRS_INT_BASE + 0x00C)
    #define DEMO_MASK_VSTART Fld(13,16,AC_MSKW32)//[28:16]
    #define DEMO_MASK_VEND Fld(13,0,AC_MSKW10)//[12:0]
#define SUPERRES_04 (SRS_INT_BASE + 0x010)
    #define SAD_RATIO_EN Fld(1,1,AC_MSKB0)//[1:1]
    #define SAD_WGT_EN Fld(1,0,AC_MSKB0)//[0:0]
#define SUPERRES_05 (SRS_INT_BASE + 0x014)
    #define SAD_BS_SAD_RATIO_SLOPE Fld(8,16,AC_FULLB2)//[23:16]
    #define SAD_BS_SAD_RATIO_THR Fld(8,8,AC_FULLB1)//[15:8]
    #define SAD_RATIO_CONST Fld(8,0,AC_FULLB0)//[7:0]
#define SUPERRES_06 (SRS_INT_BASE + 0x018)
    #define SAD_FS_SAD_RATIO_SLOPE Fld(8,8,AC_FULLB1)//[15:8]
    #define SAD_FS_SAD_RATIO_THR Fld(8,0,AC_FULLB0)//[7:0]
#define SUPERRES_10 (SRS_INT_BASE + 0x028)
    #define AMP_WGT_FB_M Fld(8,24,AC_FULLB3)//[31:24]
    #define AMP_WGT_FB_H Fld(8,16,AC_FULLB2)//[23:16]
    #define AMP_WGT_VEC_M Fld(8,8,AC_FULLB1)//[15:8]
    #define AMP_WGT_VEC_H Fld(8,0,AC_FULLB0)//[7:0]
#define SUPERRES_11 (SRS_INT_BASE + 0x02C)
    #define AMP_WGT_PK_M Fld(8,8,AC_FULLB1)//[15:8]
    #define AMP_WGT_PK_H Fld(8,0,AC_FULLB0)//[7:0]
#define SUPERRES_15 (SRS_INT_BASE + 0x03C)
    #define LOCALRANGE_EN Fld(1,0,AC_MSKB0)//[0:0]
#define SUPERRES_16 (SRS_INT_BASE + 0x040)
    #define LOCALRANGE_SLOPE Fld(8,8,AC_FULLB1)//[15:8]
    #define LOCALRANGE_THR Fld(8,0,AC_FULLB0)//[7:0]
#define SUPERRES_20 (SRS_INT_BASE + 0x050)
    #define FS_FALLBACK_EN Fld(1,1,AC_MSKB0)//[1:1]
    #define FS_VECFUSION_EN Fld(1,0,AC_MSKB0)//[0:0]
#define SUPERRES_21 (SRS_INT_BASE + 0x054)
    #define CORING_RATIO_VEC Fld(4,16,AC_MSKB2)//[19:16]
    #define CORING_THR_VEC Fld(8,8,AC_FULLB1)//[15:8]
    #define CORING_ZERO_VEC Fld(8,0,AC_FULLB0)//[7:0]
#define SUPERRES_22 (SRS_INT_BASE + 0x058)
    #define CORING_RATIO_FB Fld(4,16,AC_MSKB2)//[19:16]
    #define CORING_THR_FB Fld(8,8,AC_FULLB1)//[15:8]
    #define CORING_ZERO_FB Fld(8,0,AC_FULLB0)//[7:0]
#define SUPERRES_23 (SRS_INT_BASE + 0x05C)
    #define CORING_RATIO_PK Fld(4,16,AC_MSKB2)//[19:16]
    #define CORING_THR_PK Fld(8,8,AC_FULLB1)//[15:8]
    #define CORING_ZERO_PK Fld(8,0,AC_FULLB0)//[7:0]
#define SUPERRES_24 (SRS_INT_BASE + 0x060)
    #define GAIN_PK Fld(8,16,AC_FULLB2)//[23:16]
    #define GAIN_FB Fld(8,8,AC_FULLB1)//[15:8]
    #define GAIN_VEC Fld(8,0,AC_FULLB0)//[7:0]
#define SUPERRES_25 (SRS_INT_BASE + 0x064)
    #define CORING_RATIO_SR Fld(4,16,AC_MSKB2)//[19:16]
    #define CORING_THR_SR Fld(8,8,AC_FULLB1)//[15:8]
    #define CORING_ZERO_SR Fld(8,0,AC_FULLB0)//[7:0]
#define SUPERRES_26 (SRS_INT_BASE + 0x068)
    #define GAIN_SR_NEG Fld(8,8,AC_FULLB1)//[15:8]
    #define GAIN_SR_POS Fld(8,0,AC_FULLB0)//[7:0]
#define SUPERRES_30 (SRS_INT_BASE + 0x078)
    #define SOFTLIMIT_LIMIT Fld(8,24,AC_FULLB3)//[31:24]
    #define SOFTLIMIT_BOUND Fld(8,16,AC_FULLB2)//[23:16]
    #define SOFTLIMIT_RATIO Fld(4,4,AC_MSKB0)//[7:4]
    #define SOFTLIMIT_EN Fld(1,0,AC_MSKB0)//[0:0]
#define SUPERRES_31 (SRS_INT_BASE + 0x07C)
    #define SOFTLIMIT_VEC_LIMIT Fld(8,24,AC_FULLB3)//[31:24]
    #define SOFTLIMIT_VEC_BOUND Fld(8,16,AC_FULLB2)//[23:16]
    #define SOFTLIMIT_VEC_RATIO Fld(4,4,AC_MSKB0)//[7:4]
    #define SOFTLIMIT_VEC_EN Fld(1,0,AC_MSKB0)//[0:0]
#define SUPERRES_32 (SRS_INT_BASE + 0x080)
    #define SOFTLIMIT_FB_LIMIT Fld(8,24,AC_FULLB3)//[31:24]
    #define SOFTLIMIT_FB_BOUND Fld(8,16,AC_FULLB2)//[23:16]
    #define SOFTLIMIT_FB_RATIO Fld(4,4,AC_MSKB0)//[7:4]
    #define SOFTLIMIT_FB_EN Fld(1,0,AC_MSKB0)//[0:0]
#define SUPERRES_33 (SRS_INT_BASE + 0x084)
    #define SOFTLIMIT_PK_LIMIT Fld(8,24,AC_FULLB3)//[31:24]
    #define SOFTLIMIT_PK_BOUND Fld(8,16,AC_FULLB2)//[23:16]
    #define SOFTLIMIT_PK_RATIO Fld(4,4,AC_MSKB0)//[7:4]
    #define SOFTLIMIT_PK_EN Fld(1,0,AC_MSKB0)//[0:0]
#define SUPERRES_40 (SRS_INT_BASE + 0x0A4)
    #define SOFTCLIP_THR Fld(8,16,AC_FULLB2)//[23:16]
    #define SOFTCLIP_RATIO Fld(5,7,AC_MSKW10)//[11:7]
    #define SOFTCLIP_EN Fld(1,0,AC_MSKB0)//[0:0]
#define SUPERRES_50 (SRS_INT_BASE + 0x0CC)
    #define AMP_LPF_COEF Fld(4,8,AC_MSKB1)//[11:8]
    #define AMP_LPF_EN Fld(1,0,AC_MSKB0)//[0:0]
#define SUPERRES_60 (SRS_INT_BASE + 0x108)
    #define SRS_CBOOST_EN Fld(1,0,AC_MSKB0)//[0:0]
#define SUPERRES_62 (SRS_INT_BASE + 0x10C)
    #define SRS_CBOOST_YCONST Fld(8,16,AC_FULLB2)//[23:16]
    #define SRS_CBOOST_YOFFSET_SEL Fld(2,8,AC_MSKB1)//[9:8]
    #define SRS_CBOOST_YOFFSET Fld(7,0,AC_MSKB0)//[6:0]
#define SUPERRES_61 (SRS_INT_BASE + 0x110)
    #define SRS_CBOOST_LMT_U Fld(8,24,AC_FULLB3)//[31:24]
    #define SRS_CBOOST_LMT_L Fld(8,16,AC_FULLB2)//[23:16]
    #define SRS_CBOOST_GAIN Fld(8,0,AC_FULLB0)//[7:0]
#define SUPERRES_70 (SRS_INT_BASE + 0x130)
    #define YLEV_EN Fld(1,31,AC_MSKB3)//[31:31]
    #define YLEV_ALPHA Fld(6,16,AC_MSKB2)//[21:16]
#define SUPERRES_71 (SRS_INT_BASE + 0x134)
    #define YLEV_SHP_P0 Fld(8,24,AC_FULLB3)//[31:24]
    #define YLEV_SHP_P16 Fld(8,16,AC_FULLB2)//[23:16]
    #define YLEV_SHP_P32 Fld(8,8,AC_FULLB1)//[15:8]
    #define YLEV_SHP_P48 Fld(8,0,AC_FULLB0)//[7:0]
#define SUPERRES_72 (SRS_INT_BASE + 0x14C)
    #define YLEV_SHP_P64 Fld(8,24,AC_FULLB3)//[31:24]
    #define YLEV_SHP_P80 Fld(8,16,AC_FULLB2)//[23:16]
    #define YLEV_SHP_P96 Fld(8,8,AC_FULLB1)//[15:8]
    #define YLEV_SHP_P112 Fld(8,0,AC_FULLB0)//[7:0]
#define SUPERRES_73 (SRS_INT_BASE + 0x200)
    #define YLEV_SHP_P128 Fld(8,24,AC_FULLB3)//[31:24]
    #define YLEV_SHP_P144 Fld(8,16,AC_FULLB2)//[23:16]
    #define YLEV_SHP_P160 Fld(8,8,AC_FULLB1)//[15:8]
    #define YLEV_SHP_P176 Fld(8,0,AC_FULLB0)//[7:0]
#define SUPERRES_74 (SRS_INT_BASE + 0x204)
    #define YLEV_SHP_P192 Fld(8,24,AC_FULLB3)//[31:24]
    #define YLEV_SHP_P208 Fld(8,16,AC_FULLB2)//[23:16]
    #define YLEV_SHP_P224 Fld(8,8,AC_FULLB1)//[15:8]
    #define YLEV_SHP_P240 Fld(8,0,AC_FULLB0)//[7:0]
#define SUPERRES_75 (SRS_INT_BASE + 0x208)
    #define YLEV_SHP_P256 Fld(8,24,AC_FULLB3)//[31:24]
#define SUPERRES_80 (SRS_INT_BASE + 0x21C)
    #define PBC_LPF_GAIN Fld(6,8,AC_MSKB1)//[13:8]
    #define PBC_EN Fld(1,0,AC_MSKB0)//[0:0]
#define SUPERRES_81 (SRS_INT_BASE + 0x220)
    #define PBC1_EN Fld(1,31,AC_MSKB3)//[31:31]
    #define PBC1_LPF_EN Fld(1,30,AC_MSKB3)//[30:30]
    #define PBC1_EDGE_EN Fld(1,29,AC_MSKB3)//[29:29]
    #define PBC1_GAIN Fld(8,16,AC_FULLB2)//[23:16]
    #define PBC1_LPF_GAIN Fld(6,8,AC_MSKB1)//[13:8]
    #define PBC1_CONF_GAIN Fld(4,0,AC_MSKB0)//[3:0]
#define SUPERRES_82 (SRS_INT_BASE + 0x224)
    #define PBC1_THETA_C Fld(8,24,AC_FULLB3)//[31:24]
    #define PBC1_THETA_R Fld(6,16,AC_MSKB2)//[21:16]
    #define PBC1_THETA_SLOPE Fld(10,0,AC_MSKW10)//[9:0]
#define SUPERRES_83 (SRS_INT_BASE + 0x228)
    #define PBC1_RADIUS_C Fld(8,24,AC_FULLB3)//[31:24]
    #define PBC1_RADIUS_R Fld(6,16,AC_MSKB2)//[21:16]
    #define PBC1_RADIUS_SLOPE_1 Fld(10,0,AC_MSKW10)//[9:0]
#define SUPERRES_84 (SRS_INT_BASE + 0x22C)
    #define PBC1_RADIUS_SLOPE Fld(10,16,AC_MSKW32)//[25:16]
    #define PBC1_EDGE_THRESHOLD Fld(6,8,AC_MSKB1)//[13:8]
    #define PBC1_EDGE_SLOPE Fld(6,0,AC_MSKB0)//[5:0]
#define SUPERRES_85 (SRS_INT_BASE + 0x230)
    #define PBC2_EN Fld(1,31,AC_MSKB3)//[31:31]
    #define PBC2_LPF_EN Fld(1,30,AC_MSKB3)//[30:30]
    #define PBC2_EDGE_EN Fld(1,29,AC_MSKB3)//[29:29]
    #define PBC2_GAIN Fld(8,16,AC_FULLB2)//[23:16]
    #define PBC2_LPF_GAIN Fld(6,8,AC_MSKB1)//[13:8]
    #define PBC2_CONF_GAIN Fld(4,0,AC_MSKB0)//[3:0]
#define SUPERRES_86 (SRS_INT_BASE + 0x234)
    #define PBC2_THETA_C Fld(8,24,AC_FULLB3)//[31:24]
    #define PBC2_THETA_R Fld(6,16,AC_MSKB2)//[21:16]
    #define PBC2_THETA_SLOPE Fld(10,0,AC_MSKW10)//[9:0]
#define SUPERRES_87 (SRS_INT_BASE + 0x238)
    #define PBC2_RADIUS_C Fld(8,24,AC_FULLB3)//[31:24]
    #define PBC2_RADIUS_R Fld(6,16,AC_MSKB2)//[21:16]
    #define PBC2_RADIUS_SLOPE_1 Fld(10,0,AC_MSKW10)//[9:0]
#define SUPERRES_88 (SRS_INT_BASE + 0x23C)
    #define PBC2_RADIUS_SLOPE Fld(10,16,AC_MSKW32)//[25:16]
    #define PBC2_EDGE_THRESHOLD Fld(6,8,AC_MSKB1)//[13:8]
    #define PBC2_EDGE_SLOPE Fld(6,0,AC_MSKB0)//[5:0]
#define SUPERRES_89 (SRS_INT_BASE + 0x240)
    #define PBC3_EN Fld(1,31,AC_MSKB3)//[31:31]
    #define PBC3_LPF_EN Fld(1,30,AC_MSKB3)//[30:30]
    #define PBC3_EDGE_EN Fld(1,29,AC_MSKB3)//[29:29]
    #define PBC3_GAIN Fld(8,16,AC_FULLB2)//[23:16]
    #define PBC3_LPF_GAIN Fld(6,8,AC_MSKB1)//[13:8]
    #define PBC3_CONF_GAIN Fld(4,0,AC_MSKB0)//[3:0]
#define SUPERRES_90 (SRS_INT_BASE + 0x244)
    #define PBC3_THETA_C Fld(8,24,AC_FULLB3)//[31:24]
    #define PBC3_THETA_R Fld(6,16,AC_MSKB2)//[21:16]
    #define PBC3_THETA_SLOPE Fld(10,0,AC_MSKW10)//[9:0]
#define SUPERRES_91 (SRS_INT_BASE + 0x250)
    #define PBC3_RADIUS_C Fld(8,24,AC_FULLB3)//[31:24]
    #define PBC3_RADIUS_R Fld(6,16,AC_MSKB2)//[21:16]
    #define PBC3_RADIUS_SLOPE_1 Fld(10,0,AC_MSKW10)//[9:0]
#define SUPERRES_92 (SRS_INT_BASE + 0x254)
    #define PBC3_RADIUS_SLOPE Fld(10,16,AC_MSKW32)//[25:16]
    #define PBC3_EDGE_THRESHOLD Fld(6,8,AC_MSKB1)//[13:8]
    #define PBC3_EDGE_SLOPE Fld(6,0,AC_MSKB0)//[5:0]
#define SUPERRES_100 (SRS_INT_BASE + 0x274)
    #define CURSOR_Y Fld(13,16,AC_MSKW32)//[28:16]
    #define CURSOR_X Fld(13,0,AC_MSKW10)//[12:0]
#define SUPERRES_101 (SRS_INT_BASE + 0x278)
    #define CURSOR_REPORT_Y Fld(10,0,AC_MSKW10)//[9:0]
#define SUPERRES_102 (SRS_INT_BASE + 0x27C)
    #define CURSOR_REPORT_CB Fld(10,0,AC_MSKW10)//[9:0]
#define SUPERRES_103 (SRS_INT_BASE + 0x30C)
    #define CURSOR_REPORT_CR Fld(10,0,AC_MSKW10)//[9:0]
#define SUPERRES_INTEN (SRS_INT_BASE + 0x600)
    #define OF_END_INT_EN Fld(1,1,AC_MSKB0)//[1:1]
    #define IF_END_INT_EN Fld(1,0,AC_MSKB0)//[0:0]
#define SUPERRES_INTSTA (SRS_INT_BASE + 0x604)
    #define OF_END_INT Fld(1,1,AC_MSKB0)//[1:1]
    #define IF_END_INT Fld(1,0,AC_MSKB0)//[0:0]
#define SUPERRES_STATUS (SRS_INT_BASE + 0x608)
    #define OF_UNFINISH Fld(1,1,AC_MSKB0)//[1:1]
    #define IF_UNFINISH Fld(1,0,AC_MSKB0)//[0:0]
#define SUPERRES_DEBUG_SEL (SRS_INT_BASE + 0x60C)
    #define DEBUG_SEL Fld(3,0,AC_MSKB0)//[2:0]
#define SUPERRES_DEBUG (SRS_INT_BASE + 0x610)
    #define DEBUG Fld(32,0,AC_FULLDW)//[31:0]
#define SUPERRES_DETECT_SEL (SRS_INT_BASE + 0x614)
    #define DETECT_CNT_SEL Fld(3,0,AC_MSKB0)//[2:0]
#define SUPERRES_DETECT (SRS_INT_BASE + 0x618)
    #define DETECT_CNT Fld(13,0,AC_MSKW10)//[12:0]
#define SUPERRES_ATPG (SRS_INT_BASE + 0xF00)
    #define SUPERRES_ATPG_CT Fld(1,1,AC_MSKB0)//[1:1]
    #define SUPERRES_ATPG_OB Fld(1,0,AC_MSKB0)//[0:0]
#define SUPERRES_SHADOW_CTRL (SRS_INT_BASE + 0xF0C)
    #define READ_WRK_REG Fld(1,2,AC_MSKB0)//[2:2]
    #define FORCE_COMMIT Fld(1,1,AC_MSKB0)//[1:1]
    #define BYPASS_SHADOW Fld(1,0,AC_MSKB0)//[0:0]


#endif

