⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 isp_if.h

📁 最新MTK手机软件源码
💻 H
📖 第 1 页 / 共 5 页
字号:
#define REG_SPACE_CVT_YUV_U_GAIN_MASK			0x0000FF00
#define REG_SPACE_CVT_YUV_V_GAIN_MASK			0x000000FF
#define REG_SPACE_CVT_YUV_Y_OFFSET_MASK		0x00FF0000
#define REG_SPACE_CVT_YUV_U_OFFSET_MASK		0x0000FF00
#define REG_SPACE_CVT_YUV_V_OFFSET_MASK		0x000000FF

/* bit mapping of Gamma operation register 1~3 */
#define REG_GAMMA_OPERATION_GAMMA_B1_MASK		0xFF000000
#define REG_GAMMA_OPERATION_GAMMA_B2_MASK		0x00FF0000
#define REG_GAMMA_OPERATION_GAMMA_B3_MASK		0x0000FF00
#define REG_GAMMA_OPERATION_GAMMA_B4_MASK		0x000000FF
#define REG_GAMMA_OPERATION_GAMMA_B5_MASK		0xFF000000
#define REG_GAMMA_OPERATION_GAMMA_B6_MASK		0x00FF0000
#define REG_GAMMA_OPERATION_GAMMA_B7_MASK		0x0000FF00
#define REG_GAMMA_OPERATION_GAMMA_B8_MASK		0x000000FF
#define REG_GAMMA_OPERATION_GAMMA_B9_MASK		0xFF000000
#define REG_GAMMA_OPERATION_GAMMA_B10_MASK	0x00FF0000
#define REG_GAMMA_OPERATION_GAMMA_B11_MASK	0x0000FF00

/* bit mapping of 1024 Gamma table */
#define REG_GAMMA_OPERATION_1024_ENABLE_BIT	0x00000001
#define INTMEM_GAMMA_1024_BYTE1_MASK			0xFF000000
#define INTMEM_GAMMA_1024_BYTE2_MASK			0x00FF0000
#define INTMEM_GAMMA_1024_BYTE3_MASK			0x0000FF00
#define INTMEM_GAMMA_1024_BYTE4_MASK			0x000000FF

#if (defined(MT6226)||defined(MT6226M)||defined(MT6227)||defined(MT6228)||defined(MT6229)||defined(MT6230))
/* bit mapping of Sensor Gamma R register 1~3 */
#define REG_SENSOR_GAMMA_ENABLE_MASK	0x10000000
#define REG_SENSOR_GAMMA_IVT_MASK		0x01000000
#define REG_SENSOR_GAMMA_R_B1_MASK		0x00FF0000
#define REG_SENSOR_GAMMA_R_B2_MASK		0x0000FF00
#define REG_SENSOR_GAMMA_R_B3_MASK		0x000000FF
#define REG_SENSOR_GAMMA_R_B4_MASK		0xFF000000
#define REG_SENSOR_GAMMA_R_B5_MASK		0x00FF0000
#define REG_SENSOR_GAMMA_R_B6_MASK		0x0000FF00
#define REG_SENSOR_GAMMA_R_B7_MASK		0x000000FF
#define REG_SENSOR_GAMMA_R_B8_MASK		0xFF000000
#define REG_SENSOR_GAMMA_R_B9_MASK		0x00FF0000
#define REG_SENSOR_GAMMA_R_B10_MASK		0x0000FF00
#define REG_SENSOR_GAMMA_R_B11_MASK		0x000000FF
#if(!(defined(MT6227)||defined(MT6229)||defined(MT6230)))                                       
/* bit mapping of Sensor Gamma G register 1~3 */
#define REG_SENSOR_GAMMA_G_B1_MASK		0xFF000000
#define REG_SENSOR_GAMMA_G_B2_MASK		0x00FF0000
#define REG_SENSOR_GAMMA_G_B3_MASK		0x0000FF00
#define REG_SENSOR_GAMMA_G_B4_MASK		0x000000FF
#define REG_SENSOR_GAMMA_G_B5_MASK		0xFF000000
#define REG_SENSOR_GAMMA_G_B6_MASK		0x00FF0000
#define REG_SENSOR_GAMMA_G_B7_MASK		0x0000FF00
#define REG_SENSOR_GAMMA_G_B8_MASK		0x000000FF
#define REG_SENSOR_GAMMA_G_B9_MASK		0xFF000000
#define REG_SENSOR_GAMMA_G_B10_MASK		0x00FF0000
#define REG_SENSOR_GAMMA_G_B11_MASK		0x0000FF00
#endif

