1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */ 2*4882a593Smuzhiyun #ifndef IEP_REGS_H 3*4882a593Smuzhiyun #define IEP_REGS_H 4*4882a593Smuzhiyun #include "hw_iep_config_addr.h" 5*4882a593Smuzhiyun #include "iep.h" 6*4882a593Smuzhiyun #include "iep_drv.h" 7*4882a593Smuzhiyun 8*4882a593Smuzhiyun struct iep_status { 9*4882a593Smuzhiyun uint32_t reserved0 : 1; 10*4882a593Smuzhiyun uint32_t scl_sts : 1; 11*4882a593Smuzhiyun uint32_t dil_sts : 1; 12*4882a593Smuzhiyun uint32_t reserved1 : 1; 13*4882a593Smuzhiyun uint32_t wyuv_sts : 1; 14*4882a593Smuzhiyun uint32_t ryuv_sts : 1; 15*4882a593Smuzhiyun uint32_t wrgb_sts : 1; 16*4882a593Smuzhiyun uint32_t rrgb_sts : 1; 17*4882a593Smuzhiyun uint32_t voi_sts : 1; 18*4882a593Smuzhiyun }; 19*4882a593Smuzhiyun 20*4882a593Smuzhiyun #define rIEP_CONFIG0 (IEP_BASE+IEP_CONFIG0) 21*4882a593Smuzhiyun #define rIEP_CONFIG1 (IEP_BASE+IEP_CONFIG1) 22*4882a593Smuzhiyun 23*4882a593Smuzhiyun #define rIEP_STATUS (IEP_BASE+IEP_STATUS) 24*4882a593Smuzhiyun #define rIEP_INT (IEP_BASE+IEP_INT) 25*4882a593Smuzhiyun #define rIEP_FRM_START (IEP_BASE+IEP_FRM_START) 26*4882a593Smuzhiyun #define rIEP_SOFT_RST (IEP_BASE+IEP_SOFT_RST) 27*4882a593Smuzhiyun #define rIEP_CONF_DONE (IEP_BASE+IEP_CONF_DONE) 28*4882a593Smuzhiyun 29*4882a593Smuzhiyun #define rIEP_VIR_IMG_WIDTH (IEP_BASE+IEP_VIR_IMG_WIDTH) 30*4882a593Smuzhiyun 31*4882a593Smuzhiyun #define rIEP_IMG_SCL_FCT (IEP_BASE+IEP_IMG_SCL_FCT) 32*4882a593Smuzhiyun 33*4882a593Smuzhiyun #define rIEP_SRC_IMG_SIZE (IEP_BASE+IEP_SRC_IMG_SIZE) 34*4882a593Smuzhiyun #define rIEP_DST_IMG_SIZE (IEP_BASE+IEP_DST_IMG_SIZE) 35*4882a593Smuzhiyun 36*4882a593Smuzhiyun #define rIEP_DST_IMG_WIDTH_TILE0 (IEP_BASE+IEP_DST_IMG_WIDTH_TILE0) 37*4882a593Smuzhiyun #define rIEP_DST_IMG_WIDTH_TILE1 (IEP_BASE+IEP_DST_IMG_WIDTH_TILE1) 38*4882a593Smuzhiyun #define rIEP_DST_IMG_WIDTH_TILE2 (IEP_BASE+IEP_DST_IMG_WIDTH_TILE2) 39*4882a593Smuzhiyun #define rIEP_DST_IMG_WIDTH_TILE3 (IEP_BASE+IEP_DST_IMG_WIDTH_TILE3) 40*4882a593Smuzhiyun 41*4882a593Smuzhiyun #define rIEP_ENH_YUV_CNFG_0 (IEP_BASE+IEP_ENH_YUV_CNFG_0) 42*4882a593Smuzhiyun #define rIEP_ENH_YUV_CNFG_1 (IEP_BASE+IEP_ENH_YUV_CNFG_1) 43*4882a593Smuzhiyun #define rIEP_ENH_YUV_CNFG_2 (IEP_BASE+IEP_ENH_YUV_CNFG_2) 44*4882a593Smuzhiyun #define rIEP_ENH_RGB_CNFG (IEP_BASE+IEP_ENH_RGB_CNFG) 45*4882a593Smuzhiyun #define rIEP_ENH_C_COE (IEP_BASE+IEP_ENH_C_COE) 46*4882a593Smuzhiyun 47*4882a593Smuzhiyun #define rIEP_SRC_ADDR_YRGB (IEP_BASE+IEP_SRC_ADDR_YRGB) 48*4882a593Smuzhiyun #define rIEP_SRC_ADDR_CBCR (IEP_BASE+IEP_SRC_ADDR_CBCR) 49*4882a593Smuzhiyun #define rIEP_SRC_ADDR_CR (IEP_BASE+IEP_SRC_ADDR_CR) 50*4882a593Smuzhiyun #define rIEP_SRC_ADDR_Y1 (IEP_BASE+IEP_SRC_ADDR_Y1) 51*4882a593Smuzhiyun #define rIEP_SRC_ADDR_CBCR1 (IEP_BASE+IEP_SRC_ADDR_CBCR1) 52*4882a593Smuzhiyun #define rIEP_SRC_ADDR_CR1 (IEP_BASE+IEP_SRC_ADDR_CR1) 53*4882a593Smuzhiyun #define rIEP_SRC_ADDR_Y_ITEMP (IEP_BASE+IEP_SRC_ADDR_Y_ITEMP) 54*4882a593Smuzhiyun #define rIEP_SRC_ADDR_CBCR_ITEMP (IEP_BASE+IEP_SRC_ADDR_CBCR_ITEMP) 55*4882a593Smuzhiyun #define rIEP_SRC_ADDR_CR_ITEMP (IEP_BASE+IEP_SRC_ADDR_CR_ITEMP) 56*4882a593Smuzhiyun #define rIEP_SRC_ADDR_Y_FTEMP (IEP_BASE+IEP_SRC_ADDR_Y_FTEMP) 57*4882a593Smuzhiyun #define rIEP_SRC_ADDR_CBCR_FTEMP (IEP_BASE+IEP_SRC_ADDR_CBCR_FTEMP) 58*4882a593Smuzhiyun #define rIEP_SRC_ADDR_CR_FTEMP (IEP_BASE+IEP_SRC_ADDR_CR_FTEMP) 59*4882a593Smuzhiyun 60*4882a593Smuzhiyun #define rIEP_DST_ADDR_YRGB (IEP_BASE+IEP_DST_ADDR_YRGB) 61*4882a593Smuzhiyun #define rIEP_DST_ADDR_CBCR (IEP_BASE+IEP_DST_ADDR_CBCR) 62*4882a593Smuzhiyun #define rIEP_DST_ADDR_CR (IEP_BASE+IEP_DST_ADDR_CR) 63*4882a593Smuzhiyun #define rIEP_DST_ADDR_Y1 (IEP_BASE+IEP_DST_ADDR_Y1) 64*4882a593Smuzhiyun #define rIEP_DST_ADDR_CBCR1 (IEP_BASE+IEP_DST_ADDR_CBCR1) 65*4882a593Smuzhiyun #define rIEP_DST_ADDR_CR1 (IEP_BASE+IEP_DST_ADDR_CR1) 66*4882a593Smuzhiyun #define rIEP_DST_ADDR_Y_ITEMP (IEP_BASE+IEP_DST_ADDR_Y_ITEMP) 67*4882a593Smuzhiyun #define rIEP_DST_ADDR_CBCR_ITEMP (IEP_BASE+IEP_DST_ADDR_CBCR_ITEMP) 68*4882a593Smuzhiyun #define rIEP_DST_ADDR_CR_ITEMP (IEP_BASE+IEP_DST_ADDR_CR_ITEMP) 69*4882a593Smuzhiyun #define rIEP_DST_ADDR_Y_FTEMP (IEP_BASE+IEP_DST_ADDR_Y_FTEMP) 70*4882a593Smuzhiyun #define rIEP_DST_ADDR_CBCR_FTEMP (IEP_BASE+IEP_DST_ADDR_CBCR_FTEMP) 71*4882a593Smuzhiyun #define rIEP_DST_ADDR_CR_FTEMP (IEP_BASE+IEP_DST_ADDR_CR_FTEMP) 72*4882a593Smuzhiyun 73*4882a593Smuzhiyun #define rIEP_DIL_MTN_TAB0 (IEP_BASE+IEP_DIL_MTN_TAB0) 74*4882a593Smuzhiyun #define rIEP_DIL_MTN_TAB1 (IEP_BASE+IEP_DIL_MTN_TAB1) 75*4882a593Smuzhiyun #define rIEP_DIL_MTN_TAB2 (IEP_BASE+IEP_DIL_MTN_TAB2) 76*4882a593Smuzhiyun #define rIEP_DIL_MTN_TAB3 (IEP_BASE+IEP_DIL_MTN_TAB3) 77*4882a593Smuzhiyun #define rIEP_DIL_MTN_TAB4 (IEP_BASE+IEP_DIL_MTN_TAB4) 78*4882a593Smuzhiyun #define rIEP_DIL_MTN_TAB5 (IEP_BASE+IEP_DIL_MTN_TAB5) 79*4882a593Smuzhiyun #define rIEP_DIL_MTN_TAB6 (IEP_BASE+IEP_DIL_MTN_TAB6) 80*4882a593Smuzhiyun #define rIEP_DIL_MTN_TAB7 (IEP_BASE+IEP_DIL_MTN_TAB7) 81*4882a593Smuzhiyun 82*4882a593Smuzhiyun #define rIEP_ENH_CG_TAB (IEP_BASE+IEP_ENH_CG_TAB) 83*4882a593Smuzhiyun 84*4882a593Smuzhiyun #define rIEP_YUV_DNS_CRCT_TEMP (IEP_BASE+IEP_YUV_DNS_CRCT_TEMP) 85*4882a593Smuzhiyun #define rIEP_YUV_DNS_CRCT_SPAT (IEP_BASE+IEP_YUV_DNS_CRCT_SPAT) 86*4882a593Smuzhiyun 87*4882a593Smuzhiyun #define rIEP_ENH_DDE_COE0 (IEP_BASE+IEP_ENH_DDE_COE0) 88*4882a593Smuzhiyun #define rIEP_ENH_DDE_COE1 (IEP_BASE+IEP_ENH_DDE_COE1) 89*4882a593Smuzhiyun 90*4882a593Smuzhiyun #define RAW_rIEP_CONFIG0 (IEP_BASE+RAW_IEP_CONFIG0) 91*4882a593Smuzhiyun #define RAW_rIEP_CONFIG1 (IEP_BASE+RAW_IEP_CONFIG1) 92*4882a593Smuzhiyun #define RAW_rIEP_VIR_IMG_WIDTH (IEP_BASE+RAW_IEP_VIR_IMG_WIDTH) 93*4882a593Smuzhiyun 94*4882a593Smuzhiyun #define RAW_rIEP_IMG_SCL_FCT (IEP_BASE+RAW_IEP_IMG_SCL_FCT) 95*4882a593Smuzhiyun 96*4882a593Smuzhiyun #define RAW_rIEP_SRC_IMG_SIZE (IEP_BASE+RAW_IEP_SRC_IMG_SIZE) 97*4882a593Smuzhiyun #define RAW_rIEP_DST_IMG_SIZE (IEP_BASE+RAW_IEP_DST_IMG_SIZE) 98*4882a593Smuzhiyun 99*4882a593Smuzhiyun #define RAW_rIEP_ENH_YUV_CNFG_0 (IEP_BASE+RAW_IEP_ENH_YUV_CNFG_0) 100*4882a593Smuzhiyun #define RAW_rIEP_ENH_YUV_CNFG_1 (IEP_BASE+RAW_IEP_ENH_YUV_CNFG_1) 101*4882a593Smuzhiyun #define RAW_rIEP_ENH_YUV_CNFG_2 (IEP_BASE+RAW_IEP_ENH_YUV_CNFG_2) 102*4882a593Smuzhiyun #define RAW_rIEP_ENH_RGB_CNFG (IEP_BASE+RAW_IEP_ENH_RGB_CNFG) 103*4882a593Smuzhiyun 104*4882a593Smuzhiyun #define rIEP_CG_TAB_ADDR (IEP_BASE+0x0100) 105*4882a593Smuzhiyun 106*4882a593Smuzhiyun /*----------------------------------------------------------------- 107*4882a593Smuzhiyun //reg bit operation definition 108*4882a593Smuzhiyun -----------------------------------------------------------------*/ 109*4882a593Smuzhiyun /*iep_config0*/ 110*4882a593Smuzhiyun #define IEP_REGB_V_REVERSE_DISP_Z(x) (((x)&0x1 ) << 31 ) 111*4882a593Smuzhiyun #define IEP_REGB_H_REVERSE_DISP_Z(x) (((x)&0x1 ) << 30 ) 112*4882a593Smuzhiyun #define IEP_REGB_SCL_EN_Z(x) (((x)&0x1 ) << 28 ) 113*4882a593Smuzhiyun #define IEP_REGB_SCL_SEL_Z(x) (((x)&0x3 ) << 26 ) 114*4882a593Smuzhiyun #define IEP_REGB_SCL_UP_COE_SEL_Z(x) (((x)&0x3 ) << 24 ) 115*4882a593Smuzhiyun #define IEP_REGB_DIL_EI_SEL_Z(x) (((x)&0x1 ) << 23 ) 116*4882a593Smuzhiyun #define IEP_REGB_DIL_EI_RADIUS_Z(x) (((x)&0x3 ) << 21 ) 117*4882a593Smuzhiyun #define IEP_REGB_CON_GAM_ORDER_Z(x) (((x)&0x1 ) << 20 ) 118*4882a593Smuzhiyun #define IEP_REGB_RGB_ENH_SEL_Z(x) (((x)&0x3 ) << 18 ) 119*4882a593Smuzhiyun #define IEP_REGB_RGB_CON_GAM_EN_Z(x) (((x)&0x1 ) << 17 ) 120*4882a593Smuzhiyun #define IEP_REGB_RGB_COLOR_ENH_EN_Z(x) (((x)&0x1 ) << 16 ) 121*4882a593Smuzhiyun #define IEP_REGB_DIL_EI_SMOOTH_Z(x) (((x)&0x1 ) << 15 ) 122*4882a593Smuzhiyun #define IEP_REGB_YUV_ENH_EN_Z(x) (((x)&0x1 ) << 14 ) 123*4882a593Smuzhiyun #define IEP_REGB_YUV_DNS_EN_Z(x) (((x)&0x1 ) << 13 ) 124*4882a593Smuzhiyun #define IEP_REGB_DIL_EI_MODE_Z(x) (((x)&0x1 ) << 12 ) 125*4882a593Smuzhiyun #define IEP_REGB_DIL_HF_EN_Z(x) (((x)&0x1 ) << 11 ) 126*4882a593Smuzhiyun #define IEP_REGB_DIL_MODE_Z(x) (((x)&0x7 ) << 8 ) 127*4882a593Smuzhiyun #define IEP_REGB_DIL_HF_FCT_Z(x) (((x)&0x7F) << 1 ) 128*4882a593Smuzhiyun #define IEP_REGB_LCDC_PATH_EN_Z(x) (((x)&0x1 ) << 0 ) 129*4882a593Smuzhiyun 130*4882a593Smuzhiyun /*iep_conig1*/ 131*4882a593Smuzhiyun #define IEP_REGB_GLB_ALPHA_Z(x) (((x)&0xff) << 24 ) 132*4882a593Smuzhiyun #define IEP_REGB_RGB2YUV_INPUT_CLIP_Z(x) (((x)&0x1 ) << 23 ) 133*4882a593Smuzhiyun #define IEP_REGB_YUV2RGB_INPUT_CLIP_Z(x) (((x)&0x1 ) << 22 ) 134*4882a593Smuzhiyun #define IEP_REGB_RGB_TO_YUV_EN_Z(x) (((x)&0x1 ) << 21 ) 135*4882a593Smuzhiyun #define IEP_REGB_YUV_TO_RGB_EN_Z(x) (((x)&0x1 ) << 20 ) 136*4882a593Smuzhiyun #define IEP_REGB_RGB2YUV_COE_SEL_Z(x) (((x)&0x3 ) << 18 ) 137*4882a593Smuzhiyun #define IEP_REGB_YUV2RGB_COE_SEL_Z(x) (((x)&0x3 ) << 16 ) 138*4882a593Smuzhiyun #define IEP_REGB_DITHER_DOWN_EN_Z(x) (((x)&0x1 ) << 15 ) 139*4882a593Smuzhiyun #define IEP_REGB_DITHER_UP_EN_Z(x) (((x)&0x1 ) << 14 ) 140*4882a593Smuzhiyun #define IEP_REGB_DST_YUV_SWAP_Z(x) (((x)&0x3 ) << 12 ) 141*4882a593Smuzhiyun #define IEP_REGB_DST_RGB_SWAP_Z(x) (((x)&0x3 ) << 10 ) 142*4882a593Smuzhiyun #define IEP_REGB_DST_FMT_Z(x) (((x)&0x3 ) << 8 ) 143*4882a593Smuzhiyun #define IEP_REGB_SRC_YUV_SWAP_Z(x) (((x)&0x3 ) << 4 ) 144*4882a593Smuzhiyun #define IEP_REGB_SRC_RGB_SWAP_Z(x) (((x)&0x3 ) << 2 ) 145*4882a593Smuzhiyun #define IEP_REGB_SRC_FMT_Z(x) (((x)&0x3 ) << 0 ) 146*4882a593Smuzhiyun 147*4882a593Smuzhiyun /*iep_int*/ 148*4882a593Smuzhiyun #define IEP_REGB_FRAME_END_INT_CLR_Z(x) (((x)&0x1 ) << 16 ) 149*4882a593Smuzhiyun #define IEP_REGB_FRAME_END_INT_EN_Z(x) (((x)&0x1 ) << 8 ) 150*4882a593Smuzhiyun 151*4882a593Smuzhiyun /*frm_start*/ 152*4882a593Smuzhiyun #define IEP_REGB_FRM_START_Z(x) (((x)&0x01 ) << 0 ) 153*4882a593Smuzhiyun 154*4882a593Smuzhiyun /*soft_rst*/ 155*4882a593Smuzhiyun #define IEP_REGB_SOFT_RST_Z(x) (((x)&0x01 ) << 0 ) 156*4882a593Smuzhiyun 157*4882a593Smuzhiyun /*iep_vir_img_width*/ 158*4882a593Smuzhiyun #define IEP_REGB_DST_VIR_LINE_WIDTH_Z(x) (((x)&0xffff) << 16 ) 159*4882a593Smuzhiyun #define IEP_REGB_SRC_VIR_LINE_WIDTH_Z(x) (((x)&0xffff) << 0 ) 160*4882a593Smuzhiyun 161*4882a593Smuzhiyun /*iep_img_scl_fct*/ 162*4882a593Smuzhiyun #define IEP_REGB_SCL_VRT_FCT_Z(x) (((x)&0xffff) << 16 ) 163*4882a593Smuzhiyun #define IEP_REGB_SCL_HRZ_FCT_Z(x) (((x)&0xffff) << 0 ) 164*4882a593Smuzhiyun 165*4882a593Smuzhiyun /*iep_src_img_size*/ 166*4882a593Smuzhiyun #define IEP_REGB_SRC_IMG_HEIGHT_Z(x) (((x)&0x1fff) << 16 ) 167*4882a593Smuzhiyun #define IEP_REGB_SRC_IMG_WIDTH_Z(x) (((x)&0x1fff) << 0 ) 168*4882a593Smuzhiyun /*iep_dst_img_size*/ 169*4882a593Smuzhiyun #define IEP_REGB_DST_IMG_HEIGHT_Z(x) (((x)&0x1fff) << 16 ) 170*4882a593Smuzhiyun #define IEP_REGB_DST_IMG_WIDTH_Z(x) (((x)&0x1fff) << 0 ) 171*4882a593Smuzhiyun 172*4882a593Smuzhiyun /*dst_img_width_tile0/1/2/3*/ 173*4882a593Smuzhiyun #define IEP_REGB_DST_IMG_WIDTH_TILE0_Z(x) (((x)&0x3ff ) << 0 ) 174*4882a593Smuzhiyun #define IEP_REGB_DST_IMG_WIDTH_TILE1_Z(x) (((x)&0x3ff ) << 0 ) 175*4882a593Smuzhiyun #define IEP_REGB_DST_IMG_WIDTH_TILE2_Z(x) (((x)&0x3ff ) << 0 ) 176*4882a593Smuzhiyun #define IEP_REGB_DST_IMG_WIDTH_TILE3_Z(x) (((x)&0x3ff ) << 0 ) 177*4882a593Smuzhiyun 178*4882a593Smuzhiyun /*iep_enh_yuv_cnfg0*/ 179*4882a593Smuzhiyun #define IEP_REGB_SAT_CON_Z(x) (((x)&0x1ff ) << 16 ) 180*4882a593Smuzhiyun #define IEP_REGB_CONTRAST_Z(x) (((x)&0xff ) << 8 ) 181*4882a593Smuzhiyun #define IEP_REGB_BRIGHTNESS_Z(x) (((x)&0x3f ) << 0 ) 182*4882a593Smuzhiyun /*iep_enh_yuv_cnfg1*/ 183*4882a593Smuzhiyun #define IEP_REGB_COS_HUE_Z(x) (((x)&0xff ) << 8 ) 184*4882a593Smuzhiyun #define IEP_REGB_SIN_HUE_Z(x) (((x)&0xff ) << 0 ) 185*4882a593Smuzhiyun /*iep_enh_yuv_cnfg2*/ 186*4882a593Smuzhiyun #define IEP_REGB_VIDEO_MODE_Z(x) (((x)&0x3 ) << 24 ) 187*4882a593Smuzhiyun #define IEP_REGB_COLOR_BAR_V_Z(x) (((x)&0xff ) << 16 ) 188*4882a593Smuzhiyun #define IEP_REGB_COLOR_BAR_U_Z(x) (((x)&0xff ) << 8 ) 189*4882a593Smuzhiyun #define IEP_REGB_COLOR_BAR_Y_Z(x) (((x)&0xff ) << 0 ) 190*4882a593Smuzhiyun /*iep_enh_rgb_cnfg*/ 191*4882a593Smuzhiyun #define IEP_REGB_YUV_DNS_LUMA_SPAT_SEL_Z(x) (((x)&0x3 ) << 30 ) 192*4882a593Smuzhiyun #define IEP_REGB_YUV_DNS_LUMA_TEMP_SEL_Z(x) (((x)&0x3 ) << 28 ) 193*4882a593Smuzhiyun #define IEP_REGB_YUV_DNS_CHROMA_SPAT_SEL_Z(x) (((x)&0x3 ) << 26 ) 194*4882a593Smuzhiyun #define IEP_REGB_YUV_DNS_CHROMA_TEMP_SEL_Z(x) (((x)&0x3 ) << 24 ) 195*4882a593Smuzhiyun #define IEP_REGB_ENH_THRESHOLD_Z(x) (((x)&0xff ) << 16 ) 196*4882a593Smuzhiyun #define IEP_REGB_ENH_ALPHA_Z(x) (((x)&0x3f ) << 8 ) 197*4882a593Smuzhiyun #define IEP_REGB_ENH_RADIUS_Z(x) (((x)&0x3 ) << 0 ) 198*4882a593Smuzhiyun /*iep_enh_c_coe*/ 199*4882a593Smuzhiyun #define IEP_REGB_ENH_C_COE_Z(x) (((x)&0x7f ) << 0 ) 200*4882a593Smuzhiyun /*dil_mtn_tab*/ 201*4882a593Smuzhiyun #define IEP_REGB_DIL_MTN_TAB0_0_Z(x) (((x)&0x7f ) << 0 ) 202*4882a593Smuzhiyun #define IEP_REGB_DIL_MTN_TAB0_1_Z(x) (((x)&0x7f ) << 8 ) 203*4882a593Smuzhiyun #define IEP_REGB_DIL_MTN_TAB0_2_Z(x) (((x)&0x7f ) << 16 ) 204*4882a593Smuzhiyun #define IEP_REGB_DIL_MTN_TAB0_3_Z(x) (((x)&0x7f ) << 24 ) 205*4882a593Smuzhiyun 206*4882a593Smuzhiyun #define IEP_REGB_DIL_MTN_TAB1_0_Z(x) (((x)&0x7f ) << 0 ) 207*4882a593Smuzhiyun #define IEP_REGB_DIL_MTN_TAB1_1_Z(x) (((x)&0x7f ) << 8 ) 208*4882a593Smuzhiyun #define IEP_REGB_DIL_MTN_TAB1_2_Z(x) (((x)&0x7f ) << 16 ) 209*4882a593Smuzhiyun #define IEP_REGB_DIL_MTN_TAB1_3_Z(x) (((x)&0x7f ) << 24 ) 210*4882a593Smuzhiyun 211*4882a593Smuzhiyun #define IEP_REGB_DIL_MTN_TAB2_0_Z(x) (((x)&0x7f ) << 0 ) 212*4882a593Smuzhiyun #define IEP_REGB_DIL_MTN_TAB2_1_Z(x) (((x)&0x7f ) << 8 ) 213*4882a593Smuzhiyun #define IEP_REGB_DIL_MTN_TAB2_2_Z(x) (((x)&0x7f ) << 16 ) 214*4882a593Smuzhiyun #define IEP_REGB_DIL_MTN_TAB2_3_Z(x) (((x)&0x7f ) << 24 ) 215*4882a593Smuzhiyun 216*4882a593Smuzhiyun #define IEP_REGB_DIL_MTN_TAB3_0_Z(x) (((x)&0x7f ) << 0 ) 217*4882a593Smuzhiyun #define IEP_REGB_DIL_MTN_TAB3_1_Z(x) (((x)&0x7f ) << 8 ) 218*4882a593Smuzhiyun #define IEP_REGB_DIL_MTN_TAB3_2_Z(x) (((x)&0x7f ) << 16 ) 219*4882a593Smuzhiyun #define IEP_REGB_DIL_MTN_TAB3_3_Z(x) (((x)&0x7f ) << 24 ) 220*4882a593Smuzhiyun 221*4882a593Smuzhiyun #define IEP_REGB_DIL_MTN_TAB4_0_Z(x) (((x)&0x7f ) << 0 ) 222*4882a593Smuzhiyun #define IEP_REGB_DIL_MTN_TAB4_1_Z(x) (((x)&0x7f ) << 8 ) 223*4882a593Smuzhiyun #define IEP_REGB_DIL_MTN_TAB4_2_Z(x) (((x)&0x7f ) << 16 ) 224*4882a593Smuzhiyun #define IEP_REGB_DIL_MTN_TAB4_3_Z(x) (((x)&0x7f ) << 24 ) 225*4882a593Smuzhiyun 226*4882a593Smuzhiyun #define IEP_REGB_DIL_MTN_TAB5_0_Z(x) (((x)&0x7f ) << 0 ) 227*4882a593Smuzhiyun #define IEP_REGB_DIL_MTN_TAB5_1_Z(x) (((x)&0x7f ) << 8 ) 228*4882a593Smuzhiyun #define IEP_REGB_DIL_MTN_TAB5_2_Z(x) (((x)&0x7f ) << 16 ) 229*4882a593Smuzhiyun #define IEP_REGB_DIL_MTN_TAB5_3_Z(x) (((x)&0x7f ) << 24 ) 230*4882a593Smuzhiyun 231*4882a593Smuzhiyun #define IEP_REGB_DIL_MTN_TAB6_0_Z(x) (((x)&0x7f ) << 0 ) 232*4882a593Smuzhiyun #define IEP_REGB_DIL_MTN_TAB6_1_Z(x) (((x)&0x7f ) << 8 ) 233*4882a593Smuzhiyun #define IEP_REGB_DIL_MTN_TAB6_2_Z(x) (((x)&0x7f ) << 16 ) 234*4882a593Smuzhiyun #define IEP_REGB_DIL_MTN_TAB6_3_Z(x) (((x)&0x7f ) << 24 ) 235*4882a593Smuzhiyun 236*4882a593Smuzhiyun #define IEP_REGB_DIL_MTN_TAB7_0_Z(x) (((x)&0x7f ) << 0 ) 237*4882a593Smuzhiyun #define IEP_REGB_DIL_MTN_TAB7_1_Z(x) (((x)&0x7f ) << 8 ) 238*4882a593Smuzhiyun #define IEP_REGB_DIL_MTN_TAB7_2_Z(x) (((x)&0x7f ) << 16 ) 239*4882a593Smuzhiyun #define IEP_REGB_DIL_MTN_TAB7_3_Z(x) (((x)&0x7f ) << 24 ) 240*4882a593Smuzhiyun 241*4882a593Smuzhiyun /*iep_config0*/ 242*4882a593Smuzhiyun #define IEP_REGB_V_REVERSE_DISP_Y (0x1 << 31 ) 243*4882a593Smuzhiyun #define IEP_REGB_H_REVERSE_DISP_Y (0x1 << 30 ) 244*4882a593Smuzhiyun #define IEP_REGB_SCL_EN_Y (0x1 << 28 ) 245*4882a593Smuzhiyun #define IEP_REGB_SCL_SEL_Y (0x3 << 26 ) 246*4882a593Smuzhiyun #define IEP_REGB_SCL_UP_COE_SEL_Y (0x3 << 24 ) 247*4882a593Smuzhiyun #define IEP_REGB_DIL_EI_SEL_Y (0x1 << 23 ) 248*4882a593Smuzhiyun #define IEP_REGB_DIL_EI_RADIUS_Y (0x3 << 21 ) 249*4882a593Smuzhiyun #define IEP_REGB_CON_GAM_ORDER_Y (0x1 << 20 ) 250*4882a593Smuzhiyun #define IEP_REGB_RGB_ENH_SEL_Y (0x3 << 18 ) 251*4882a593Smuzhiyun #define IEP_REGB_RGB_CON_GAM_EN_Y (0x1 << 17 ) 252*4882a593Smuzhiyun #define IEP_REGB_RGB_COLOR_ENH_EN_Y (0x1 << 16 ) 253*4882a593Smuzhiyun #define IEP_REGB_DIL_EI_SMOOTH_Y (0x1 << 15 ) 254*4882a593Smuzhiyun #define IEP_REGB_YUV_ENH_EN_Y (0x1 << 14 ) 255*4882a593Smuzhiyun #define IEP_REGB_YUV_DNS_EN_Y (0x1 << 13 ) 256*4882a593Smuzhiyun #define IEP_REGB_DIL_EI_MODE_Y (0x1 << 12 ) 257*4882a593Smuzhiyun #define IEP_REGB_DIL_HF_EN_Y (0x1 << 11 ) 258*4882a593Smuzhiyun #define IEP_REGB_DIL_MODE_Y (0x7 << 8 ) 259*4882a593Smuzhiyun #define IEP_REGB_DIL_HF_FCT_Y (0x7F << 1 ) 260*4882a593Smuzhiyun #define IEP_REGB_LCDC_PATH_EN_Y (0x1 << 0 ) 261*4882a593Smuzhiyun 262*4882a593Smuzhiyun /*iep_conig1*/ 263*4882a593Smuzhiyun #define IEP_REGB_GLB_ALPHA_Y (0xff << 24 ) 264*4882a593Smuzhiyun #define IEP_REGB_RGB2YUV_INPUT_CLIP_Y (0x1 << 23 ) 265*4882a593Smuzhiyun #define IEP_REGB_YUV2RGB_INPUT_CLIP_Y (0x1 << 22 ) 266*4882a593Smuzhiyun #define IEP_REGB_RGB_TO_YUV_EN_Y (0x1 << 21 ) 267*4882a593Smuzhiyun #define IEP_REGB_YUV_TO_RGB_EN_Y (0x1 << 20 ) 268*4882a593Smuzhiyun #define IEP_REGB_RGB2YUV_COE_SEL_Y (0x3 << 18 ) 269*4882a593Smuzhiyun #define IEP_REGB_YUV2RGB_COE_SEL_Y (0x3 << 16 ) 270*4882a593Smuzhiyun #define IEP_REGB_DITHER_DOWN_EN_Y (0x1 << 15 ) 271*4882a593Smuzhiyun #define IEP_REGB_DITHER_UP_EN_Y (0x1 << 14 ) 272*4882a593Smuzhiyun #define IEP_REGB_DST_YUV_SWAP_Y (0x3 << 12 ) 273*4882a593Smuzhiyun #define IEP_REGB_DST_RGB_SWAP_Y (0x3 << 10 ) 274*4882a593Smuzhiyun #define IEP_REGB_DST_FMT_Y (0x3 << 8 ) 275*4882a593Smuzhiyun #define IEP_REGB_SRC_YUV_SWAP_Y (0x3 << 4 ) 276*4882a593Smuzhiyun #define IEP_REGB_SRC_RGB_SWAP_Y (0x3 << 2 ) 277*4882a593Smuzhiyun #define IEP_REGB_SRC_FMT_Y (0x3 << 0 ) 278*4882a593Smuzhiyun 279*4882a593Smuzhiyun /*iep_int*/ 280*4882a593Smuzhiyun #define IEP_REGB_FRAME_END_INT_CLR_Y (0x1 << 16 ) 281*4882a593Smuzhiyun #define IEP_REGB_FRAME_END_INT_EN_Y (0x1 << 8 ) 282*4882a593Smuzhiyun 283*4882a593Smuzhiyun /*frm_start*/ 284*4882a593Smuzhiyun #define IEP_REGB_FRM_START_Y (0x1 << 0 ) 285*4882a593Smuzhiyun 286*4882a593Smuzhiyun /*soft_rst*/ 287*4882a593Smuzhiyun #define IEP_REGB_SOFT_RST_Y (0x1 << 0 ) 288*4882a593Smuzhiyun 289*4882a593Smuzhiyun /*iep_vir_img_width*/ 290*4882a593Smuzhiyun #define IEP_REGB_DST_VIR_LINE_WIDTH_Y (0xffff << 16 ) 291*4882a593Smuzhiyun #define IEP_REGB_SRC_VIR_LINE_WIDTH_Y (0xffff << 0 ) 292*4882a593Smuzhiyun 293*4882a593Smuzhiyun /*iep_img_scl_fct*/ 294*4882a593Smuzhiyun #define IEP_REGB_SCL_VRT_FCT_Y (0xffff << 16 ) 295*4882a593Smuzhiyun #define IEP_REGB_SCL_HRZ_FCT_Y (0xffff << 0 ) 296*4882a593Smuzhiyun 297*4882a593Smuzhiyun /*iep_src_img_size*/ 298*4882a593Smuzhiyun #define IEP_REGB_SRC_IMG_HEIGHT_Y (0x1fff << 16 ) 299*4882a593Smuzhiyun #define IEP_REGB_SRC_IMG_WIDTH_Y (0x1fff << 0 ) 300*4882a593Smuzhiyun /*iep_dst_img_size*/ 301*4882a593Smuzhiyun #define IEP_REGB_DST_IMG_HEIGHT_Y (0x1fff << 16 ) 302*4882a593Smuzhiyun #define IEP_REGB_DST_IMG_WIDTH_Y (0x1fff << 0 ) 303*4882a593Smuzhiyun 304*4882a593Smuzhiyun /*dst_img_width_tile0/1/2/3*/ 305*4882a593Smuzhiyun #define IEP_REGB_DST_IMG_WIDTH_TILE0_Y (0x3ff << 0 ) 306*4882a593Smuzhiyun #define IEP_REGB_DST_IMG_WIDTH_TILE1_Y (0x3ff << 0 ) 307*4882a593Smuzhiyun #define IEP_REGB_DST_IMG_WIDTH_TILE2_Y (0x3ff << 0 ) 308*4882a593Smuzhiyun #define IEP_REGB_DST_IMG_WIDTH_TILE3_Y (0x3ff << 0 ) 309*4882a593Smuzhiyun 310*4882a593Smuzhiyun /*iep_enh_yuv_cnfg0*/ 311*4882a593Smuzhiyun #define IEP_REGB_SAT_CON_Y (0x1ff << 16) 312*4882a593Smuzhiyun #define IEP_REGB_CONTRAST_Y (0xff << 8 ) 313*4882a593Smuzhiyun #define IEP_REGB_BRIGHTNESS_Y (0x3f << 0 ) 314*4882a593Smuzhiyun /*iep_enh_yuv_cnfg1*/ 315*4882a593Smuzhiyun #define IEP_REGB_COS_HUE_Y (0xff << 8 ) 316*4882a593Smuzhiyun #define IEP_REGB_SIN_HUE_Y (0xff << 0 ) 317*4882a593Smuzhiyun /*iep_enh_yuv_cnfg2*/ 318*4882a593Smuzhiyun #define IEP_REGB_VIDEO_MODE_Y (0x3 << 24) 319*4882a593Smuzhiyun #define IEP_REGB_COLOR_BAR_V_Y (0xff << 16) 320*4882a593Smuzhiyun #define IEP_REGB_COLOR_BAR_U_Y (0xff << 8 ) 321*4882a593Smuzhiyun #define IEP_REGB_COLOR_BAR_Y_Y (0xff << 0 ) 322*4882a593Smuzhiyun /*iep_enh_rgb_cnfg*/ 323*4882a593Smuzhiyun #define IEP_REGB_YUV_DNS_LUMA_SPAT_SEL_Y (0x3 << 30) 324*4882a593Smuzhiyun #define IEP_REGB_YUV_DNS_LUMA_TEMP_SEL_Y (0x3 << 28) 325*4882a593Smuzhiyun #define IEP_REGB_YUV_DNS_CHROMA_SPAT_SEL_Y (0x3 << 26) 326*4882a593Smuzhiyun #define IEP_REGB_YUV_DNS_CHROMA_TEMP_SEL_Y (0x3 << 24) 327*4882a593Smuzhiyun #define IEP_REGB_ENH_THRESHOLD_Y (0xff << 16) 328*4882a593Smuzhiyun #define IEP_REGB_ENH_ALPHA_Y (0x3f << 8 ) 329*4882a593Smuzhiyun #define IEP_REGB_ENH_RADIUS_Y (0x3 << 0 ) 330*4882a593Smuzhiyun /*iep_enh_c_coe*/ 331*4882a593Smuzhiyun #define IEP_REGB_ENH_C_COE_Y (0x7f << 0 ) 332*4882a593Smuzhiyun /*dil_mtn_tab*/ 333*4882a593Smuzhiyun #define IEP_REGB_DIL_MTN_TAB0_0_Y (0x7f << 0 ) 334*4882a593Smuzhiyun #define IEP_REGB_DIL_MTN_TAB0_1_Y (0x7f << 8 ) 335*4882a593Smuzhiyun #define IEP_REGB_DIL_MTN_TAB0_2_Y (0x7f << 16 ) 336*4882a593Smuzhiyun #define IEP_REGB_DIL_MTN_TAB0_3_Y (0x7f << 24 ) 337*4882a593Smuzhiyun 338*4882a593Smuzhiyun #define IEP_REGB_DIL_MTN_TAB1_0_Y (0x7f << 0 ) 339*4882a593Smuzhiyun #define IEP_REGB_DIL_MTN_TAB1_1_Y (0x7f << 8 ) 340*4882a593Smuzhiyun #define IEP_REGB_DIL_MTN_TAB1_2_Y (0x7f << 16 ) 341*4882a593Smuzhiyun #define IEP_REGB_DIL_MTN_TAB1_3_Y (0x7f << 24 ) 342*4882a593Smuzhiyun 343*4882a593Smuzhiyun #define IEP_REGB_DIL_MTN_TAB2_0_Y (0x7f << 0 ) 344*4882a593Smuzhiyun #define IEP_REGB_DIL_MTN_TAB2_1_Y (0x7f << 8 ) 345*4882a593Smuzhiyun #define IEP_REGB_DIL_MTN_TAB2_2_Y (0x7f << 16 ) 346*4882a593Smuzhiyun #define IEP_REGB_DIL_MTN_TAB2_3_Y (0x7f << 24 ) 347*4882a593Smuzhiyun 348*4882a593Smuzhiyun #define IEP_REGB_DIL_MTN_TAB3_0_Y (0x7f << 0 ) 349*4882a593Smuzhiyun #define IEP_REGB_DIL_MTN_TAB3_1_Y (0x7f << 8 ) 350*4882a593Smuzhiyun #define IEP_REGB_DIL_MTN_TAB3_2_Y (0x7f << 16 ) 351*4882a593Smuzhiyun #define IEP_REGB_DIL_MTN_TAB3_3_Y (0x7f << 24 ) 352*4882a593Smuzhiyun 353*4882a593Smuzhiyun #define IEP_REGB_DIL_MTN_TAB4_0_Y (0x7f << 0 ) 354*4882a593Smuzhiyun #define IEP_REGB_DIL_MTN_TAB4_1_Y (0x7f << 8 ) 355*4882a593Smuzhiyun #define IEP_REGB_DIL_MTN_TAB4_2_Y (0x7f << 16 ) 356*4882a593Smuzhiyun #define IEP_REGB_DIL_MTN_TAB4_3_Y (0x7f << 24 ) 357*4882a593Smuzhiyun 358*4882a593Smuzhiyun #define IEP_REGB_DIL_MTN_TAB5_0_Y (0x7f << 0 ) 359*4882a593Smuzhiyun #define IEP_REGB_DIL_MTN_TAB5_1_Y (0x7f << 8 ) 360*4882a593Smuzhiyun #define IEP_REGB_DIL_MTN_TAB5_2_Y (0x7f << 16 ) 361*4882a593Smuzhiyun #define IEP_REGB_DIL_MTN_TAB5_3_Y (0x7f << 24 ) 362*4882a593Smuzhiyun 363*4882a593Smuzhiyun #define IEP_REGB_DIL_MTN_TAB6_0_Y (0x7f << 0 ) 364*4882a593Smuzhiyun #define IEP_REGB_DIL_MTN_TAB6_1_Y (0x7f << 8 ) 365*4882a593Smuzhiyun #define IEP_REGB_DIL_MTN_TAB6_2_Y (0x7f << 16 ) 366*4882a593Smuzhiyun #define IEP_REGB_DIL_MTN_TAB6_3_Y (0x7f << 24 ) 367*4882a593Smuzhiyun 368*4882a593Smuzhiyun #define IEP_REGB_DIL_MTN_TAB7_0_Y (0x7f << 0 ) 369*4882a593Smuzhiyun #define IEP_REGB_DIL_MTN_TAB7_1_Y (0x7f << 8 ) 370*4882a593Smuzhiyun #define IEP_REGB_DIL_MTN_TAB7_2_Y (0x7f << 16 ) 371*4882a593Smuzhiyun #define IEP_REGB_DIL_MTN_TAB7_3_Y (0x7f << 24 ) 372*4882a593Smuzhiyun 373*4882a593Smuzhiyun /*----------------------------------------------------------------- 374*4882a593Smuzhiyun MaskRegBits32(addr, y, z),Register configure 375*4882a593Smuzhiyun -----------------------------------------------------------------*/ 376*4882a593Smuzhiyun /*iep_config0*/ 377*4882a593Smuzhiyun #define IEP_REGB_V_REVERSE_DISP(base, x) ConfRegBits32(base, RAW_rIEP_CONFIG0,rIEP_CONFIG0,IEP_REGB_V_REVERSE_DISP_Y,IEP_REGB_V_REVERSE_DISP_Z(x)) 378*4882a593Smuzhiyun #define IEP_REGB_H_REVERSE_DISP(base, x) ConfRegBits32(base, RAW_rIEP_CONFIG0,rIEP_CONFIG0,IEP_REGB_H_REVERSE_DISP_Y,IEP_REGB_H_REVERSE_DISP_Z(x)) 379*4882a593Smuzhiyun #define IEP_REGB_SCL_EN(base, x) ConfRegBits32(base, RAW_rIEP_CONFIG0,rIEP_CONFIG0,IEP_REGB_SCL_EN_Y,IEP_REGB_SCL_EN_Z(x)) 380*4882a593Smuzhiyun #define IEP_REGB_SCL_SEL(base, x) ConfRegBits32(base, RAW_rIEP_CONFIG0,rIEP_CONFIG0,IEP_REGB_SCL_SEL_Y,IEP_REGB_SCL_SEL_Z(x)) 381*4882a593Smuzhiyun #define IEP_REGB_SCL_UP_COE_SEL(base, x) ConfRegBits32(base, RAW_rIEP_CONFIG0,rIEP_CONFIG0,IEP_REGB_SCL_UP_COE_SEL_Y,IEP_REGB_SCL_UP_COE_SEL_Z(x)) 382*4882a593Smuzhiyun #define IEP_REGB_DIL_EI_SEL(base, x) ConfRegBits32(base, RAW_rIEP_CONFIG0,rIEP_CONFIG0,IEP_REGB_DIL_EI_SEL_Y,IEP_REGB_DIL_EI_SEL_Z(x)) 383*4882a593Smuzhiyun #define IEP_REGB_DIL_EI_RADIUS(base, x) ConfRegBits32(base, RAW_rIEP_CONFIG0,rIEP_CONFIG0,IEP_REGB_DIL_EI_RADIUS_Y,IEP_REGB_DIL_EI_RADIUS_Z(x)) 384*4882a593Smuzhiyun #define IEP_REGB_CON_GAM_ORDER(base, x) ConfRegBits32(base, RAW_rIEP_CONFIG0,rIEP_CONFIG0,IEP_REGB_CON_GAM_ORDER_Y,IEP_REGB_CON_GAM_ORDER_Z(x)) 385*4882a593Smuzhiyun #define IEP_REGB_RGB_ENH_SEL(base, x) ConfRegBits32(base, RAW_rIEP_CONFIG0,rIEP_CONFIG0,IEP_REGB_RGB_ENH_SEL_Y,IEP_REGB_RGB_ENH_SEL_Z(x)) 386*4882a593Smuzhiyun #define IEP_REGB_RGB_CON_GAM_EN(base, x) ConfRegBits32(base, RAW_rIEP_CONFIG0,rIEP_CONFIG0,IEP_REGB_RGB_CON_GAM_EN_Y,IEP_REGB_RGB_CON_GAM_EN_Z(x)) 387*4882a593Smuzhiyun #define IEP_REGB_RGB_COLOR_ENH_EN(base, x) ConfRegBits32(base, RAW_rIEP_CONFIG0,rIEP_CONFIG0,IEP_REGB_RGB_COLOR_ENH_EN_Y,IEP_REGB_RGB_COLOR_ENH_EN_Z(x)) 388*4882a593Smuzhiyun #define IEP_REGB_DIL_EI_SMOOTH(base, x) ConfRegBits32(base, RAW_rIEP_CONFIG0,rIEP_CONFIG0,IEP_REGB_DIL_EI_SMOOTH_Y,IEP_REGB_DIL_EI_SMOOTH_Z(x)) 389*4882a593Smuzhiyun #define IEP_REGB_YUV_ENH_EN(base, x) ConfRegBits32(base, RAW_rIEP_CONFIG0,rIEP_CONFIG0,IEP_REGB_YUV_ENH_EN_Y,IEP_REGB_YUV_ENH_EN_Z(x)) 390*4882a593Smuzhiyun #define IEP_REGB_YUV_DNS_EN(base, x) ConfRegBits32(base, RAW_rIEP_CONFIG0,rIEP_CONFIG0,IEP_REGB_YUV_DNS_EN_Y,IEP_REGB_YUV_DNS_EN_Z(x)) 391*4882a593Smuzhiyun #define IEP_REGB_DIL_EI_MODE(base, x) ConfRegBits32(base, RAW_rIEP_CONFIG0,rIEP_CONFIG0,IEP_REGB_DIL_EI_MODE_Y,IEP_REGB_DIL_EI_MODE_Z(x)) 392*4882a593Smuzhiyun #define IEP_REGB_DIL_HF_EN(base, x) ConfRegBits32(base, RAW_rIEP_CONFIG0,rIEP_CONFIG0,IEP_REGB_DIL_HF_EN_Y,IEP_REGB_DIL_HF_EN_Z(x)) 393*4882a593Smuzhiyun #define IEP_REGB_DIL_MODE(base, x) ConfRegBits32(base, RAW_rIEP_CONFIG0,rIEP_CONFIG0,IEP_REGB_DIL_MODE_Y,IEP_REGB_DIL_MODE_Z(x)) 394*4882a593Smuzhiyun #define IEP_REGB_DIL_HF_FCT(base, x) ConfRegBits32(base, RAW_rIEP_CONFIG0,rIEP_CONFIG0,IEP_REGB_DIL_HF_FCT_Y,IEP_REGB_DIL_HF_FCT_Z(x)) 395*4882a593Smuzhiyun #define IEP_REGB_LCDC_PATH_EN(base, x) ConfRegBits32(base, RAW_rIEP_CONFIG0,rIEP_CONFIG0,IEP_REGB_LCDC_PATH_EN_Y,IEP_REGB_LCDC_PATH_EN_Z(x)) 396*4882a593Smuzhiyun 397*4882a593Smuzhiyun /*iep_conig1*/ 398*4882a593Smuzhiyun #define IEP_REGB_GLB_ALPHA(base, x) ConfRegBits32(base, RAW_rIEP_CONFIG1,rIEP_CONFIG1,IEP_REGB_GLB_ALPHA_Y,IEP_REGB_GLB_ALPHA_Z(x)) 399*4882a593Smuzhiyun #define IEP_REGB_RGB2YUV_INPUT_CLIP(base, x) ConfRegBits32(base, RAW_rIEP_CONFIG1,rIEP_CONFIG1,IEP_REGB_RGB2YUV_INPUT_CLIP_Y,IEP_REGB_RGB2YUV_INPUT_CLIP_Z(x)) 400*4882a593Smuzhiyun #define IEP_REGB_YUV2RGB_INPUT_CLIP(base, x) ConfRegBits32(base, RAW_rIEP_CONFIG1,rIEP_CONFIG1,IEP_REGB_YUV2RGB_INPUT_CLIP_Y,IEP_REGB_YUV2RGB_INPUT_CLIP_Z(x)) 401*4882a593Smuzhiyun #define IEP_REGB_RGB_TO_YUV_EN(base, x) ConfRegBits32(base, RAW_rIEP_CONFIG1,rIEP_CONFIG1,IEP_REGB_RGB_TO_YUV_EN_Y,IEP_REGB_RGB_TO_YUV_EN_Z(x)) 402*4882a593Smuzhiyun #define IEP_REGB_YUV_TO_RGB_EN(base, x) ConfRegBits32(base, RAW_rIEP_CONFIG1,rIEP_CONFIG1,IEP_REGB_YUV_TO_RGB_EN_Y,IEP_REGB_YUV_TO_RGB_EN_Z(x)) 403*4882a593Smuzhiyun #define IEP_REGB_RGB2YUV_COE_SEL(base, x) ConfRegBits32(base, RAW_rIEP_CONFIG1,rIEP_CONFIG1,IEP_REGB_RGB2YUV_COE_SEL_Y,IEP_REGB_RGB2YUV_COE_SEL_Z(x)) 404*4882a593Smuzhiyun #define IEP_REGB_YUV2RGB_COE_SEL(base, x) ConfRegBits32(base, RAW_rIEP_CONFIG1,rIEP_CONFIG1,IEP_REGB_YUV2RGB_COE_SEL_Y,IEP_REGB_YUV2RGB_COE_SEL_Z(x)) 405*4882a593Smuzhiyun #define IEP_REGB_DITHER_DOWN_EN(base, x) ConfRegBits32(base, RAW_rIEP_CONFIG1,rIEP_CONFIG1,IEP_REGB_DITHER_DOWN_EN_Y,IEP_REGB_DITHER_DOWN_EN_Z(x)) 406*4882a593Smuzhiyun #define IEP_REGB_DITHER_UP_EN(base, x) ConfRegBits32(base, RAW_rIEP_CONFIG1,rIEP_CONFIG1,IEP_REGB_DITHER_UP_EN_Y,IEP_REGB_DITHER_UP_EN_Z(x)) 407*4882a593Smuzhiyun #define IEP_REGB_DST_YUV_SWAP(base, x) ConfRegBits32(base, RAW_rIEP_CONFIG1,rIEP_CONFIG1,IEP_REGB_DST_YUV_SWAP_Y,IEP_REGB_DST_YUV_SWAP_Z(x)) 408*4882a593Smuzhiyun #define IEP_REGB_DST_RGB_SWAP(base, x) ConfRegBits32(base, RAW_rIEP_CONFIG1,rIEP_CONFIG1,IEP_REGB_DST_RGB_SWAP_Y,IEP_REGB_DST_RGB_SWAP_Z(x)) 409*4882a593Smuzhiyun #define IEP_REGB_DST_FMT(base, x) ConfRegBits32(base, RAW_rIEP_CONFIG1,rIEP_CONFIG1,IEP_REGB_DST_FMT_Y,IEP_REGB_DST_FMT_Z(x)) 410*4882a593Smuzhiyun #define IEP_REGB_SRC_YUV_SWAP(base, x) ConfRegBits32(base, RAW_rIEP_CONFIG1,rIEP_CONFIG1,IEP_REGB_SRC_YUV_SWAP_Y,IEP_REGB_SRC_YUV_SWAP_Z(x)) 411*4882a593Smuzhiyun #define IEP_REGB_SRC_RGB_SWAP(base, x) ConfRegBits32(base, RAW_rIEP_CONFIG1,rIEP_CONFIG1,IEP_REGB_SRC_RGB_SWAP_Y,IEP_REGB_SRC_RGB_SWAP_Z(x)) 412*4882a593Smuzhiyun #define IEP_REGB_SRC_FMT(base, x) ConfRegBits32(base, RAW_rIEP_CONFIG1,rIEP_CONFIG1,IEP_REGB_SRC_FMT_Y,IEP_REGB_SRC_FMT_Z(x)) 413*4882a593Smuzhiyun 414*4882a593Smuzhiyun /*iep_int*/ 415*4882a593Smuzhiyun #define IEP_REGB_FRAME_END_INT_CLR(base, x) MaskRegBits32(base, rIEP_INT,IEP_REGB_FRAME_END_INT_CLR_Y,IEP_REGB_FRAME_END_INT_CLR_Z(x)) 416*4882a593Smuzhiyun #define IEP_REGB_FRAME_END_INT_EN(base, x) MaskRegBits32(base, rIEP_INT,IEP_REGB_FRAME_END_INT_EN_Y,IEP_REGB_FRAME_END_INT_EN_Z(x)) 417*4882a593Smuzhiyun 418*4882a593Smuzhiyun /*frm_start*/ 419*4882a593Smuzhiyun #define IEP_REGB_FRM_START(base, x) WriteReg32(base, rIEP_FRM_START,x) 420*4882a593Smuzhiyun 421*4882a593Smuzhiyun /*soft_rst*/ 422*4882a593Smuzhiyun #define IEP_REGB_SOFT_RST(base, x) WriteReg32(base, rIEP_SOFT_RST,x) 423*4882a593Smuzhiyun 424*4882a593Smuzhiyun /*iep_vir_img_width*/ 425*4882a593Smuzhiyun #define IEP_REGB_DST_VIR_LINE_WIDTH(base, x) ConfRegBits32(base, RAW_rIEP_VIR_IMG_WIDTH,rIEP_VIR_IMG_WIDTH,IEP_REGB_DST_VIR_LINE_WIDTH_Y,IEP_REGB_DST_VIR_LINE_WIDTH_Z(x)) 426*4882a593Smuzhiyun #define IEP_REGB_SRC_VIR_LINE_WIDTH(base, x) ConfRegBits32(base, RAW_rIEP_VIR_IMG_WIDTH,rIEP_VIR_IMG_WIDTH,IEP_REGB_SRC_VIR_LINE_WIDTH_Y,IEP_REGB_SRC_VIR_LINE_WIDTH_Z(x)) 427*4882a593Smuzhiyun 428*4882a593Smuzhiyun /*iep_img_scl_fct*/ 429*4882a593Smuzhiyun #define IEP_REGB_SCL_VRT_FCT(base, x) ConfRegBits32(base, RAW_rIEP_IMG_SCL_FCT,rIEP_IMG_SCL_FCT,IEP_REGB_SCL_VRT_FCT_Y,IEP_REGB_SCL_VRT_FCT_Z(x)) 430*4882a593Smuzhiyun #define IEP_REGB_SCL_HRZ_FCT(base, x) ConfRegBits32(base, RAW_rIEP_IMG_SCL_FCT,rIEP_IMG_SCL_FCT,IEP_REGB_SCL_HRZ_FCT_Y,IEP_REGB_SCL_HRZ_FCT_Z(x)) 431*4882a593Smuzhiyun 432*4882a593Smuzhiyun /*iep_src_img_size*/ 433*4882a593Smuzhiyun #define IEP_REGB_SRC_IMG_HEIGHT(base, x) ConfRegBits32(base, RAW_rIEP_SRC_IMG_SIZE,rIEP_SRC_IMG_SIZE,IEP_REGB_SRC_IMG_HEIGHT_Y,IEP_REGB_SRC_IMG_HEIGHT_Z(x)) 434*4882a593Smuzhiyun #define IEP_REGB_SRC_IMG_WIDTH(base, x) ConfRegBits32(base, RAW_rIEP_SRC_IMG_SIZE,rIEP_SRC_IMG_SIZE,IEP_REGB_SRC_IMG_WIDTH_Y,IEP_REGB_SRC_IMG_WIDTH_Z(x)) 435*4882a593Smuzhiyun //iep_dst_img_size 436*4882a593Smuzhiyun #define IEP_REGB_DST_IMG_HEIGHT(base, x) ConfRegBits32(base, RAW_rIEP_DST_IMG_SIZE,rIEP_DST_IMG_SIZE,IEP_REGB_DST_IMG_HEIGHT_Y,IEP_REGB_DST_IMG_HEIGHT_Z(x)) 437*4882a593Smuzhiyun #define IEP_REGB_DST_IMG_WIDTH(base, x) ConfRegBits32(base, RAW_rIEP_DST_IMG_SIZE,rIEP_DST_IMG_SIZE,IEP_REGB_DST_IMG_WIDTH_Y,IEP_REGB_DST_IMG_WIDTH_Z(x)) 438*4882a593Smuzhiyun 439*4882a593Smuzhiyun /*dst_img_width_tile0/1/2/3*/ 440*4882a593Smuzhiyun #define IEP_REGB_DST_IMG_WIDTH_TILE0(base, x) WriteReg32(base, rIEP_DST_IMG_WIDTH_TILE0,x) 441*4882a593Smuzhiyun #define IEP_REGB_DST_IMG_WIDTH_TILE1(base, x) WriteReg32(base, rIEP_DST_IMG_WIDTH_TILE1,x) 442*4882a593Smuzhiyun #define IEP_REGB_DST_IMG_WIDTH_TILE2(base, x) WriteReg32(base, rIEP_DST_IMG_WIDTH_TILE2,x) 443*4882a593Smuzhiyun #define IEP_REGB_DST_IMG_WIDTH_TILE3(base, x) WriteReg32(base, rIEP_DST_IMG_WIDTH_TILE3,x) 444*4882a593Smuzhiyun 445*4882a593Smuzhiyun /*iep_enh_yuv_cnfg0*/ 446*4882a593Smuzhiyun #define IEP_REGB_SAT_CON(base, x) ConfRegBits32(base, RAW_rIEP_ENH_YUV_CNFG_0,rIEP_ENH_YUV_CNFG_0,IEP_REGB_SAT_CON_Y,IEP_REGB_SAT_CON_Z(x)) 447*4882a593Smuzhiyun #define IEP_REGB_CONTRAST(base, x) ConfRegBits32(base, RAW_rIEP_ENH_YUV_CNFG_0,rIEP_ENH_YUV_CNFG_0,IEP_REGB_CONTRAST_Y,IEP_REGB_CONTRAST_Z(x)) 448*4882a593Smuzhiyun #define IEP_REGB_BRIGHTNESS(base, x) ConfRegBits32(base, RAW_rIEP_ENH_YUV_CNFG_0,rIEP_ENH_YUV_CNFG_0,IEP_REGB_BRIGHTNESS_Y,IEP_REGB_BRIGHTNESS_Z(x)) 449*4882a593Smuzhiyun /*iep_enh_yuv_cnfg1*/ 450*4882a593Smuzhiyun #define IEP_REGB_COS_HUE(base, x) ConfRegBits32(base, RAW_rIEP_ENH_YUV_CNFG_1,rIEP_ENH_YUV_CNFG_1,IEP_REGB_COS_HUE_Y,IEP_REGB_COS_HUE_Z(x)) 451*4882a593Smuzhiyun #define IEP_REGB_SIN_HUE(base, x) ConfRegBits32(base, RAW_rIEP_ENH_YUV_CNFG_1,rIEP_ENH_YUV_CNFG_1,IEP_REGB_SIN_HUE_Y,IEP_REGB_SIN_HUE_Z(x)) 452*4882a593Smuzhiyun /*iep_enh_yuv_cnfg2*/ 453*4882a593Smuzhiyun #define IEP_REGB_VIDEO_MODE(base, x) ConfRegBits32(base, RAW_rIEP_ENH_YUV_CNFG_2,rIEP_ENH_YUV_CNFG_2,IEP_REGB_VIDEO_MODE_Y,IEP_REGB_VIDEO_MODE_Z(x)) 454*4882a593Smuzhiyun #define IEP_REGB_COLOR_BAR_V(base, x) ConfRegBits32(base, RAW_rIEP_ENH_YUV_CNFG_2,rIEP_ENH_YUV_CNFG_2,IEP_REGB_COLOR_BAR_V_Y,IEP_REGB_COLOR_BAR_V_Z(x)) 455*4882a593Smuzhiyun #define IEP_REGB_COLOR_BAR_U(base, x) ConfRegBits32(base, RAW_rIEP_ENH_YUV_CNFG_2,rIEP_ENH_YUV_CNFG_2,IEP_REGB_COLOR_BAR_U_Y,IEP_REGB_COLOR_BAR_U_Z(x)) 456*4882a593Smuzhiyun #define IEP_REGB_COLOR_BAR_Y(base, x) ConfRegBits32(base, RAW_rIEP_ENH_YUV_CNFG_2,rIEP_ENH_YUV_CNFG_2,IEP_REGB_COLOR_BAR_Y_Y,IEP_REGB_COLOR_BAR_Y_Z(x)) 457*4882a593Smuzhiyun /*iep_enh_rgb_cnfg*/ 458*4882a593Smuzhiyun #define IEP_REGB_YUV_DNS_LUMA_SPAT_SEL(base, x) ConfRegBits32(base, RAW_rIEP_ENH_RGB_CNFG,rIEP_ENH_RGB_CNFG,IEP_REGB_YUV_DNS_LUMA_SPAT_SEL_Y,IEP_REGB_YUV_DNS_LUMA_SPAT_SEL_Z(x)) 459*4882a593Smuzhiyun #define IEP_REGB_YUV_DNS_LUMA_TEMP_SEL(base, x) ConfRegBits32(base, RAW_rIEP_ENH_RGB_CNFG,rIEP_ENH_RGB_CNFG,IEP_REGB_YUV_DNS_LUMA_TEMP_SEL_Y,IEP_REGB_YUV_DNS_LUMA_TEMP_SEL_Z(x)) 460*4882a593Smuzhiyun #define IEP_REGB_YUV_DNS_CHROMA_SPAT_SEL(base, x) ConfRegBits32(base, RAW_rIEP_ENH_RGB_CNFG,rIEP_ENH_RGB_CNFG,IEP_REGB_YUV_DNS_CHROMA_SPAT_SEL_Y,IEP_REGB_YUV_DNS_CHROMA_SPAT_SEL_Z(x)) 461*4882a593Smuzhiyun #define IEP_REGB_YUV_DNS_CHROMA_TEMP_SEL(base, x) ConfRegBits32(base, RAW_rIEP_ENH_RGB_CNFG,rIEP_ENH_RGB_CNFG,IEP_REGB_YUV_DNS_CHROMA_TEMP_SEL_Y,IEP_REGB_YUV_DNS_CHROMA_TEMP_SEL_Z(x)) 462*4882a593Smuzhiyun #define IEP_REGB_ENH_THRESHOLD(base, x) ConfRegBits32(base, RAW_rIEP_ENH_RGB_CNFG,rIEP_ENH_RGB_CNFG,IEP_REGB_ENH_THRESHOLD_Y,IEP_REGB_ENH_THRESHOLD_Z(x)) 463*4882a593Smuzhiyun #define IEP_REGB_ENH_ALPHA(base, x) ConfRegBits32(base, RAW_rIEP_ENH_RGB_CNFG,rIEP_ENH_RGB_CNFG,IEP_REGB_ENH_ALPHA_Y,IEP_REGB_ENH_ALPHA_Z(x)) 464*4882a593Smuzhiyun #define IEP_REGB_ENH_RADIUS(base, x) ConfRegBits32(base, RAW_rIEP_ENH_RGB_CNFG,rIEP_ENH_RGB_CNFG,IEP_REGB_ENH_RADIUS_Y,IEP_REGB_ENH_RADIUS_Z(x)) 465*4882a593Smuzhiyun /*iep_enh_c_coe*/ 466*4882a593Smuzhiyun #define IEP_REGB_ENH_C_COE(base, x) WriteReg32(base, rIEP_ENH_C_COE,x) 467*4882a593Smuzhiyun /*src_addr*/ 468*4882a593Smuzhiyun #define IEP_REGB_SRC_ADDR_YRGB(base, x) WriteReg32(base, rIEP_SRC_ADDR_YRGB, x) 469*4882a593Smuzhiyun #define IEP_REGB_SRC_ADDR_CBCR(base, x) WriteReg32(base, rIEP_SRC_ADDR_CBCR, x) 470*4882a593Smuzhiyun #define IEP_REGB_SRC_ADDR_CR(base, x) WriteReg32(base, rIEP_SRC_ADDR_CR, x) 471*4882a593Smuzhiyun #define IEP_REGB_SRC_ADDR_Y1(base, x) WriteReg32(base, rIEP_SRC_ADDR_Y1, x) 472*4882a593Smuzhiyun #define IEP_REGB_SRC_ADDR_CBCR1(base, x) WriteReg32(base, rIEP_SRC_ADDR_CBCR1, x) 473*4882a593Smuzhiyun #define IEP_REGB_SRC_ADDR_CR1(base, x) WriteReg32(base, rIEP_SRC_ADDR_CR1, x) 474*4882a593Smuzhiyun #define IEP_REGB_SRC_ADDR_Y_ITEMP(base, x) WriteReg32(base, rIEP_SRC_ADDR_Y_ITEMP, x) 475*4882a593Smuzhiyun #define IEP_REGB_SRC_ADDR_CBCR_ITEMP(base, x) WriteReg32(base, rIEP_SRC_ADDR_CBCR_ITEMP, x) 476*4882a593Smuzhiyun #define IEP_REGB_SRC_ADDR_CR_ITEMP(base, x) WriteReg32(base, rIEP_SRC_ADDR_CR_ITEMP, x) 477*4882a593Smuzhiyun #define IEP_REGB_SRC_ADDR_Y_FTEMP(base, x) WriteReg32(base, rIEP_SRC_ADDR_Y_FTEMP, x) 478*4882a593Smuzhiyun #define IEP_REGB_SRC_ADDR_CBCR_FTEMP(base, x) WriteReg32(base, rIEP_SRC_ADDR_CBCR_FTEMP, x) 479*4882a593Smuzhiyun #define IEP_REGB_SRC_ADDR_CR_FTEMP(base, x) WriteReg32(base, rIEP_SRC_ADDR_CR_FTEMP, x) 480*4882a593Smuzhiyun /*dst_addr*/ 481*4882a593Smuzhiyun #define IEP_REGB_DST_ADDR_YRGB(base, x) WriteReg32(base, rIEP_DST_ADDR_YRGB,x) 482*4882a593Smuzhiyun #define IEP_REGB_DST_ADDR_CBCR(base, x) WriteReg32(base, rIEP_DST_ADDR_CBCR, x) 483*4882a593Smuzhiyun #define IEP_REGB_DST_ADDR_CR(base, x) WriteReg32(base, rIEP_DST_ADDR_CR, x) 484*4882a593Smuzhiyun #define IEP_REGB_DST_ADDR_Y1(base, x) WriteReg32(base, rIEP_DST_ADDR_Y1, x) 485*4882a593Smuzhiyun #define IEP_REGB_DST_ADDR_CBCR1(base, x) WriteReg32(base, rIEP_DST_ADDR_CBCR1, x) 486*4882a593Smuzhiyun #define IEP_REGB_DST_ADDR_CR1(base, x) WriteReg32(base, rIEP_DST_ADDR_CR1, x) 487*4882a593Smuzhiyun #define IEP_REGB_DST_ADDR_Y_ITEMP(base, x) WriteReg32(base, rIEP_DST_ADDR_Y_ITEMP, x) 488*4882a593Smuzhiyun #define IEP_REGB_DST_ADDR_CBCR_ITEMP(base, x) WriteReg32(base, rIEP_DST_ADDR_CBCR_ITEMP, x) 489*4882a593Smuzhiyun #define IEP_REGB_DST_ADDR_CR_ITEMP(base, x) WriteReg32(base, rIEP_DST_ADDR_CR_ITEMP, x) 490*4882a593Smuzhiyun #define IEP_REGB_DST_ADDR_Y_FTEMP(base, x) WriteReg32(base, rIEP_DST_ADDR_Y_FTEMP, x) 491*4882a593Smuzhiyun #define IEP_REGB_DST_ADDR_CBCR_FTEMP(base, x) WriteReg32(base, rIEP_DST_ADDR_CBCR_FTEMP, x) 492*4882a593Smuzhiyun #define IEP_REGB_DST_ADDR_CR_FTEMP(base, x) WriteReg32(base, rIEP_DST_ADDR_CR_FTEMP, x) 493*4882a593Smuzhiyun 494*4882a593Smuzhiyun /*dil_mtn_tab*/ 495*4882a593Smuzhiyun #define IEP_REGB_DIL_MTN_TAB0(base, x) WriteReg32(base, rIEP_DIL_MTN_TAB0,x) 496*4882a593Smuzhiyun #define IEP_REGB_DIL_MTN_TAB1(base, x) WriteReg32(base, rIEP_DIL_MTN_TAB1,x) 497*4882a593Smuzhiyun #define IEP_REGB_DIL_MTN_TAB2(base, x) WriteReg32(base, rIEP_DIL_MTN_TAB2,x) 498*4882a593Smuzhiyun #define IEP_REGB_DIL_MTN_TAB3(base, x) WriteReg32(base, rIEP_DIL_MTN_TAB3,x) 499*4882a593Smuzhiyun #define IEP_REGB_DIL_MTN_TAB4(base, x) WriteReg32(base, rIEP_DIL_MTN_TAB4,x) 500*4882a593Smuzhiyun #define IEP_REGB_DIL_MTN_TAB5(base, x) WriteReg32(base, rIEP_DIL_MTN_TAB5,x) 501*4882a593Smuzhiyun #define IEP_REGB_DIL_MTN_TAB6(base, x) WriteReg32(base, rIEP_DIL_MTN_TAB6,x) 502*4882a593Smuzhiyun #define IEP_REGB_DIL_MTN_TAB7(base, x) WriteReg32(base, rIEP_DIL_MTN_TAB7,x) 503*4882a593Smuzhiyun 504*4882a593Smuzhiyun #define IEP_REGB_STATUS(base) ReadReg32(base, rIEP_STATUS) 505*4882a593Smuzhiyun 506*4882a593Smuzhiyun void iep_config_lcdc_path(struct IEP_MSG *iep_msg); 507*4882a593Smuzhiyun 508*4882a593Smuzhiyun /* system control, directly operating the device registers.*/ 509*4882a593Smuzhiyun /* parameter @base need to be set to device base address. */ 510*4882a593Smuzhiyun void iep_soft_rst(void *base); 511*4882a593Smuzhiyun void iep_config_done(void *base); 512*4882a593Smuzhiyun void iep_config_frm_start(void *base); 513*4882a593Smuzhiyun int iep_probe_int(void *base); 514*4882a593Smuzhiyun void iep_config_frame_end_int_clr(void *base); 515*4882a593Smuzhiyun void iep_config_frame_end_int_en(void *base); 516*4882a593Smuzhiyun struct iep_status iep_get_status(void *base); 517*4882a593Smuzhiyun int iep_get_deinterlace_mode(void *base); 518*4882a593Smuzhiyun void iep_set_deinterlace_mode(int mode, void *base); 519*4882a593Smuzhiyun void iep_switch_input_address(void *base); 520*4882a593Smuzhiyun 521*4882a593Smuzhiyun /* generating a series of iep registers copy to the session private buffer */ 522*4882a593Smuzhiyun void iep_config(iep_session *session, struct IEP_MSG *iep_msg); 523*4882a593Smuzhiyun 524*4882a593Smuzhiyun /*#define IEP_PRINT_INFO*/ 525*4882a593Smuzhiyun #endif 526