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

📄 mx27_csi.h

📁 LINUX下的ov2640驱动程序
💻 H
字号:
/* * Copyright 2005-2007 Freescale Semiconductor, Inc. All Rights Reserved. *//* * The code contained herein is licensed under the GNU General Public * License. You may obtain a copy of the GNU General Public License * Version 2 or later at the following locations: * * http://www.opensource.org/licenses/gpl-license.html * http://www.gnu.org/copyleft/gpl.html *//*! * @file mx27_csi.h * * @brief CMOS Sensor interface functions * * @ingroup CSI */#ifndef MX27_CSI_H#define MX27_CSI_H/* reset values */#define CSICR1_RESET_VAL	0x40000800#define CSICR2_RESET_VAL	0x0#define CSICR3_RESET_VAL	0x0/* csi control reg 1 */#define BIT_SWAP16_EN		(0x1 << 31)#define BIT_EXT_VSYNC		(0x1 << 30)#define BIT_EOF_INT_EN		(0x1 << 29)#define BIT_PRP_IF_EN		(0x1 << 28)#define BIT_CCIR_MODE		(0x1 << 27)#define BIT_COF_INT_EN		(0x1 << 26)#define BIT_SF_OR_INTEN		(0x1 << 25)#define BIT_RF_OR_INTEN		(0x1 << 24)#define BIT_STATFF_LEVEL	(0x3 << 22)#define BIT_STATFF_INTEN	(0x1 << 21)#define BIT_RXFF_LEVEL		(0x3 << 19)#define BIT_RXFF_INTEN		(0x1 << 18)#define BIT_SOF_POL		(0x1 << 17)#define BIT_SOF_INTEN		(0x1 << 16)#define BIT_MCLKDIV		(0xF << 12)#define BIT_HSYNC_POL		(0x1 << 11)#define BIT_CCIR_EN		(0x1 << 10)#define BIT_MCLKEN		(0x1 << 9)#define BIT_FCC			(0x1 << 8)#define BIT_PACK_DIR		(0x1 << 7)#define BIT_CLR_STATFIFO	(0x1 << 6)#define BIT_CLR_RXFIFO		(0x1 << 5)#define BIT_GCLK_MODE		(0x1 << 4)#define BIT_INV_DATA		(0x1 << 3)#define BIT_INV_PCLK		(0x1 << 2)#define BIT_REDGE		(0x1 << 1)#define SHIFT_STATFF_LEVEL	22#define SHIFT_RXFF_LEVEL	19#define SHIFT_MCLKDIV		12/* control reg 3 */#define BIT_FRMCNT		(0xFFFF << 16)#define BIT_FRMCNT_RST		(0x1 << 15)#define BIT_CSI_SUP		(0x1 << 3)#define BIT_ZERO_PACK_EN	(0x1 << 2)#define BIT_ECC_INT_EN		(0x1 << 1)#define BIT_ECC_AUTO_EN		(0x1)#define SHIFT_FRMCNT		16/* csi status reg */#define BIT_SFF_OR_INT		(0x1 << 25)#define BIT_RFF_OR_INT		(0x1 << 24)#define BIT_STATFF_INT		(0x1 << 21)#define BIT_RXFF_INT		(0x1 << 18)#define BIT_EOF_INT		(0x1 << 17)#define BIT_SOF_INT		(0x1 << 16)#define BIT_F2_INT		(0x1 << 15)#define BIT_F1_INT		(0x1 << 14)#define BIT_COF_INT		(0x1 << 13)#define BIT_ECC_INT		(0x1 << 1)#define BIT_DRDY		(0x1 << 0)#define CSI_MCLK_VF		1#define CSI_MCLK_ENC		2#define CSI_MCLK_RAW		4#define CSI_MCLK_I2C		8#define CSI_CSICR1		(IO_ADDRESS(CSI_BASE_ADDR))#define CSI_CSICR2		(IO_ADDRESS(CSI_BASE_ADDR + 0x4))#define CSI_CSISR		(IO_ADDRESS(CSI_BASE_ADDR + 0x8))#define CSI_STATFIFO		(IO_ADDRESS(CSI_BASE_ADDR + 0xC))#define CSI_CSIRXFIFO		(IO_ADDRESS(CSI_BASE_ADDR + 0x10))#define CSI_CSIRXCNT		(IO_ADDRESS(CSI_BASE_ADDR + 0x14))#define CSI_CSICR3		(IO_ADDRESS(CSI_BASE_ADDR + 0x1C))#define CSI_CSIRXFIFO_PHYADDR	(CSI_BASE_ADDR + 0x10)static __inline void csi_clear_status(unsigned long status){	__raw_writel(status, CSI_CSISR);}typedef struct {	unsigned data_width:3;	unsigned clk_mode:2;	unsigned ext_vsync:1;	unsigned Vsync_pol:1;	unsigned Hsync_pol:1;	unsigned pixclk_pol:1;	unsigned data_pol:1;	unsigned sens_clksrc:1;} csi_signal_cfg_t;typedef struct {	/* control reg 1 */	unsigned int swap16_en:1;	unsigned int ext_vsync:1;	unsigned int eof_int_en:1;	unsigned int prp_if_en:1;	unsigned int ccir_mode:1;	unsigned int cof_int_en:1;	unsigned int sf_or_inten:1;	unsigned int rf_or_inten:1;	unsigned int statff_level:2;	unsigned int staff_inten:1;	unsigned int rxff_level:2;	unsigned int rxff_inten:1;	unsigned int sof_pol:1;	unsigned int sof_inten:1;	unsigned int mclkdiv:4;	unsigned int hsync_pol:1;	unsigned int ccir_en:1;	unsigned int mclken:1;	unsigned int fcc:1;	unsigned int pack_dir:1;	unsigned int gclk_mode:1;	unsigned int inv_data:1;	unsigned int inv_pclk:1;	unsigned int redge:1;	unsigned int csicnt1_rsv:1;	/* control reg 3 */	unsigned int frmcnt:16;	unsigned int frame_reset:1;	unsigned int csi_sup:1;	unsigned int zero_pack_en:1;	unsigned int ecc_int_en:1;	unsigned int ecc_auto_en:1;	/* fifo counter */	unsigned int rxcnt;} csi_config_t;typedef void (*csi_irq_callback_t) (void *data, unsigned long status);int32_t csi_enable_mclk(int src, bool flag, bool wait);int32_t csi_init_interface(uint16_t width, uint16_t height,			   uint32_t pixel_fmt, csi_signal_cfg_t sig);int csi_read_mclk_flag(void);void csi_set_callback(csi_irq_callback_t callback, void *data);void csi_enable_prpif(uint32_t enable);#endif

⌨️ 快捷键说明

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