#if(defined(MT6227)||defined(MT6229)||defined(MT6230))
/* bit mapping of Sensor Gamma G register 1~3 */
#define REG_SENSOR_GAMMA_GR_B1_MASK		0xFF000000
#define REG_SENSOR_GAMMA_GR_B2_MASK		0x00FF0000
#define REG_SENSOR_GAMMA_GR_B3_MASK		0x0000FF00
#define REG_SENSOR_GAMMA_GR_B4_MASK		0x000000FF
#define REG_SENSOR_GAMMA_GR_B5_MASK		0xFF000000
#define REG_SENSOR_GAMMA_GR_B6_MASK		0x00FF0000
#define REG_SENSOR_GAMMA_GR_B7_MASK		0x0000FF00
#define REG_SENSOR_GAMMA_GR_B8_MASK		0x000000FF
#define REG_SENSOR_GAMMA_GR_B9_MASK		0xFF000000
#define REG_SENSOR_GAMMA_GR_B10_MASK	0x00FF0000
#define REG_SENSOR_GAMMA_GR_B11_MASK	0x0000FF00

#define REG_SENSOR_GAMMA_GB_B1_MASK		0xFF000000
#define REG_SENSOR_GAMMA_GB_B2_MASK		0x00FF0000
#define REG_SENSOR_GAMMA_GB_B3_MASK		0x0000FF00
#define REG_SENSOR_GAMMA_GB_B4_MASK		0x000000FF
#define REG_SENSOR_GAMMA_GB_B5_MASK		0xFF000000
#define REG_SENSOR_GAMMA_GB_B6_MASK		0x00FF0000
#define REG_SENSOR_GAMMA_GB_B7_MASK		0x0000FF00
#define REG_SENSOR_GAMMA_GB_B8_MASK		0x000000FF
#define REG_SENSOR_GAMMA_GB_B9_MASK		0xFF000000
#define REG_SENSOR_GAMMA_GB_B10_MASK	0x00FF0000
#define REG_SENSOR_GAMMA_GB_B11_MASK	0x0000FF00
#endif
                                               
/* bit mapping of Sensor Gamma B register 1~3 */
#define REG_SENSOR_GAMMA_B_B1_MASK		0xFF000000
#define REG_SENSOR_GAMMA_B_B2_MASK		0x00FF0000
#define REG_SENSOR_GAMMA_B_B3_MASK		0x0000FF00
#define REG_SENSOR_GAMMA_B_B4_MASK		0x000000FF
#define REG_SENSOR_GAMMA_B_B5_MASK		0xFF000000
#define REG_SENSOR_GAMMA_B_B6_MASK		0x00FF0000
#define REG_SENSOR_GAMMA_B_B7_MASK		0x0000FF00
#define REG_SENSOR_GAMMA_B_B8_MASK		0x000000FF
#define REG_SENSOR_GAMMA_B_B9_MASK		0xFF000000
#define REG_SENSOR_GAMMA_B_B10_MASK		0x00FF0000
#define REG_SENSOR_GAMMA_B_B11_MASK		0x0000FF00

/* bit mapping of defect pixel register */
#define REG_DEFECT_ENABLE_BIT					0x01000000

/* ae area register */
#define REG_AE_AREACNT_MASK					0x0000003F
#define REG_AE_FRAMECNT_MASK					0x0000FF00
#define REG_AE_HOFFSET_MASK					0x00FF0000
#define REG_AE_VOFFSET_MASK					0xFF000000
#endif

