📄 fs453.h
字号:
//------------------------------------------------------------------------------
//
// Copyright (C) 2005-2006, Freescale Semiconductor, Inc. All Rights Reserved.
// THIS SOURCE CODE, AND ITS USE AND DISTRIBUTION, IS SUBJECT TO THE TERMS
// AND CONDITIONS OF THE APPLICABLE LICENSE AGREEMENT
//
//------------------------------------------------------------------------------
//
// Header: fs453.h
//
// Provides definitions for fs453 module on i.MX27 platform.
//
//------------------------------------------------------------------------------
#ifndef __DRIVERS_FS453_H__
#define __DRIVERS_FS453_H__
#ifndef __cplusplus
extern "C" {
#endif
//-----------------------------------------------------------------------------
// Defines
#define FS453_CTRL_IF L"I2C1:"
#define MX27_I2C_SLAVE_ADDR 0x20 // common
#define FS453_I2C_SCLK_FREQ 40000 // 40000 for fs453 // 81000 for CSI
#define FS453_I2C_SLAVE_ADDR 0x6A // 0xD4 for MX21 // 0x48 for CSI // 0x6A for fs453
static HANDLE m_hI2C = NULL; // Driver handle of I2C
//------------------------------------------------------------------------------
// REGISTER ADDR
//------------------------------------------------------------------------------
#define FS453_IHO_ADDR 0x00
#define FS453_IVO_ADDR 0x02
#define FS453_IHW_ADDR 0x04
#define FS453_VSC_ADDR 0x06
#define FS453_HSC_ADDR 0x08
#define FS453_BYPASS_ADDR 0x0A
#define FS453_CR_ADDR 0x0C
#define FS453_MISC_ADDR 0x0E
#define FS453_NCON_ADDR 0x10
#define FS453_NCONL_ADDR 0x10
#define FS453_NCONH_ADDR 0x12
#define FS453_NCOD_ADDR 0x14
#define FS453_NCODL_ADDR 0x14
#define FS453_NCODH_ADDR 0x16
#define FS453_PLLM_PUMPCNTL_ADDR 0x18
#define FS453_PLLN_ADDR 0x1A
#define FS453_PLL_POSTDIV_ADDR 0x1C
#define FS453_HSOUT_TOTAL_ADDR 0x1E
#define FS453_HSOUT_START_ADDR 0x20
#define FS453_HSOUT_END_ADDR 0x22
#define FS453_SHP_ADDR 0x24
#define FS453_FLK_ADDR 0x26
#define FS453_GPIO_ADDR 0x28
#define FS453_ID_ADDR 0x32
#define FS453_STATUS_PORT_ADDR 0x34
#define FS453_FIFO_SP_ADDR 0x36
#define FS453_FIFO_LAT_ADDR 0x38
#define FS453_VSOUT_TOTAL_ADDR 0x3A
#define FS453_VSOUT_START_ADDR 0x3C
#define FS453_VSOUT_END_ADDR 0x3E
#define FS453_CHR_FREQ_ADDR 0x40
#define FS453_CHR_PHASE_ADDR 0x44
#define FS453_MISC_45_ADDR 0x45
#define FS453_MISC_46_ADDR 0x46
#define FS453_MISC_47_ADDR 0x47
#define FS453_HSYNC_WID_ADDR 0x48
#define FS453_BURST_WID_ADDR 0x49
#define FS453_BPORCH_ADDR 0x4A
#define FS453_CB_BURST_ADDR 0x4B
#define FS453_CR_BURST_ADDR 0x4C
#define FS453_MISC_4D_ADDR 0x4D
#define FS453_BLACK_LVL_ADDR 0x4E
#define FS453_BLANK_LVL_ADDR 0x50
#define FS453_NUM_LINES_ADDR 0x57
#define FS453_WHITE_LVL_ADDR 0x5E
#define FS453_CB_GAIN_ADDR 0x60
#define FS453_CR_GAIN_ADDR 0x62
#define FS453_TINT_ADDR 0x65
#define FS453_BR_WAY_ADDR 0x69
#define FS453_FR_PORCH_ADDR 0x6C
#define FS453_NUM_PIXELS_ADDR 0x71
#define FS453_1ST_LINE_ADDR 0x73
#define FS453_MISC_74_ADDR 0x74
#define FS453_SYNC_LVL_ADDR 0x75
#define FS453_VBI_BL_LVL_ADDR 0x7C
#define FS453_SOFT_RST_ADDR 0x7E
#define FS453_ENC_VER_ADDR 0x7F
#define FS453_WSS_CONFIG_ADDR 0x80
#define FS453_WSS_CLK_ADDR 0x81
#define FS453_WSS_DATAF1_ADDR 0x83
#define FS453_WSS_DATAF0_ADDR 0x86
#define FS453_WSS_LNF1_ADDR 0x89
#define FS453_WSS_LNF0_ADDR 0x8A
#define FS453_WSS_LVL_ADDR 0x8B
#define FS453_MISC_8D_ADDR 0x8D
#define FS453_VID_CNTL0_ADDR 0x92
#define FS453_HD_FP_SYNC_ADDR 0x94
#define FS453_HD_YOFF_BP_ADDR 0x96
#define FS453_SYNC_DL_ADDR 0x98
#define FS453_FLD_DLY_ADDR 0x9A
#define FS453_LD_DET_ADDR 0x9C
#define FS453_DAC_CNTL_ADDR 0x9E
#define FS453_PWR_MGNT_ADDR 0xA0
#define FS453_RED_MTX_ADDR 0xA2
#define FS453_GRN_MTX_ADDR 0xA4
#define FS453_BLU_MTX_ADDR 0xA6
#define FS453_RED_SCL_ADDR 0xA8
#define FS453_GRN_SCL_ADDR 0xAA
#define FS453_BLU_SCL_ADDR 0xAC
#define FS453_CC_F1_ADDR 0xAE
#define FS453_CC_F2_ADDR 0xB0
#define FS453_CC_CNTL_ADDR 0xB2
#define FS453_CC_BLNK_ADDR 0xB4
#define FS453_CC_BKS_ADDR 0xB6
#define FS453_HACT_ST_ADDR 0xB8
#define FS453_HACT_WD_ADDR 0xBA
#define FS453_VACT_ST_ADDR 0xBC
#define FS453_VACT_HT_ADDR 0xBE
#define FS453_PR_PB_SC_ADDR 0xC0
#define FS453_LUMA_BANDWIDTH_ADDR 0xC2
#define FS453_QPR_ADDR 0xC4
// for I2C read/write purpose
//------------------------------------------------------------------------------
// REGISTER WIDTH
//------------------------------------------------------------------------------
#define W_1_BYTE 1//8
#define W_2_BYTE 2//16
#define W_3_BYTE 3//24
#define W_4_BYTE 4//32
#define FS453_IHO_WID W_2_BYTE
#define FS453_IVO_WID W_2_BYTE
#define FS453_IHW_WID W_2_BYTE
#define FS453_VSC_WID W_2_BYTE
#define FS453_HSC_WID W_2_BYTE
#define FS453_BYPASS_WID W_2_BYTE
#define FS453_CR_WID W_2_BYTE
#define FS453_MISC_WID W_2_BYTE
#define FS453_NCON_WID W_4_BYTE
#define FS453_NCONL_WID W_2_BYTE
#define FS453_NCONH_WID W_2_BYTE
#define FS453_NCOD_WID W_4_BYTE
#define FS453_NCODL_WID W_2_BYTE
#define FS453_NCODH_WID W_2_BYTE
#define FS453_PLLM_PUMPCNTL_WID W_2_BYTE
#define FS453_PLLN_WID W_2_BYTE
#define FS453_PLL_POSTDIV_WID W_2_BYTE
#define FS453_HSOUT_TOTAL_WID W_2_BYTE
#define FS453_HSOUT_START_WID W_2_BYTE
#define FS453_HSOUT_END_WID W_2_BYTE
#define FS453_SHP_WID W_2_BYTE
#define FS453_FLK_WID W_2_BYTE
#define FS453_GPIO_WID W_2_BYTE
#define FS453_ID_WID W_2_BYTE
#define FS453_STATUS_PORT_WID W_2_BYTE
#define FS453_FIFO_SP_WID W_2_BYTE
#define FS453_FIFO_LAT_WID W_2_BYTE
#define FS453_VSOUT_TOTAL_WID W_2_BYTE
#define FS453_VSOUT_START_WID W_2_BYTE
#define FS453_VSOUT_END_WID W_2_BYTE
#define FS453_CHR_FREQ_WID W_4_BYTE
#define FS453_CHR_PHASE_WID W_2_BYTE
#define FS453_MISC_45_WID W_1_BYTE
#define FS453_MISC_46_WID W_1_BYTE
#define FS453_MISC_47_WID W_1_BYTE
#define FS453_HSYNC_WID_WID W_1_BYTE
#define FS453_BURST_WID_WID W_1_BYTE
#define FS453_BPORCH_WID W_1_BYTE
#define FS453_CB_BURST_WID W_1_BYTE
#define FS453_CR_BURST_WID W_1_BYTE
#define FS453_MISC_4D_WID W_1_BYTE
#define FS453_BLACK_LVL_WID W_2_BYTE
#define FS453_BLANK_LVL_WID W_2_BYTE
#define FS453_NUM_LINES_WID W_2_BYTE
#define FS453_WHITE_LVL_WID W_2_BYTE
#define FS453_CB_GAIN_WID W_1_BYTE
#define FS453_CR_GAIN_WID W_1_BYTE
#define FS453_TINT_WID W_1_BYTE
#define FS453_BR_WAY_WID W_1_BYTE
#define FS453_FR_PORCH_WID W_1_BYTE
#define FS453_NUM_PIXELS_WID W_2_BYTE
#define FS453_1ST_LINE_WID W_1_BYTE
#define FS453_MISC_74_WID W_1_BYTE
#define FS453_SYNC_LVL_WID W_1_BYTE
#define FS453_VBI_BL_LVL_WID W_2_BYTE
#define FS453_SOFT_RST_WID W_1_BYTE
#define FS453_ENC_VER_WID W_1_BYTE
#define FS453_WSS_CONFIG_WID W_1_BYTE
#define FS453_WSS_CLK_WID W_2_BYTE
#define FS453_WSS_DATAF1_WID W_3_BYTE
#define FS453_WSS_DATAF0_WID W_3_BYTE
#define FS453_WSS_LNF1_WID W_1_BYTE
#define FS453_WSS_LNF0_WID W_1_BYTE
#define FS453_WSS_LVL_WID W_2_BYTE
#define FS453_MISC_8D_WID W_1_BYTE
#define FS453_VID_CNTL0_WID W_2_BYTE
#define FS453_HD_FP_SYNC_WID W_2_BYTE
#define FS453_HD_YOFF_BP_WID W_2_BYTE
#define FS453_SYNC_DL_WID W_2_BYTE
#define FS453_FLD_DLY_WID W_2_BYTE
#define FS453_LD_DET_WID W_2_BYTE
#define FS453_DAC_CNTL_WID W_2_BYTE
#define FS453_PWR_MGNT_WID W_2_BYTE
#define FS453_RED_MTX_WID W_2_BYTE
#define FS453_GRN_MTX_WID W_2_BYTE
#define FS453_BLU_MTX_WID W_2_BYTE
#define FS453_RED_SCL_WID W_2_BYTE
#define FS453_GRN_SCL_WID W_2_BYTE
#define FS453_BLU_SCL_WID W_2_BYTE
#define FS453_CC_F1_WID W_2_BYTE
#define FS453_CC_F2_WID W_2_BYTE
#define FS453_CC_CNTL_WID W_2_BYTE
#define FS453_CC_BLNK_WID W_2_BYTE
#define FS453_CC_BKS_WID W_2_BYTE
#define FS453_HACT_ST_WID W_2_BYTE
#define FS453_HACT_WD_WID W_2_BYTE
#define FS453_VACT_ST_WID W_2_BYTE
#define FS453_VACT_HT_WID W_2_BYTE
#define FS453_PR_PB_SC_WID W_2_BYTE
#define FS453_LUMA_BANDWIDTH_WID W_2_BYTE
#define FS453_QPR_WID W_2_BYTE
//------------------------------------------------------------------------------
// REGISTER BIT FIELD POSITIONS (LEFT SHIFT)
//------------------------------------------------------------------------------
//0x00
#define FS453_IHO_IHO_LSH 0
//0x02
#define FS453_IVO_IVO_LSH 0
//0x04
#define FS453_IHW_IHW_LSH 0
//0x06
#define FS453_VSC_VSC_LSH 0
//0x08
#define FS453_HSC_HUSC_LSH 8
#define FS453_HSC_HDSC_LSH 0
//0x0A
#define FS453_BYPASS_B_BYPASS_LSH 4
#define FS453_BYPASS_CAC_BYPASS_LSH 3
#define FS453_BYPASS_HDS_BYPASS_LSH 1
//0x0c
#define FS453_CR_GCC_S_LVL_LSH 14
#define FS453_CR_GCC_CK_LVL_LSH 13
#define FS453_CR_P656_LVL_LSH 12
#define FS453_CR_P656_IN_LSH 11
#define FS453_CR_P656_OUT_LSH 10
#define FS453_CR_CBAR_480P_LSH 9
#define FS453_CR_PAL_NTSCIN_LSH 8
#define FS453_CR_SYNC_MS_LSH 7
#define FS453_CR_FIFO_CLR_LSH 6
#define FS453_CR_CACQ_CLR_LSH 5
#define FS453_CR_CDEC_BP_LSH 4
#define FS453_CR_NCO_EN_LSH 1
#define FS453_CR_SRESET_LSH 0
//0x0e
#define FS453_MISC_P_ORDER_LSH 11
#define FS453_MISC_BRDG_RST_LSH 10
#define FS453_MISC_UIM_E_LSH 9
#define FS453_MISC_UV_SWAP_LSH 8
#define FS453_MISC_UIM_DEC_LSH 7
#define FS453_MISC_UIM_CCLK_LSH 5
#define FS453_MISC_UIM_DCLK_LSH 4
#define FS453_MISC_UIM_MOD_LSH 0
//0x10
#define FS453_NCON_NCON_LSH 0
#define FS453_NCONL_NCONL_LSH 0
#define FS453_NCONH_NCONH_LSH 0
//0x14
#define FS453_NCOD_NCOD_LSH 0
#define FS453_NCODL_NCODL_LSH 0
#define FS453_NCODH_NCODH_LSH 0
//0x18
#define FS453_PLLM_PUMPCNTL_PLLG_LSH 12
#define FS453_PLLM_PUMPCNTL_PLLM_LSH 0
//0x1A
#define FS453_PLLN_PLLN_LSH 0
//0x1C
#define FS453_PLL_POSTDIV_PLL_EP_LSH 8
#define FS453_PLL_POSTDIV_PLL_IP_LSH 0
//0x1E
#define FS453_HSOUT_TOTAL_HSOUT_TOTAL_LSH 0
//0x20
#define FS453_HSOUT_START_HSOUT_START_LSH 0
//0x22
#define FS453_HSOUT_END_HSOUT_END_LSH 0
//0x24
#define FS453_SHP_SHP_LSH 0
//0x26
#define FS453_FLK_FLK_LSH 0
//0x28
#define FS453_GPIO_GPOE_LSH 4
#define FS453_GPIO_GPIO_LSH 0
//0x32
#define FS453_ID_ID_LSH 0
//0x34
#define FS453_STATUS_PORT_REV_LSH 2
#define FS453_STATUS_PORT_FIFO_ST_LSH 1
#define FS453_STATUS_PORT_CACQ_ST_LSH 0
//0x36
#define FS453_FIFO_SP_FIFOF_LSH 8
#define FS453_FIFO_SP_FIFOU_LSH 0
//0x38
#define FS453_FIFO_LAT_FIFO_LAT_LSH 0
//0x3A
#define FS453_VSOUT_TOTAL_VSOUT_TOTAL_LSH 0
//0x3C
#define FS453_VSOUT_START_VSOUT_START_LSH 0
//0x3E
#define FS453_VSOUT_END_VSOUT_END_LSH 0
//0x40
#define FS453_CHR_FREQ_CHR_FREQ0_LSH 24
#define FS453_CHR_FREQ_CHR_FREQ8_LSH 16
#define FS453_CHR_FREQ_CHR_FREQ16_LSH 8
#define FS453_CHR_FREQ_CHR_FREQ24_LSH 0
//0x44
#define FS453_CHR_PHASE_CHR_PHASE_LSH 0
//0x45
#define FS453_MISC_45_CLRBAR_LSH 1
#define FS453_MISC_45_BYPYCLP_LSH 0
//0x46
#define FS453_MISC_46_RGB_SETUP_LSH 7
#define FS453_MISC_46_RGB_SYNC_LSH 4
#define FS453_MISC_46_YC_DELAY_LSH 1
#define FS453_MISC_46_CVBS_EN_LSH 0
//0x47
#define FS453_MISC_47_CHR_BW_LSH 3
#define FS453_MISC_47_COMP_YUV_LSH 2
#define FS453_MISC_47_COMP_GAIN_LSH 0
//0x48
#define FS453_HSYNC_WID_HSYNC_WID_LSH 0
//0x49
#define FS453_BURST_WID_BURST_WID_LSH 0
//0x4A
#define FS453_BPORCH_BPORCH_LSH 0
//0x4B
#define FS453_CB_BURST_CB_BURST_LSH 0
//0x4C
#define FS453_CR_BURST_CR_BURST_LSH 0
//0x4D
#define FS453_MISC_4D_ENC_MODE_LSH 0
//0x4E
#define FS453_BLACK_LVL_BLACK_LVL0_LSH 8
#define FS453_BLACK_LVL_BLACK_LVL2_LSH 0
//0x50
#define FS453_BLANK_LVL_BLANK_LVL0_LSH 8
#define FS453_BLANK_LVL_BLANK_LVL2_LSH 0
//0x57
#define FS453_NUM_LINES_NUM_LINES0_LSH 8
#define FS453_NUM_LINES_NUM_LINES2_LSH 0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -