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
|
|
|