/* bit mapping of LPF control register */
#if (defined(MT6219))
#define REG_LPF_Y_LPF_ENABLE_BIT				0x00004000
#define REG_LPF_Y_LPF_TYPE_MASK				0x00003000
#define REG_LPF_C_LPF_ENABLE_BIT				0x00000800
#define REG_LPF_C_LPF_TYPE_MASK				0x00000600
#define REG_LPF_SUB_SAMPLE_MASK				0x00000007
#define REG_LPF_SUB_SAMPLE_1_8				0x00000004
#define REG_LPF_SUB_SAMPLE_1_4				0x00000002
#define REG_LPF_SUB_SAMPLE_1_2				0x00000001
#define REG_LPF_SUB_SAMPLE_1_1				0x00000000

#elif (defined(MT6226)||defined(MT6226M)||defined(MT6227)||defined(MT6228)||defined(MT6229)||defined(MT6230))
#define REG_LPF_V_LPF_ENABLE_BIT				0x00010000
#define REG_LPF_Y_LPF_ENABLE_BIT				0x00008000
#define REG_LPF_C_LPF_ENABLE_BIT				0x00001000
/* bit mapping of Y LPF control register */
#define REG_Y_LPF_WEIGHT0_MASK				0xFF000000
#define REG_Y_LPF_WEIGHT1_MASK				0x00FF0000
#define REG_Y_LPF_WEIGHT2_MASK				0x0000FF00
#define REG_Y_LPF_WEIGHT3_MASK				0x000000FF

/* bit mapping of CBCR LPF control register */
#define REG_C_LPF_WEIGHT0_MASK				0xFF000000
#define REG_C_LPF_WEIGHT1_MASK				0x00FF0000
#define REG_C_LPF_WEIGHT2_MASK				0x0000FF00
#define REG_C_LPF_WEIGHT3_MASK				0x000000FF

/* bit mapping of vertical sub-sample control register */
#define REG_VERTICAL_SUB_V_SUB_EN_BIT		0x10000000
#define REG_VERTICAL_SUB_V_SUB_IN_MASK		0x0FFF0000
#define REG_VERTICAL_SUB_V_SUB_OUT_MASK	0x00000FFF

/* bit mapping of horizontal sub-sample control register */
#define REG_HORIZONTAL_SUB_H_SUB_EN_BIT	0x10000000
#define REG_HORIZONTAL_SUB_H_SUB_IN_MASK	0x0FFF0000
#define REG_HORIZONTAL_SUB_H_SUB_OUT_MASK	0x00000FFF
#endif

#if (!(defined(MT6219)||defined(MT6228)))
/* bit mapping of result window register */
#define REG_RESULT_WINDOW_ENABLE_BIT		0x10000000
#define REG_RESULT_WINDOW_START_MASK		0x0FFF0000
#define REG_RESULT_WINDOW_END_MASK			0x00000FFF
#endif

/* bit mapping of Camera interface debug mode control register */
#define REG_DEBUG_GMC_ENABLE_BIT				0x00000080
#define REG_DEBUG_GMC_MODE_BIT				0x00000040
#define REG_DEBUG_DATA_COUNT_ENABLE_BIT	0x00000020
#define REG_DEBUG_DATA_COUNT_MODE_MASK		0x00000018

#define REG_DEBUG_RAW_RGB_OUTPUT_COUNT		0
#define REG_DEBUG_YCBCR_OUPUT_COUNT			1
#define REG_DEBUG_GMC_OUTPUT_COUNT			2
#define REG_DEBUG_RESIZER_ACK_COUNT			3

#if (defined(MT6226)||defined(MT6226M)||defined(MT6227)||defined(MT6228)||defined(MT6229)||defined(MT6230))
/* bit mapping of shading control register */
#define REG_SHADING_RANGE_ENABLE_BIT		0x20000000
#define REG_SHADING_ENABLE_BIT				0x10000000
#define REG_SHADING_CENTERY_MASK				0x0FFF0000
#define REG_SHADING_K_FACTOR_MASK			0x0000C000
#define REG_SHADING_RADIUS_FACTOR_MASK		0x00003000
#define REG_SHADING_CENTERX_MASK				0x00000FFF

