Files
Linux_Drivers/middleware/v2/include/cvi_comm_sns.h
wangliang.wang db9bea8b47 fix build error.
Change-Id: I733d10d084d6cea8f281eb3d38a3bdd06c042b33
2023-03-10 20:30:16 +08:00

96 lines
2.5 KiB
C

/*
* Copyright (C) Cvitek Co., Ltd. 2019-2020. All rights reserved.
*
* File Name: include/cvi_common_sns.h
* Description:
*/
#ifndef _CVI_COMM_SNS_H_
#define _CVI_COMM_SNS_H_
#ifdef __cplusplus
#if __cplusplus
extern "C" {
#endif
#endif
#include <linux/cvi_type.h>
#include <linux/cvi_defines.h>
#include "cvi_debug.h"
#include "cvi_comm_isp.h"
// ++++++++ If you want to change these interfaces, please contact the isp team. ++++++++
#define NOISE_PROFILE_CHANNEL_NUM 4
#define NOISE_PROFILE_LEVEL_NUM 2
#define NOISE_PROFILE_ISO_NUM 16
#define USE_USER_SEN_DRIVER 1
typedef struct _ISP_CMOS_SENSOR_IMAGE_MODE_S {
CVI_U16 u16Width;
CVI_U16 u16Height;
CVI_FLOAT f32Fps;
CVI_U8 u8SnsMode;
} ISP_CMOS_SENSOR_IMAGE_MODE_S;
typedef struct _ISP_CMOS_BLACK_LEVEL_S {
CVI_BOOL bUpdate;
ISP_BLACK_LEVEL_ATTR_S blcAttr;
} ISP_CMOS_BLACK_LEVEL_S;
typedef struct _ISP_SNS_ATTR_INFO_S {
CVI_U32 eSensorId;
} ISP_SNS_ATTR_INFO_S;
typedef struct cviISP_CMOS_NOISE_CALIBRATION_S {
CVI_FLOAT CalibrationCoef[NOISE_PROFILE_ISO_NUM][NOISE_PROFILE_CHANNEL_NUM][NOISE_PROFILE_LEVEL_NUM];
} ISP_CMOS_NOISE_CALIBRATION_S;
typedef struct _ISP_CMOS_DEFAULT_S {
ISP_CMOS_NOISE_CALIBRATION_S stNoiseCalibration;
} ISP_CMOS_DEFAULT_S;
typedef struct _ISP_SENSOR_EXP_FUNC_S {
CVI_VOID (*pfn_cmos_sensor_init)(VI_PIPE ViPipe);
CVI_VOID (*pfn_cmos_sensor_exit)(VI_PIPE ViPipe);
CVI_VOID (*pfn_cmos_sensor_global_init)(VI_PIPE ViPipe);
CVI_S32 (*pfn_cmos_set_image_mode)(VI_PIPE ViPipe, ISP_CMOS_SENSOR_IMAGE_MODE_S *pstSensorImageMode);
CVI_S32 (*pfn_cmos_set_wdr_mode)(VI_PIPE ViPipe, CVI_U8 u8Mode);
/* the algs get data which is associated with sensor, except 3a */
CVI_S32 (*pfn_cmos_get_isp_default)(VI_PIPE ViPipe, ISP_CMOS_DEFAULT_S *pstDef);
CVI_S32 (*pfn_cmos_get_isp_black_level)(VI_PIPE ViPipe, ISP_CMOS_BLACK_LEVEL_S *pstBlackLevel);
CVI_S32 (*pfn_cmos_get_sns_reg_info)(VI_PIPE ViPipe, ISP_SNS_SYNC_INFO_S *pstSnsRegsInfo);
/* the function of sensor set pixel detect */
//CVI_VOID (*pfn_cmos_set_pixel_detect)(VI_PIPE ViPipe, bool bEnable);
} ISP_SENSOR_EXP_FUNC_S;
typedef struct bmISP_SENSOR_REGISTER_S {
ISP_SENSOR_EXP_FUNC_S stSnsExp;
} ISP_SENSOR_REGISTER_S;
typedef enum _MCLK_FREQ_E {
MCLK_FREQ_NONE = 0,
MCLK_FREQ_37P125M,
MCLK_FREQ_25M,
MCLK_FREQ_27M,
MCLK_FREQ_NUM
} MCLK_FREQ_E;
typedef struct _SNS_MCLK_S {
CVI_U32 u8Cam;
MCLK_FREQ_E enFreq;
} SNS_MCLK_S;
// -------- If you want to change these interfaces, please contact the isp team. --------
#ifdef __cplusplus
#if __cplusplus
}
#endif
#endif
#endif /* _CVI_COMM_SNS_H_ */