85 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			85 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
| #ifndef _ISP_DEV_H_
 | |
| #define _ISP_DEV_H_
 | |
| 
 | |
| #include "kwrap/type.h"
 | |
| #include "isp_api.h"
 | |
| #include "isp_mtr.h"
 | |
| 
 | |
| //=============================================================================
 | |
| // struct & definition
 | |
| //=============================================================================
 | |
| #define ISP_MAX_NAME_SIZE       16
 | |
| 
 | |
| typedef enum _ISP_SYNC_SEL {
 | |
| 	ISP_SYNC_SEL_SIE,       ///< Sync Info from SIE EVENT
 | |
| 	ISP_SYNC_SEL_IPP,       ///< Sync Info from IPP EVENT
 | |
| 	ISP_SYNC_SEL_ENC,       ///< Sync Info from ENC EVENT
 | |
| 	ISP_SYNC_SEL_CURRENT,   ///< Sync Info from CURRENT
 | |
| 	ISP_SYNC_SEL_MAX,
 | |
| 	ENUM_DUMMY4WORD(ISP_SYNC_SEL_MAX)
 | |
| } ISP_SYNC_SEL;
 | |
| 
 | |
| typedef enum _ISP_SYNC_ITEM {
 | |
| 	// NOTE: Start of frame cnt SyncInfo
 | |
| 	ISP_SYNC_AE_STATUS           = 0,///< Sync from AE
 | |
| 	ISP_SYNC_AE_TOTAL_GAIN,          ///< Sync from AE
 | |
| 	ISP_SYNC_AE_DGAIN,               ///< Sync from AE
 | |
| 	ISP_SYNC_AE_LV,                  ///< Sync from AE
 | |
| 	ISP_SYNC_AE_LV_BASE,             ///< Sync from AE
 | |
| 	ISP_SYNC_AE_LA_ENABLE        = 5,///< Sync from AE
 | |
| 	ISP_SYNC_AWB_CGAIN,              ///< Sync from AWB
 | |
| 	ISP_SYNC_AWB_CT,                 ///< Sync from AWB
 | |
| 	ISP_SYNC_AWB_CA_ENABLE,          ///< Sync from AWB
 | |
| 	ISP_SYNC_IQ_FINAL_CGAIN,         ///< Sync from IQ
 | |
| 	ISP_SYNC_FRAME_CNT_MAX      = 10,
 | |
| 	// NOTE: end of frame cnt SyncInfo
 | |
| 	ISP_SYNC_CAPTURE_TOTAL_GAIN,     ///< Sync from AE
 | |
| 	ISP_SYNC_CAPTURE_DGAIN,          ///< Sync from AE
 | |
| 	ISP_SYNC_SHDR_FRAME_NUM,         ///< Sync from AE
 | |
| 	ISP_SYNC_SHDR_EV_RATIO,          ///< Sync from AE
 | |
| 	ISP_SYNC_AE_INIT            = 15,///< Sync from AE or buildin AE
 | |
| 	ISP_SYNC_AWB_INIT,               ///< Sync from AWB or buildin AWB
 | |
| 	ISP_SYNC_IQ_INIT,                ///< Sync from buildin ISP or buildin IQ
 | |
| 	ISP_SYNC_CA_TH,                  ///< Sync from AWB
 | |
| 	ISP_SYNC_CAPTURE_CGAIN,          ///< Sync from AWB
 | |
| 	ISP_SYNC_SIE_LA_ROI,             ///< Sync from AE
 | |
| 	ISP_SYNC_SIE_CA_ROI,             ///< Sync from AWB
 | |
| 	ISP_SYNC_ITEM_MAX,
 | |
| 	ENUM_DUMMY4WORD(ISP_SYNC_ITEM_MAX)
 | |
| } ISP_SYNC_ITEM;
 | |
| 
 | |
| typedef struct _ISP_MODULE {
 | |
| 	CHAR     name[ISP_MAX_NAME_SIZE];        // module name
 | |
| 	void     *private;                       // private date
 | |
| 	INT32    (*fn_init)      (UINT32 id);
 | |
| 	INT32    (*fn_uninit)    (UINT32 id);
 | |
| 	void     (*fn_trig)      (UINT32 id, void *arg);
 | |
| 	INT32    (*fn_pause)     (UINT32 id);
 | |
| 	INT32    (*fn_resume)    (UINT32 id);
 | |
| 	INT32    (*fn_ioctl)     (INT32 cmd, UINT32 arg, UINT32 *buf_addr);
 | |
| } ISP_MODULE;
 | |
| 
 | |
| //=============================================================================
 | |
| // extern functions
 | |
| //=============================================================================
 | |
| extern ER isp_dev_get_sync_item(ISP_ID id, ISP_SYNC_SEL sel, ISP_SYNC_ITEM item, void *data);
 | |
| extern void isp_dev_set_sync_item(ISP_ID id, ISP_SYNC_SEL sel, ISP_SYNC_ITEM item, void *data);
 | |
| extern ISP_CA_RSLT *isp_dev_get_ca(ISP_ID id);
 | |
| extern ISP_LA_RSLT *isp_dev_get_la(ISP_ID id);
 | |
| extern ISP_VA_RSLT *isp_dev_get_va(ISP_ID id);
 | |
| extern ISP_VA_INDEP_RSLT *isp_dev_get_va_indep(ISP_ID id);
 | |
| extern ISP_MD_RSLT *isp_dev_get_md(ISP_ID id);
 | |
| extern ISP_HISTO_RSLT *isp_dev_get_histo(ISP_ID id);
 | |
| extern ISP_EDGE_STCS *isp_dev_get_edge_stcs(ISP_ID id);
 | |
| extern ISP_IPE_SUBOUT_BUF *isp_dev_get_ipe_subout_buf(ISP_ID id);
 | |
| extern CTL_MTR_DRV_TAB *isp_dev_get_mtr_drv_tab(void);
 | |
| extern void isp_dev_reg_ae_module(ISP_MODULE *ae_module);
 | |
| extern void isp_dev_reg_af_module(ISP_MODULE *af_module);
 | |
| extern void isp_dev_reg_awb_module(ISP_MODULE *awb_module);
 | |
| extern void isp_dev_reg_dr_module(ISP_MODULE *dr_module);
 | |
| extern void isp_dev_reg_iq_module(ISP_MODULE *iq_module);
 | |
| extern void isp_dev_reg_motor_driver(CTL_MTR_DRV_TAB *mrt_drv_tab);
 | |
| extern void isp_dev_wait_vd(ISP_ID id, UINT32 timeout);
 | |
| #endif
 | |
| 
 | 