#define REG_SHADING_KR_MASK					0xFF000000
#define REG_SHADING_KG_MASK					0x00FF0000
#define REG_SHADING_KB_MASK					0x0000FF00
#define REG_SHADING_RANGE_MASK				0x000000FF

#define REG_SHADING_CURVE_ENABLE_BIT		0x10000000
#define REG_SHADING_CURVE_IVT_MASK			0x04000000
#define REG_SHADING_CURVE_SEL_MASK			0x03000000
#define REG_SHADING_CURVE_R_B1_MASK			0x00FF0000
#define REG_SHADING_CURVE_R_B2_MASK			0x0000FF00
#define REG_SHADING_CURVE_R_B3_MASK			0x000000FF
#define REG_SHADING_CURVE_R_B4_MASK			0xFF000000
#define REG_SHADING_CURVE_R_B5_MASK			0x00FF0000
#define REG_SHADING_CURVE_R_B6_MASK			0x0000FF00
#define REG_SHADING_CURVE_R_B7_MASK			0x000000FF
#define REG_SHADING_CURVE_R_B8_MASK			0xFF000000
#define REG_SHADING_CURVE_R_B9_MASK			0x00FF0000
#define REG_SHADING_CURVE_R_B10_MASK		0x0000FF00
#define REG_SHADING_CURVE_R_B11_MASK		0x000000FF
#define REG_SHADING_CURVE_G_B1_MASK			0xFF000000
#define REG_SHADING_CURVE_G_B2_MASK			0x00FF0000
#define REG_SHADING_CURVE_G_B3_MASK			0x0000FF00
#define REG_SHADING_CURVE_G_B4_MASK			0x000000FF
#define REG_SHADING_CURVE_G_B5_MASK			0xFF000000
#define REG_SHADING_CURVE_G_B6_MASK			0x00FF0000
#define REG_SHADING_CURVE_G_B7_MASK			0x0000FF00
#define REG_SHADING_CURVE_G_B8_MASK			0x000000FF
#define REG_SHADING_CURVE_G_B9_MASK			0xFF000000
#define REG_SHADING_CURVE_G_B10_MASK		0x00FF0000
#define REG_SHADING_CURVE_G_B11_MASK		0x0000FF00
#define REG_SHADING_CURVE_B_B1_MASK			0xFF000000
#define REG_SHADING_CURVE_B_B2_MASK			0x00FF0000
#define REG_SHADING_CURVE_B_B3_MASK			0x0000FF00
#define REG_SHADING_CURVE_B_B4_MASK			0x000000FF
#define REG_SHADING_CURVE_B_B5_MASK			0xFF000000
#define REG_SHADING_CURVE_B_B6_MASK			0x00FF0000
#define REG_SHADING_CURVE_B_B7_MASK			0x0000FF00
#define REG_SHADING_CURVE_B_B8_MASK			0x000000FF
#define REG_SHADING_CURVE_B_B9_MASK			0xFF000000
#define REG_SHADING_CURVE_B_B10_MASK		0x00FF0000
#define REG_SHADING_CURVE_B_B11_MASK		0x0000FF00
#endif
#if (defined(MT6228)||defined(MT6229)||defined(MT6230))
/* bit mapping of AE window size register */
#define REG_AE_VSIZE_MASK						0xFFFF0000
#define REG_AE_HSIZE_MASK						0x0000FFFF

/* bit mapping of AE weight register */
#define REG_AE_WEIGHT00_MASK					0xF0000000
#define REG_AE_WEIGHT01_MASK					0x0F000000
#define REG_AE_WEIGHT02_MASK					0x00F00000
#define REG_AE_WEIGHT03_MASK					0x000F0000
#define REG_AE_WEIGHT04_MASK					0x0000F000
#define REG_AE_WEIGHT05_MASK					0x00000F00
#define REG_AE_WEIGHT06_MASK					0x000000F0
#define REG_AE_WEIGHT07_MASK					0x0000000F
#endif
#if (defined(MT6226)||defined(MT6226M)||defined(MT6227)||defined(MT6228)||defined(MT6229)||defined(MT6230))
/* bit mapping of auto defect control register */
#define REG_AUTO_DEFECT_CTRL1_BIT31_16_MASK	0xFFFF0000
#define REG_AUTO_DEFECT_ADC_EN_BIT			0x80000000
#define REG_AUTO_DEFECT_ADL_EN_BIT			0x40000000
#define REG_AUTO_DEFECT_ADR_EN_BIT			0x20000000
#define REG_AUTO_DEFECT_ADU_EN_BIT			0x10000000
#define REG_AUTO_DEFECT_ADD_EN_BIT			0x08000000
#define REG_AUTO_DEFECT_DEADCHECK_BIT		0x04000000
#define REG_AUTO_DEFECT_GCHECK_SEL_MASK	0x03000000
#define REG_AUTO_DEFECT_RBCHECK_SEL_MASK	0x00C00000
#define REG_AUTO_DEFECT_BRIGHTTHD_MASK		0x00380000
#define REG_AUTO_DEFECT_BLACKTHD_MASK		0x00070000
#define REG_AUTO_DEFECT_AE_INTERVAL_MASK	0x0000FF00

#define REG_AUTO_DEFECT_GCHECKTHD_MASK		0xFF000000
#define REG_AUTO_DEFECT_RBCHECKTHD_MASK	0x00FF0000
#define REG_AUTO_DEFECT_GCORRECTTHD_MASK	0x0000FF00
#define REG_AUTO_DEFECT_RBCORRECTTHD_MASK	0x000000FF

/* bit mapping of flash control register */
#define REG_FLASH_OUT_BIT						0x80000000
#define REG_FLASH_EN_BIT						0x10000000
#define REG_FLASH_STARTPNT_BIT				0x01000000
#define REG_FLASH_POL_BIT						0x00100000
#define REG_FLASH_LNUNIT_MASK					0x000F0000
#define REG_FLASH_LNUNIT_NO_MASK				0x0000FF00
#define REG_FLASH_FRAME_DELAY_MASK			0x00000003

/* bit mapping of CAM reset register */
#define REG_CAM_RESET_ISP_FRAME_COUNT_MASK		0x0000FF00
#define REG_CAM_RESET_ISP_RESET_BIT					0x00000001

/* bit mapping of TG status register */
#define REG_TG_STATUS_MASK								0x0000003F
#endif
#if (defined(MT6228)||defined(MT6229)||defined(MT6230))
/* bit mapping of imageproc hue register */
#define REG_IMGPROC_HUE_ENABLE_BIT					0x00010000
#define REG_IMGPROC_HUE_HUE11_MASK					0x0000FF00
#define REG_IMGPROC_HUE_HUE12_MASK					0x000000FF
#define REG_IMGPROC_HUE_HUE21_MASK					0xFF000000
#define REG_IMGPROC_HUE_HUE22_MASK					0x00FF0000
#endif

/* macros of TG phase counter register */
#define ENABLE_CAMERA_TG_PHASE_COUNTER			REG_ISP_TG_PHASE_COUNTER |= REG_TGPC_PHASE_COUNTER_ENABLE_BIT;
#define DISABLE_CAMERA_TG_PHASE_COUNTER		REG_ISP_TG_PHASE_COUNTER &= ~REG_TGPC_PHASE_COUNTER_ENABLE_BIT;
#define ENABLE_CAMERA_CLOCK_OUTPUT_TO_CMOS	REG_ISP_TG_PHASE_COUNTER |= REG_TGPC_CLK_OUTPUT_ENABLE_BIT;
#define DISABLE_CAMERA_CLOCK_OUTPUT_TO_CMOS	REG_ISP_TG_PHASE_COUNTER &= ~REG_TGPC_CLK_OUTPUT_ENABLE_BIT;
#define SET_CMOS_CLOCK_POLARITY_HIGH			REG_ISP_TG_PHASE_COUNTER |= REG_TGPC_CLK_POLARITY_CTRL_BIT;
#define SET_CMOS_CLOCK_POLARITY_LOW				REG_ISP_TG_PHASE_COUNTER &= ~REG_TGPC_CLK_POLARITY_CTRL_BIT;
#define SET_TG_OUTPUT_CLK_DIVIDER(n)			REG_ISP_TG_PHASE_COUNTER &= ~REG_TGPC_CLK_OUTPUT_DIV_MASK; \
															REG_ISP_TG_PHASE_COUNTER |= (n<<24);
#define SET_CMOS_RISING_EDGE(n)	 				REG_ISP_TG_PHASE_COUNTER &= ~REG_TGPC_RISING_EDGE_CLK_CNT_MASK; \
															REG_ISP_TG_PHASE_COUNTER |= (n<<20);
#define SET_CMOS_FALLING_EDGE(n) 				REG_ISP_TG_PHASE_COUNTER &= ~REG_TGPC_FALLING_EDGE_CLK_CNT_MASK; \
															REG_ISP_TG_PHASE_COUNTER |= (n<<16);
#define SET_TG_PIXEL_CLK_DIVIDER(n)				REG_ISP_TG_PHASE_COUNTER &= ~REG_TGPC_PIXEL_CLK_DIV_MASK; \
															REG_ISP_TG_PHASE_COUNTER |= (n<<4);
#define SET_CMOS_DATA_LATCH(n)					REG_ISP_TG_PHASE_COUNTER &= ~REG_TGPC_DATA_LATCH_POSITION_MASK;\
															REG_ISP_TG_PHASE_COUNTER |= n;
#if (defined(MT6226)||defined(MT6226M)||defined(MT6227)||defined(MT6228)||defined(MT6229)||defined(MT6230))
#define ENABLE_CAMERA_SENSOR_HVALID_HREF		REG_ISP_TG_PHASE_COUNTER |= REG_TGPC_HVALID_ENABLE_BIT;
#define DISABLE_CAMERA_SENSOR_HVALID_HREF		REG_ISP_TG_PHASE_COUNTER &= ~REG_TGPC_HVALID_ENABLE_BIT;
#define ENABLE_CAMERA_SENSOR_CLKIN_MONITOR	REG_ISP_TG_PHASE_COUNTER |= REG_TGPC_SENSOR_CLKIN_MONITOR_BIT;
#define DISABLE_CAMERA_SENSOR_CLKIN_MONITOR	REG_ISP_TG_PHASE_COUNTER &= ~REG_TGPC_SENSOR_CLKIN_MONITOR_BIT;
#define ENABLE_CAMERA_PIXEL_CLK_INV				REG_ISP_TG_PHASE_COUNTER |= REG_TGPC_PIXEL_CLK_INV_BIT;
#define DISABLE_CAMERA_PIXEL_CLK_INV			REG_ISP_TG_PHASE_COUNTER &= ~REG_TGPC_PIXEL_CLK_INV_BIT;
#define ENABLE_CAMERA_PIXEL_CLKIN_ENABLE		REG_ISP_TG_PHASE_COUNTER |= REG_TGPC_PIXEL_CLKIN_ENABLE_BIT;
#define DISABLE_CAMERA_PIXEL_CLKIN_ENABLE		REG_ISP_TG_PHASE_COUNTER &= ~REG_TGPC_PIXEL_CLKIN_ENABLE_BIT;
#define ENABLE_CAMERA_TG_CLK_48M					REG_ISP_TG_PHASE_COUNTER |= REG_TGPC_PIXEL_CLK_SELECT_BIT;
#define DISABLE_CAMERA_TG_CLK_48M				REG_ISP_TG_PHASE_COUNTER &= ~REG_TGPC_PIXEL_CLK_SELECT_BIT;
#endif
/* m

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -