aboutsummaryrefslogtreecommitdiff
path: root/kernel-headers/kd_imgsensor_define.h
diff options
context:
space:
mode:
Diffstat (limited to 'kernel-headers/kd_imgsensor_define.h')
-rw-r--r--kernel-headers/kd_imgsensor_define.h1108
1 files changed, 1108 insertions, 0 deletions
diff --git a/kernel-headers/kd_imgsensor_define.h b/kernel-headers/kd_imgsensor_define.h
new file mode 100644
index 0000000..8eab108
--- /dev/null
+++ b/kernel-headers/kd_imgsensor_define.h
@@ -0,0 +1,1108 @@
+#ifndef _KD_IMGSENSOR_DATA_H
+#define _KD_IMGSENSOR_DATA_H
+
+/* #include "../camera/kd_camera_hw.h" */
+#include "kd_camera_feature.h"
+
+#define SENSOR_CLOCK_POLARITY_HIGH 0
+#define SENSOR_CLOCK_POLARITY_LOW 1
+/* #define CONFIG_COMPAT */
+#ifdef CONFIG_COMPAT
+/* 64 bit */
+#include <linux/fs.h>
+#include <linux/compat.h>
+#endif
+
+
+
+/*************************************************
+*
+**************************************************/
+/* In KERNEL mode,SHOULD be sync with mediatype.h */
+/* CHECK before remove or modify */
+/* #undef BOOL */
+/* #define BOOL signed int */
+#ifndef _MEDIA_TYPES_H
+typedef unsigned char MUINT8;
+typedef unsigned short MUINT16;
+typedef unsigned int MUINT32;
+typedef signed char MINT8;
+typedef signed short MINT16;
+typedef signed int MINT32;
+#endif
+
+/*******************************************************************************
+*
+********************************************************************************/
+/* */
+/* msdk_isp_exp.h */
+/* */
+#define BASEGAIN 0x40
+#define BASEGAIN_SHIFT 6
+
+typedef enum {
+ ISP_DRIVING_2MA = 0,
+ ISP_DRIVING_4MA,
+ ISP_DRIVING_6MA,
+ ISP_DRIVING_8MA
+} ISP_DRIVING_CURRENT_ENUM;
+
+
+
+enum {
+ IMAGE_NORMAL = 0,
+ IMAGE_H_MIRROR,
+ IMAGE_V_MIRROR,
+ IMAGE_HV_MIRROR
+};
+
+
+typedef enum {
+ MSDK_SCENARIO_ID_CAMERA_PREVIEW = 0,
+ MSDK_SCENARIO_ID_CAMERA_CAPTURE_JPEG,
+ MSDK_SCENARIO_ID_VIDEO_PREVIEW,
+ MSDK_SCENARIO_ID_HIGH_SPEED_VIDEO,
+ MSDK_SCENARIO_ID_CAMERA_ZSD,
+ MSDK_SCENARIO_ID_CAMERA_3D_PREVIEW,
+ MSDK_SCENARIO_ID_CAMERA_3D_CAPTURE,
+ MSDK_SCENARIO_ID_CAMERA_3D_VIDEO,
+ MSDK_SCENARIO_ID_TV_OUT,
+ MSDK_SCENARIO_ID_SLIM_VIDEO,
+ MSDK_SCENARIO_ID_CUSTOM1,
+ MSDK_SCENARIO_ID_CUSTOM2,
+ MSDK_SCENARIO_ID_CUSTOM3,
+ MSDK_SCENARIO_ID_CUSTOM4,
+ MSDK_SCENARIO_ID_CUSTOM5,
+ MSDK_SCENARIO_ID_MAX,
+} MSDK_SCENARIO_ID_ENUM;
+
+
+typedef enum {
+ MSDK_CAMERA_OPERATION_NORMAL_MODE = 0,
+ MSDK_CAMERA_OPERATION_META_MODE
+} ACDK_CAMERA_OPERATION_MODE_ENUM;
+
+
+/*******************************************************************************
+*
+********************************************************************************/
+
+/* */
+#define MAX_NUM_OF_SUPPORT_SENSOR 16
+/* */
+#define SENSOR_CLOCK_POLARITY_HIGH 0
+#define SENSOR_CLOCK_POLARITY_LOW 1
+/* */
+#define LENS_DRIVER_ID_DO_NOT_CARE 0xFFFFFFFF
+#define SENSOR_DOES_NOT_EXIST 0x00FFFFFF
+#define SENSOR_DOES_NOT_KNOW 0xFFFFFFFF
+
+#define SENSOR_FEATURE_START 3000
+typedef enum {
+ SENSOR_FEATURE_BEGIN = SENSOR_FEATURE_START,
+ SENSOR_FEATURE_GET_RESOLUTION,
+ SENSOR_FEATURE_GET_PERIOD,
+ SENSOR_FEATURE_GET_PIXEL_CLOCK_FREQ,
+ SENSOR_FEATURE_SET_ESHUTTER,
+ SENSOR_FEATURE_SET_NIGHTMODE,
+ SENSOR_FEATURE_SET_GAIN,
+ SENSOR_FEATURE_SET_GAIN_AND_ESHUTTER,
+ SENSOR_FEATURE_SET_FLASHLIGHT,
+ SENSOR_FEATURE_SET_ISP_MASTER_CLOCK_FREQ,
+ SENSOR_FEATURE_SET_REGISTER,
+ SENSOR_FEATURE_GET_REGISTER,
+ SENSOR_FEATURE_SET_CCT_REGISTER,
+ SENSOR_FEATURE_GET_CCT_REGISTER,
+ SENSOR_FEATURE_SET_ENG_REGISTER,
+ SENSOR_FEATURE_GET_ENG_REGISTER,
+ SENSOR_FEATURE_GET_REGISTER_DEFAULT,
+ SENSOR_FEATURE_GET_CONFIG_PARA,
+ SENSOR_FEATURE_CAMERA_PARA_TO_SENSOR,
+ SENSOR_FEATURE_SENSOR_TO_CAMERA_PARA,
+ SENSOR_FEATURE_GET_GROUP_COUNT,
+ SENSOR_FEATURE_GET_GROUP_INFO,
+ SENSOR_FEATURE_GET_ITEM_INFO,
+ SENSOR_FEATURE_SET_ITEM_INFO,
+ SENSOR_FEATURE_GET_ENG_INFO,
+ SENSOR_FEATURE_GET_LENS_DRIVER_ID,
+ SENSOR_FEATURE_SET_YUV_CMD,
+ SENSOR_FEATURE_SET_VIDEO_MODE,
+ SENSOR_FEATURE_SET_TARGET_FRAME_RATE,
+ SENSOR_FEATURE_SET_CALIBRATION_DATA,
+ SENSOR_FEATURE_SET_SENSOR_SYNC,
+ SENSOR_FEATURE_INITIALIZE_AF,
+ SENSOR_FEATURE_CONSTANT_AF,
+ SENSOR_FEATURE_INFINITY_AF,
+ SENSOR_FEATURE_MOVE_FOCUS_LENS,
+ SENSOR_FEATURE_GET_AF_STATUS,
+ SENSOR_FEATURE_GET_AE_STATUS,
+ SENSOR_FEATURE_GET_AWB_STATUS,
+ SENSOR_FEATURE_GET_AF_INF,
+ SENSOR_FEATURE_GET_AF_MACRO,
+ SENSOR_FEATURE_CHECK_SENSOR_ID,
+ SENSOR_FEATURE_SET_AUTO_FLICKER_MODE,
+ SENSOR_FEATURE_SET_TEST_PATTERN,
+ SENSOR_FEATURE_SET_SOFTWARE_PWDN,
+ SENSOR_FEATURE_SINGLE_FOCUS_MODE,
+ SENSOR_FEATURE_CANCEL_AF,
+ SENSOR_FEATURE_SET_AF_WINDOW,
+ SENSOR_FEATURE_GET_EV_AWB_REF,
+ SENSOR_FEATURE_GET_SHUTTER_GAIN_AWB_GAIN,
+ SENSOR_FEATURE_GET_AF_MAX_NUM_FOCUS_AREAS,
+ SENSOR_FEATURE_GET_AE_MAX_NUM_METERING_AREAS,
+ SENSOR_FEATURE_SET_AE_WINDOW,
+ SENSOR_FEATURE_GET_EXIF_INFO,
+ SENSOR_FEATURE_GET_DELAY_INFO,
+ SENSOR_FEATURE_SET_SLAVE_I2C_ID,
+ SENSOR_FEATURE_SUSPEND,
+ SENSOR_FEATURE_RESUME,
+ SENSOR_FEATURE_SET_MAX_FRAME_RATE_BY_SCENARIO,
+ SENSOR_FEATURE_GET_DEFAULT_FRAME_RATE_BY_SCENARIO,
+ SENSOR_FEATURE_GET_AE_AWB_LOCK_INFO,
+ SENSOR_FEATURE_AUTOTEST_CMD,
+ SENSOR_FEATURE_GET_TEST_PATTERN_CHECKSUM_VALUE,
+ SENSOR_FEATURE_GET_TEMPERATURE_VALUE,
+ SENSOR_FEATURE_GET_SENSOR_CURRENT_TEMPERATURE,
+ SENSOR_FEATURE_GET_AE_FLASHLIGHT_INFO,
+ SENSOR_FEATURE_GET_TRIGGER_FLASHLIGHT_INFO, /* Trigger flashlight or not */
+ SENSOR_FEATURE_SET_YUV_3A_CMD,
+ SENSOR_FEATURE_SET_N3D_I2C_STREAM_REGDATA,
+ SENSOR_FEATURE_SET_N3D_STOP_STREAMING,
+ SENSOR_FEATURE_SET_N3D_START_STREAMING,
+ SENSOR_FEATURE_GET_SENSOR_N3D_STREAM_TO_VSYNC_TIME,
+ SENSOR_FEATURE_SET_ESHUTTER_GAIN,
+ SENSOR_FEATURE_SET_OB_LOCK,
+ SENSOR_FEATURE_SET_SENSOR_OTP_AWB_CMD,
+ SENSOR_FEATURE_SET_SENSOR_OTP_LSC_CMD,
+ SENSOR_FEATURE_GET_YUV_CAPTURE_OUTPUT_JPEG,
+ SENSOR_FEATURE_SET_YUV_JPEG_PARA,
+ SENSOR_FEATURE_GET_YUV_JPEG_INFO,
+ SENSOR_FEATURE_SET_FRAMERATE,
+ SENSOR_FEATURE_SET_HDR,
+ SENSOR_FEATURE_GET_CROP_INFO,
+ SENSOR_FEATURE_GET_VC_INFO,
+ SENSOR_FEATURE_SET_IHDR_SHUTTER_GAIN,
+ SENSOR_FEATURE_SET_AWB_GAIN,
+ SENSOR_FEATURE_SET_MIN_MAX_FPS,
+ SENSOR_FEATURE_GET_PDAF_INFO,
+ SENSOR_FEATURE_GET_PDAF_DATA,
+ SENSOR_FEATURE_GET_SENSOR_PDAF_CAPACITY,
+ SENSOR_FEATURE_DEBUG_IMGSENSOR,
+ SENSOR_FEATURE_SET_HDR_SHUTTER,
+ SENSOR_FEATURE_SET_ISO,
+ SENSOR_FEATURE_SET_PDAF,
+ SENSOR_FEATURE_MAX
+} ACDK_SENSOR_FEATURE_ENUM;
+
+typedef enum {
+ SENSOR_AF_IDLE = 0,
+ SENSOR_AF_FOCUSING,
+ SENSOR_AF_FOCUSED,
+ SENSOR_AF_ERROR,
+ SENSOR_AF_SCENE_DETECTING,
+ SENSOR_AF_STATUS_MAX
+} ACDK_SENSOR_AF_STATUS_ENUM;
+
+typedef enum {
+ SENSOR_AE_IDLE = 0,
+ SENSOR_AE_EXPOSING,
+ SENSOR_AE_EXPOSED,
+ SENSOR_AE_ERROR,
+ SENSOR_AE_LOCKED
+} ACDK_SENSOR_AE_STATUS_ENUM;
+
+typedef enum {
+ SENSOR_AWB_IDLE = 0,
+ SENSOR_AWB_BALANCING,
+ SENSOR_AWB_BALANCED,
+ SENSOR_AWB_ERROR,
+ SENSOR_AWB_LOCKED
+} ACDK_SENSOR_AWB_STATUS_ENUM;
+
+
+
+typedef enum {
+ SENSOR_INTERFACE_TYPE_PARALLEL = 0,
+ SENSOR_INTERFACE_TYPE_MIPI,
+ SENSOR_INTERFACE_TYPE_SERIAL, /* add for 72 ATV using serial interface */
+ SENSOR_INTERFACE_TYPE_MAX
+} ACDK_SENSOR_INTERFACE_TYPE_ENUM;
+
+typedef enum {
+ SENSOR_OUTPUT_FORMAT_RAW_B = 0,
+ SENSOR_OUTPUT_FORMAT_RAW_Gb,
+ SENSOR_OUTPUT_FORMAT_RAW_Gr,
+ SENSOR_OUTPUT_FORMAT_RAW_R,
+ SENSOR_OUTPUT_FORMAT_UYVY,
+ SENSOR_OUTPUT_FORMAT_VYUY,
+ SENSOR_OUTPUT_FORMAT_YUYV,
+ SENSOR_OUTPUT_FORMAT_YVYU,
+ SENSOR_OUTPUT_FORMAT_CbYCrY,
+ SENSOR_OUTPUT_FORMAT_CrYCbY,
+ SENSOR_OUTPUT_FORMAT_YCbYCr,
+ SENSOR_OUTPUT_FORMAT_YCrYCb,
+ SENSOR_OUTPUT_FORMAT_RAW8_B,
+ SENSOR_OUTPUT_FORMAT_RAW8_Gb,
+ SENSOR_OUTPUT_FORMAT_RAW8_Gr,
+ SENSOR_OUTPUT_FORMAT_RAW8_R,
+ SENSOR_OUTPUT_FORMAT_RAW_RWB_B,
+ SENSOR_OUTPUT_FORMAT_RAW_RWB_Wb,
+ SENSOR_OUTPUT_FORMAT_RAW_RWB_Wr,
+ SENSOR_OUTPUT_FORMAT_RAW_RWB_R,
+ SENSOR_OUTPUT_FORMAT_RAW_MONO
+} ACDK_SENSOR_OUTPUT_DATA_FORMAT_ENUM;
+
+typedef enum {
+ SENSOR_MIPI_1_LANE = 0,
+ SENSOR_MIPI_2_LANE,
+ SENSOR_MIPI_3_LANE,
+ SENSOR_MIPI_4_LANE
+} ACDK_SENSOR_MIPI_LANE_NUMBER_ENUM;
+
+typedef enum {
+ SCAM_1_DATA_CHANNEL = 0,
+ SCAM_2_DATA_CHANNEL,
+ SCAM_3_DATA_CHANNEL,
+ SCAM_4_DATA_CHANNEL,
+} SENSOR_SCAM_DATA_CHANNEL_ENUM;
+
+typedef enum {
+ MIPI_OPHY_NCSI2 = 0,
+ MIPI_OPHY_CSI2 = 1,
+} SENSOR_MIPI_TYPE_ENUM;
+
+typedef enum {
+ MIPI_SETTLEDELAY_AUTO = 0,
+ MIPI_SETTLEDELAY_MANUAL = 1,
+} SENSOR_SETTLEDELAY_MODE_ENUM;
+
+typedef enum {
+ COMP8_NONE = 0,
+ COMP8_DI_30 = 0x30,
+ COMP8_DI_31 = 0x31,
+ COMP8_DI_32 = 0x32,
+ COMP8_DI_33 = 0x33,
+ COMP8_DI_34 = 0x34,
+ COMP8_DI_35 = 0x35,
+ COMP8_DI_36 = 0x36,
+ COMP8_DI_37 = 0x37,
+ COMP8_DI_2A = 0x2A,
+} SENSOR_DPCM_TYPE_ENUM;
+
+typedef struct {
+ MUINT16 SensorPreviewWidth;
+ MUINT16 SensorPreviewHeight;
+ MUINT16 SensorFullWidth;
+ MUINT16 SensorFullHeight;
+ MUINT16 SensorVideoWidth;
+ MUINT16 SensorVideoHeight;
+ MUINT16 SensorHighSpeedVideoWidth;
+ MUINT16 SensorHighSpeedVideoHeight;
+ MUINT16 SensorSlimVideoWidth;
+ MUINT16 SensorSlimVideoHeight;
+ MUINT16 SensorCustom1Width;
+ MUINT16 SensorCustom1Height;
+ MUINT16 SensorCustom2Width;
+ MUINT16 SensorCustom2Height;
+ MUINT16 SensorCustom3Width;
+ MUINT16 SensorCustom3Height;
+ MUINT16 SensorCustom4Width;
+ MUINT16 SensorCustom4Height;
+ MUINT16 SensorCustom5Width;
+ MUINT16 SensorCustom5Height;
+ MUINT16 Sensor3DPreviewWidth;
+ MUINT16 Sensor3DPreviewHeight;
+ MUINT16 Sensor3DFullWidth;
+ MUINT16 Sensor3DFullHeight;
+ MUINT16 Sensor3DVideoWidth;
+ MUINT16 Sensor3DVideoHeight;
+ MUINT16 SensorEffectivePreviewWidth;
+ MUINT16 SensorEffectivePreviewHeight;
+ MUINT16 SensorEffectiveFullWidth;
+ MUINT16 SensorEffectiveFullHeight;
+ MUINT16 SensorEffectiveVideoWidth;
+ MUINT16 SensorEffectiveVideoHeight;
+ MUINT16 SensorEffectiveHighSpeedVideoWidth;
+ MUINT16 SensorEffectiveHighSpeedVideoHeight;
+ MUINT16 SensorEffective3DPreviewWidth;
+ MUINT16 SensorEffective3DPreviewHeight;
+ MUINT16 SensorEffective3DFullWidth;
+ MUINT16 SensorEffective3DFullHeight;
+ MUINT16 SensorEffective3DVideoWidth;
+ MUINT16 SensorEffective3DVideoHeight;
+ MUINT16 SensorPreviewWidthOffset; /* from effective width to output width */
+ MUINT16 SensorPreviewHeightOffset; /* from effective height to output height */
+ MUINT16 SensorFullWidthOffset; /* from effective width to output width */
+ MUINT16 SensorFullHeightOffset; /* from effective height to output height */
+ MUINT16 SensorVideoWidthOffset; /* from effective width to output width */
+ MUINT16 SensorVideoHeightOffset; /* from effective height to output height */
+ MUINT16 SensorHighSpeedVideoWidthOffset; /* from effective width to output width */
+ MUINT16 SensorHighSpeedVideoHeightOffset; /* from effective height to output height */
+ MUINT16 Sensor3DPreviewWidthOffset; /* from effective width to output width */
+ MUINT16 Sensor3DPreviewHeightOffset; /* from effective height to output height */
+ MUINT16 Sensor3DFullWidthOffset; /* from effective width to output width */
+ MUINT16 Sensor3DFullHeightOffset; /* from effective height to output height */
+ MUINT16 Sensor3DVideoWidthOffset; /* from effective width to output width */
+ MUINT16 Sensor3DVideoHeightOffset; /* from effective height to output height */
+} ACDK_SENSOR_RESOLUTION_INFO_STRUCT, *PACDK_SENSOR_RESOLUTION_INFO_STRUCT;
+
+
+typedef struct {
+ MUINT16 SensorPreviewResolutionX;
+ MUINT16 SensorPreviewResolutionY;
+ MUINT16 SensorFullResolutionX;
+ MUINT16 SensorFullResolutionY;
+ MUINT8 SensorClockFreq; /* MHz */
+ MUINT8 SensorCameraPreviewFrameRate;
+ MUINT8 SensorVideoFrameRate;
+ MUINT8 SensorStillCaptureFrameRate;
+ MUINT8 SensorWebCamCaptureFrameRate;
+ MUINT8 SensorClockPolarity; /* SENSOR_CLOCK_POLARITY_HIGH/SENSOR_CLOCK_POLARITY_Low */
+ MUINT8 SensorClockFallingPolarity;
+ MUINT8 SensorClockRisingCount; /* 0..15 */
+ MUINT8 SensorClockFallingCount; /* 0..15 */
+ MUINT8 SensorClockDividCount; /* 0..15 */
+ MUINT8 SensorPixelClockCount; /* 0..15 */
+ MUINT8 SensorDataLatchCount; /* 0..15 */
+ MUINT8 SensorHsyncPolarity;
+ MUINT8 SensorVsyncPolarity;
+ MUINT8 SensorInterruptDelayLines;
+ MINT32 SensorResetActiveHigh;
+ MUINT32 SensorResetDelayCount;
+ ACDK_SENSOR_INTERFACE_TYPE_ENUM SensroInterfaceType;
+ ACDK_SENSOR_OUTPUT_DATA_FORMAT_ENUM SensorOutputDataFormat;
+ ACDK_SENSOR_MIPI_LANE_NUMBER_ENUM SensorMIPILaneNumber;
+ MUINT32 CaptureDelayFrame;
+ MUINT32 PreviewDelayFrame;
+ MUINT32 VideoDelayFrame;
+ MUINT32 HighSpeedVideoDelayFrame;
+ MUINT32 SlimVideoDelayFrame;
+ MUINT32 YUVAwbDelayFrame;
+ MUINT32 YUVEffectDelayFrame;
+ MUINT32 Custom1DelayFrame;
+ MUINT32 Custom2DelayFrame;
+ MUINT32 Custom3DelayFrame;
+ MUINT32 Custom4DelayFrame;
+ MUINT32 Custom5DelayFrame;
+ MUINT16 SensorGrabStartX;
+ MUINT16 SensorGrabStartY;
+ MUINT16 SensorDrivingCurrent;
+ MUINT8 SensorMasterClockSwitch;
+ MUINT8 AEShutDelayFrame; /* The frame of setting shutter default 0 for TG int */
+ MUINT8 AESensorGainDelayFrame; /* The frame of setting sensor gain */
+ MUINT8 AEISPGainDelayFrame;
+ MUINT8 MIPIDataLowPwr2HighSpeedTermDelayCount;
+ MUINT8 MIPIDataLowPwr2HighSpeedSettleDelayCount;
+ MUINT8 MIPICLKLowPwr2HighSpeedTermDelayCount;
+ MUINT8 SensorWidthSampling;
+ MUINT8 SensorHightSampling;
+ MUINT8 SensorPacketECCOrder;
+ SENSOR_MIPI_TYPE_ENUM MIPIsensorType;
+ MUINT8 SensorCaptureOutputJPEG; /* JPEG file or not? */
+ MUINT8 SensorModeNum;
+ MUINT8 IHDR_Support;
+ MUINT16 IHDR_LE_FirstLine;
+ SENSOR_SETTLEDELAY_MODE_ENUM SettleDelayMode;
+ MUINT8 PDAF_Support;
+ MUINT8 DPCM_INFO;
+ MUINT8 PerFrameCTL_Support;
+ SENSOR_SCAM_DATA_CHANNEL_ENUM SCAM_DataNumber;
+ MUINT8 SCAM_DDR_En;
+ MUINT8 SCAM_CLK_INV;
+ MUINT8 SCAM_DEFAULT_DELAY;
+ MUINT8 SCAM_CRC_En;
+ MUINT8 SCAM_SOF_src;
+ MUINT32 SCAM_Timout_Cali;
+} ACDK_SENSOR_INFO_STRUCT, *PACDK_SENSOR_INFO_STRUCT;
+
+typedef struct {
+ MUINT16 SensorPreviewResolutionX;
+ MUINT16 SensorPreviewResolutionY;
+ MUINT16 SensorFullResolutionX;
+ MUINT16 SensorFullResolutionY;
+ MUINT8 SensorClockFreq; /* MHz */
+ MUINT8 SensorCameraPreviewFrameRate;
+ MUINT8 SensorVideoFrameRate;
+ MUINT8 SensorStillCaptureFrameRate;
+ MUINT8 SensorWebCamCaptureFrameRate;
+ MUINT8 SensorClockPolarity; /* SENSOR_CLOCK_POLARITY_HIGH/SENSOR_CLOCK_POLARITY_Low */
+ MUINT8 SensorClockFallingPolarity;
+ MUINT8 SensorClockRisingCount; /* 0..15 */
+ MUINT8 SensorClockFallingCount; /* 0..15 */
+ MUINT8 SensorClockDividCount; /* 0..15 */
+ MUINT8 SensorPixelClockCount; /* 0..15 */
+ MUINT8 SensorDataLatchCount; /* 0..15 */
+ MUINT8 SensorHsyncPolarity;
+ MUINT8 SensorVsyncPolarity;
+ MUINT8 SensorInterruptDelayLines;
+ MINT32 SensorResetActiveHigh;
+ MUINT32 SensorResetDelayCount;
+ ACDK_SENSOR_INTERFACE_TYPE_ENUM SensroInterfaceType;
+ ACDK_SENSOR_OUTPUT_DATA_FORMAT_ENUM SensorOutputDataFormat;
+ ACDK_SENSOR_MIPI_LANE_NUMBER_ENUM SensorMIPILaneNumber;
+ MUINT32 CaptureDelayFrame;
+ MUINT32 PreviewDelayFrame;
+ MUINT32 VideoDelayFrame;
+ MUINT32 HighSpeedVideoDelayFrame;
+ MUINT32 SlimVideoDelayFrame;
+ MUINT32 YUVAwbDelayFrame;
+ MUINT32 YUVEffectDelayFrame;
+ MUINT32 Custom1DelayFrame;
+ MUINT32 Custom2DelayFrame;
+ MUINT32 Custom3DelayFrame;
+ MUINT32 Custom4DelayFrame;
+ MUINT32 Custom5DelayFrame;
+ MUINT16 SensorGrabStartX_PRV;
+ MUINT16 SensorGrabStartY_PRV;
+ MUINT16 SensorGrabStartX_CAP;
+ MUINT16 SensorGrabStartY_CAP;
+ MUINT16 SensorGrabStartX_VD;
+ MUINT16 SensorGrabStartY_VD;
+ MUINT16 SensorGrabStartX_VD1;
+ MUINT16 SensorGrabStartY_VD1;
+ MUINT16 SensorGrabStartX_VD2;
+ MUINT16 SensorGrabStartY_VD2;
+ MUINT16 SensorGrabStartX_CST1;
+ MUINT16 SensorGrabStartY_CST1;
+ MUINT16 SensorGrabStartX_CST2;
+ MUINT16 SensorGrabStartY_CST2;
+ MUINT16 SensorGrabStartX_CST3;
+ MUINT16 SensorGrabStartY_CST3;
+ MUINT16 SensorGrabStartX_CST4;
+ MUINT16 SensorGrabStartY_CST4;
+ MUINT16 SensorGrabStartX_CST5;
+ MUINT16 SensorGrabStartY_CST5;
+ MUINT16 SensorDrivingCurrent;
+ MUINT8 SensorMasterClockSwitch;
+ MUINT8 AEShutDelayFrame; /* The frame of setting shutter default 0 for TG int */
+ MUINT8 AESensorGainDelayFrame; /* The frame of setting sensor gain */
+ MUINT8 AEISPGainDelayFrame;
+ MUINT8 MIPIDataLowPwr2HighSpeedTermDelayCount;
+ MUINT8 MIPIDataLowPwr2HighSpeedSettleDelayCount;
+ MUINT8 MIPIDataLowPwr2HSSettleDelayM0;
+ MUINT8 MIPIDataLowPwr2HSSettleDelayM1;
+ MUINT8 MIPIDataLowPwr2HSSettleDelayM2;
+ MUINT8 MIPIDataLowPwr2HSSettleDelayM3;
+ MUINT8 MIPIDataLowPwr2HSSettleDelayM4;
+ MUINT8 MIPICLKLowPwr2HighSpeedTermDelayCount;
+ MUINT8 SensorWidthSampling;
+ MUINT8 SensorHightSampling;
+ MUINT8 SensorPacketECCOrder;
+ SENSOR_MIPI_TYPE_ENUM MIPIsensorType;
+ MUINT8 SensorCaptureOutputJPEG; /* JPEG file or not? */
+ MUINT8 SensorModeNum;
+ MUINT8 IHDR_Support;
+ MUINT16 IHDR_LE_FirstLine;
+ SENSOR_SETTLEDELAY_MODE_ENUM SettleDelayMode;
+ MUINT8 PDAF_Support;
+ MUINT8 DPCM_INFO;
+ MUINT8 IMGSENSOR_DPCM_TYPE_PRE;
+ MUINT8 IMGSENSOR_DPCM_TYPE_CAP;
+ MUINT8 IMGSENSOR_DPCM_TYPE_VD;
+ MUINT8 IMGSENSOR_DPCM_TYPE_VD1;
+ MUINT8 IMGSENSOR_DPCM_TYPE_VD2;
+ MUINT8 PerFrameCTL_Support;
+ SENSOR_SCAM_DATA_CHANNEL_ENUM SCAM_DataNumber;
+ MUINT8 SCAM_DDR_En;
+ MUINT8 SCAM_CLK_INV;
+ MUINT8 SCAM_DEFAULT_DELAY;
+ MUINT8 SCAM_CRC_En;
+ MUINT8 SCAM_SOF_src;
+ MUINT32 SCAM_Timout_Cali;
+} ACDK_SENSOR_INFO2_STRUCT, *PACDK_SENSOR_INFO2_STRUCT;
+
+
+typedef enum {
+ ACDK_CCT_REG_ISP = 0,
+ ACDK_CCT_REG_CMOS,
+ ACDK_CCT_REG_CCD
+} ACDK_CCT_REG_TYPE_ENUM;
+
+
+/* R/W ISP/Sensor Register */
+typedef struct {
+ ACDK_CCT_REG_TYPE_ENUM Type;
+ MUINT32 RegAddr;
+ MUINT32 RegData;
+} ACDK_CCT_REG_RW_STRUCT, *PACDK_CCT_REG_RW_STRUCT;
+
+typedef struct {
+ ACDK_CCT_REG_TYPE_ENUM Type; /* ISP, CMOS_SENSOR, CCD_SENSOR */
+ MUINT32 DeviceId;
+ ACDK_SENSOR_OUTPUT_DATA_FORMAT_ENUM StartPixelBayerPtn;
+ MUINT16 GrabXOffset;
+ MUINT16 GrabYOffset;
+} ACDK_CCT_SENSOR_INFO_STRUCT, *PACDK_CCT_SENSOR_INFO_STRUCT;
+
+
+
+typedef enum {
+ CMOS_SENSOR = 0,
+ CCD_SENSOR
+} SENSOR_TYPE_ENUM;
+
+typedef struct {
+ MUINT16 SensorId;
+ SENSOR_TYPE_ENUM SensorType;
+ ACDK_SENSOR_OUTPUT_DATA_FORMAT_ENUM SensorOutputDataFormat;
+} ACDK_SENSOR_ENG_INFO_STRUCT;
+
+typedef struct {
+ MUINT32 RegAddr;
+ MUINT32 RegData;
+} ACDK_SENSOR_REG_INFO_STRUCT;
+
+typedef struct {
+ MUINT8 debugStruct[32];
+ MUINT8 debugSubstruct[32];
+ MUINT32 isGet; /* 1 means get, 0 means set */
+ MUINT32 value;
+} ACDK_SENSOR_DBG_IMGSENSOR_STRUCT;
+
+typedef struct {
+ MUINT32 GroupIdx;
+ MUINT32 ItemCount;
+ MUINT8 *GroupNamePtr;
+} ACDK_SENSOR_GROUP_INFO_STRUCT;
+
+typedef struct {
+ MUINT32 GroupIdx;
+ MUINT32 ItemIdx;
+ MUINT8 ItemNamePtr[50]; /* item name */
+ MUINT32 ItemValue; /* item value */
+ MINT32 IsTrueFalse; /* is this item for enable/disable functions */
+ MINT32 IsReadOnly; /* is this item read only */
+ MINT32 IsNeedRestart; /* after set this item need restart */
+ MUINT32 Min; /* min value of item value */
+ MUINT32 Max; /* max value of item value */
+} ACDK_SENSOR_ITEM_INFO_STRUCT;
+
+typedef enum {
+ ACDK_SENSOR_IMAGE_NORMAL = 0,
+ ACDK_SENSOR_IMAGE_H_MIRROR,
+ ACDK_SENSOR_IMAGE_V_MIRROR,
+ ACDK_SENSOR_IMAGE_HV_MIRROR
+} ACDK_SENSOR_IMAGE_MIRROR_ENUM;
+
+typedef enum {
+ ACDK_SENSOR_OPERATION_MODE_CAMERA_PREVIEW = 0,
+ ACDK_SENSOR_OPERATION_MODE_VIDEO,
+ ACDK_SENSOR_OPERATION_MODE_STILL_CAPTURE,
+ ACDK_SENSOR_OPERATION_MODE_HIGHSP_VIDEO1,
+ ACDK_SENSOR_OPERATION_MODE_HIGHSP_VIDEO2,
+ ACDK_SENSOR_OPERATION_MODE_WEB_CAPTURE,
+ ACDK_SENSOR_OPERATION_MODE_CUSTOM1,
+ ACDK_SENSOR_OPERATION_MODE_CUSTOM2,
+ ACDK_SENSOR_OPERATION_MODE_CUSTOM3,
+ ACDK_SENSOR_OPERATION_MODE_CUSTOM4,
+ ACDK_SENSOR_OPERATION_MODE_CUSTOM5,
+ ACDK_SENSOR_OPERATION_MODE_MAX
+} ACDK_SENSOR_OPERATION_MODE_ENUM;
+
+typedef struct {
+ MUINT16 GrabStartX; /* The first grabed column data of the image sensor in pixel clock count */
+ MUINT16 GrabStartY; /* The first grabed row data of the image sensor in pixel clock count */
+ MUINT16 ExposureWindowWidth; /* Exposure window width of image sensor */
+ MUINT16 ExposureWindowHeight; /* Exposure window height of image sensor */
+ MUINT16 ImageTargetWidth; /* image captured width */
+ MUINT16 ImageTargetHeight; /* image captuerd height */
+ MUINT16 ExposurePixel; /* exposure window width of image sensor + dummy pixel */
+ MUINT16 CurrentExposurePixel; /* exposure window width of image sensor + dummy pixel */
+ MUINT16 ExposureLine; /* exposure window width of image sensor + dummy line */
+ MUINT16 ZoomFactor; /* digital zoom factor */
+} ACDK_SENSOR_EXPOSURE_WINDOW_STRUCT;
+
+typedef struct {
+ ACDK_SENSOR_IMAGE_MIRROR_ENUM SensorImageMirror;
+ MINT32 EnableShutterTansfer; /* capture only */
+ MINT32 EnableFlashlightTansfer; /* flash light capture only */
+ ACDK_SENSOR_OPERATION_MODE_ENUM SensorOperationMode;
+ MUINT16 ImageTargetWidth; /* image captured width */
+ MUINT16 ImageTargetHeight; /* image captuerd height */
+ MUINT16 CaptureShutter; /* capture only */
+ MUINT16 FlashlightDuty; /* flash light capture only */
+ MUINT16 FlashlightOffset; /* flash light capture only */
+ MUINT16 FlashlightShutFactor; /* flash light capture only */
+ MUINT16 FlashlightMinShutter;
+ ACDK_CAMERA_OPERATION_MODE_ENUM MetaMode; /* capture only */
+ MUINT32 DefaultPclk; /* Sensor pixel clock(Ex:24000000) */
+ MUINT32 Pixels; /* Sensor active pixel number */
+ MUINT32 Lines; /* Sensor active line number */
+ MUINT32 Shutter; /* Sensor current shutter */
+ MUINT32 FrameLines; /* valid+dummy lines for minimum shutter */
+} ACDK_SENSOR_CONFIG_STRUCT;
+
+typedef enum {
+ MCLK_48MHZ_GROUP = 0x1,
+ MCLK_52MHZ_GROUP = 0x2,
+} ACKD_SENSOR_MCLK_ENUM;
+
+typedef struct {
+ MUINT8 on;
+ ACKD_SENSOR_MCLK_ENUM freq;
+} ACDK_SENSOR_MCLK_STRUCT;
+
+typedef struct {
+ MUINT16 full_w;
+ MUINT16 full_h;
+ MUINT16 x0_offset;
+ MUINT16 y0_offset;
+ MUINT16 w0_size;
+ MUINT16 h0_size;
+ MUINT16 scale_w;
+ MUINT16 scale_h;
+ MUINT16 x1_offset;
+ MUINT16 y1_offset;
+ MUINT16 w1_size;
+ MUINT16 h1_size;
+ MUINT16 x2_tg_offset;
+ MUINT16 y2_tg_offset;
+ MUINT16 w2_tg_size;
+ MUINT16 h2_tg_size;
+} SENSOR_WINSIZE_INFO_STRUCT;
+
+typedef struct {
+ MUINT32 SensorId;
+ SENSOR_WINSIZE_INFO_STRUCT SensorWinSize;
+} SENSOR_WINSIZE_STRUCT, *pSENSOR_WINSIZE_STRUCT;
+
+typedef struct {
+ MUINT16 VC_Num;
+ MUINT16 VC_PixelNum;
+ MUINT16 ModeSelect; /* 0: auto mode, 1:direct mode */
+ MUINT16 EXPO_Ratio; /* 1/1, 1/2, 1/4, 1/8 */
+ MUINT16 ODValue; /* OD Vaule */
+ MUINT16 RG_STATSMODE; /* STATS divistion mdoe 0: 16x16, 1:8x8, 2:4x4, 3:1x1*/
+ MUINT16 VC0_ID;
+ MUINT16 VC0_DataType;
+ MUINT16 VC0_SIZEH;
+ MUINT16 VC0_SIZEV;
+ MUINT16 VC1_ID;
+ MUINT16 VC1_DataType;
+ MUINT16 VC1_SIZEH;
+ MUINT16 VC1_SIZEV;
+ MUINT16 VC2_ID;
+ MUINT16 VC2_DataType;
+ MUINT16 VC2_SIZEH;
+ MUINT16 VC2_SIZEV;
+ MUINT16 VC3_ID;
+ MUINT16 VC3_DataType;
+ MUINT16 VC3_SIZEH;
+ MUINT16 VC3_SIZEV;
+} SENSOR_VC_INFO_STRUCT, *pSENSOR_VC_INFO_STRUCT;
+typedef struct {
+ MUINT32 ABS_GAIN_GR;
+ MUINT32 ABS_GAIN_R;
+ MUINT32 ABS_GAIN_B;
+ MUINT32 ABS_GAIN_GB;
+} SET_SENSOR_AWB_GAIN, *PSET_SENSOR_AWB_GAIN;
+
+typedef struct {
+ MUINT32 SENSOR_MODE;
+ MUINT32 ISO;
+
+} SET_SENSOR_ISO, *PSET_SENSOR_ISO;
+
+typedef struct {
+ MUINT32 i4OffsetX; /* start offset of first PD block */
+ MUINT32 i4OffsetY;
+ MUINT32 i4PitchX; /* PD block pitch */
+ MUINT32 i4PitchY;
+ MUINT32 i4PairNum; /* PD pair num in one block */
+ MUINT32 i4SubBlkW; /* sub block width (one PD pair in one sub block) */
+ MUINT32 i4SubBlkH; /* sub block height */
+ MUINT32 i4PosL[16][2]; /* left pd pixel position in one block*/
+ MUINT32 i4PosR[16][2]; /* right pd pixel position in one block*/
+} SET_PD_BLOCK_INFO_T, *PSET_PD_BLOCK_INFO_T;
+
+
+typedef enum {
+ SENSORIF_PARALLEL = 0,
+ SENSORIF_SERIAL,
+ SENSORIF_MIPI_DHY0,
+ SENSORIF_MIPI_DHY1,
+ SENSORIF_MIPI_DHY2
+} SENSOR_PHY_TYPE_ENUM;
+
+typedef enum {
+ DATA_8BIT_FMT = 0x0,
+ DATA_10BIT_FMT = 0x1,
+ DATA_12BIT_FMT = 0x2,
+ DATA_YUV422_FMT = 0x3,
+} INDATA_FORMAT_ENUM;
+
+typedef struct {
+ MINT32 mSensorDev;
+ MUINT8 GpioEnable;
+ SENSOR_PHY_TYPE_ENUM SensroInterfaceType;
+ INDATA_FORMAT_ENUM SensorIndataformat;
+} IMGSENSOR_GPIO_STRUCT;
+/*******************************************************************************
+*
+********************************************************************************/
+
+#define MAXIMUM_NVRAM_CAMERA_SENSOR_FILE_SIZE_KERNEL 4096
+
+#define NVRAM_CAMERA_SENSOR_FILE_VERSION 1
+
+
+
+/* Sensor table */
+#define MAXIMUM_SENSOR_CCT_REG_NUMBER 100
+#define MAXIMUM_SENSOR_ENG_REG_NUMBER 100
+
+typedef struct {
+ MUINT32 Addr;
+ MUINT32 Para;
+} SENSOR_REG_STRUCT;
+
+typedef struct {
+ MUINT32 Version;
+ MUINT32 SensorId; /* ID of sensor module */
+ SENSOR_REG_STRUCT SensorEngReg[MAXIMUM_SENSOR_ENG_REG_NUMBER];
+ SENSOR_REG_STRUCT SensorCCTReg[MAXIMUM_SENSOR_CCT_REG_NUMBER];
+ MUINT8 CameraData[MAXIMUM_NVRAM_CAMERA_SENSOR_FILE_SIZE_KERNEL / 2 - 8 - sizeof(SENSOR_REG_STRUCT) * (MAXIMUM_SENSOR_ENG_REG_NUMBER + MAXIMUM_SENSOR_CCT_REG_NUMBER)];
+} NVRAM_SENSOR_DATA_STRUCT, *PNVRAM_SENSOR_DATA_STRUCT;
+
+#define MAX_SENSOR_CAL_SIZE_KERNEL (1024) /* Byte */
+#define MAX_SHADING_DATA_TBL ((MAX_SENSOR_CAL_SIZE_KERNEL-8)/4)
+typedef struct {
+ MUINT32 DataFormat;
+ MUINT32 DataSize;
+ MUINT32 ShadingData[MAX_SHADING_DATA_TBL];
+} SET_SENSOR_CALIBRATION_DATA_STRUCT, *PSET_SENSOR_CALIBRATION_DATA_STRUCT;
+
+
+
+typedef struct {
+ MSDK_SCENARIO_ID_ENUM ScenarioId[2];
+ ACDK_SENSOR_INFO_STRUCT * pInfo[2];
+ ACDK_SENSOR_CONFIG_STRUCT * pConfig[2];
+} ACDK_SENSOR_GETINFO_STRUCT, *PACDK_SENSOR_GETINFO_STRUCT;
+
+typedef struct {
+ MUINT32 SensorId;
+ ACDK_SENSOR_INFO2_STRUCT *pInfo;
+ ACDK_SENSOR_RESOLUTION_INFO_STRUCT *pSensorResolution;
+} IMAGESENSOR_GETINFO_STRUCT, *PIMAGESENSOR_GETINFO_STRUCT;
+
+typedef struct {
+ CAMERA_DUAL_CAMERA_SENSOR_ENUM InvokeCamera;
+ ACDK_SENSOR_FEATURE_ENUM FeatureId;
+ MUINT8 *pFeaturePara;
+ MUINT32 *pFeatureParaLen;
+} ACDK_SENSOR_FEATURECONTROL_STRUCT, *PACDK_SENSOR_FEATURECONTROL_STRUCT;
+
+typedef struct {
+ CAMERA_DUAL_CAMERA_SENSOR_ENUM InvokeCamera;
+ MSDK_SCENARIO_ID_ENUM ScenarioId;
+ ACDK_SENSOR_EXPOSURE_WINDOW_STRUCT *pImageWindow;
+ ACDK_SENSOR_CONFIG_STRUCT *pSensorConfigData;
+} ACDK_SENSOR_CONTROL_STRUCT;
+
+typedef struct {
+ ACDK_SENSOR_RESOLUTION_INFO_STRUCT *pResolution[2];
+} ACDK_SENSOR_PRESOLUTION_STRUCT;
+
+
+
+typedef struct regval_list {
+ MUINT32 reg_addr;
+ MUINT32 value;
+ MUINT32 bytes;
+} REGVAL_LIST_STRUCT;
+
+#define KDIMGSENSOR_REGVAL_LIST_MAX_NUM 256
+
+typedef struct format_struct {
+ MUINT8 *desc;
+ MUINT32 pixelformat;
+ /* REGVAL_LIST_STRUCT regs[KDIMGSENSOR_REGVAL_LIST_MAX_NUM]; */
+ int (*pfInitCfg)(void);
+} IMGSENSOR_FORMAT_STRUCT;
+
+typedef struct {
+ IMGSENSOR_FORMAT_STRUCT format;
+ MUINT32 u4InClk; /* Common part //hard coded */
+ MUINT32 u4OutClk; /* Common part // */
+ MUINT32 u4TotalPixelPerLine; /* By modes */
+ MUINT32 u4TotalLinesPerFrame; /* By modes and frame rate setting */
+ MUINT32 u4ActualWidth; /* By modes */
+ MUINT32 u4ActualHeight; /* By modes */
+ MUINT32 u4Width; /* By modes */
+ MUINT32 u4Height; /* By modes */
+ MUINT32 u4FrameTimeInus; /* By modes and frame rate setting */
+ MUINT32 u4MinFrameTimeInus; /* By modes */
+ MUINT32 u4LineTimeInus; /* By modes */
+ MUINT32 u4FinePixCntPerus; /* Common part */
+ MUINT32 u4MinFineTimeInus; /* By modes */
+ MUINT32 u4MaxFineTimeInus; /* By modes */
+ MUINT32 u4XStart;
+ MUINT32 u4XEnd;
+ MUINT32 u4YStart;
+ MUINT32 u4YEnd;
+} stImgSensorFormat;
+
+#ifdef CONFIG_COMPAT
+/* Redifne structures for compat_ioctl */
+typedef struct {
+ MSDK_SCENARIO_ID_ENUM ScenarioId[2];
+ compat_uptr_t pInfo[2];
+ compat_uptr_t pConfig[2];
+} COMPAT_ACDK_SENSOR_GETINFO_STRUCT;
+
+typedef struct {
+ MUINT32 SensorId;
+ compat_uptr_t pInfo;
+ compat_uptr_t pSensorResolution;
+} COMPAT_IMAGESENSOR_GETINFO_STRUCT;
+
+typedef struct {
+ CAMERA_DUAL_CAMERA_SENSOR_ENUM InvokeCamera;
+ ACDK_SENSOR_FEATURE_ENUM FeatureId;
+ compat_uptr_t pFeaturePara;
+ compat_uptr_t pFeatureParaLen;
+} COMPAT_ACDK_SENSOR_FEATURECONTROL_STRUCT;
+
+typedef struct {
+ CAMERA_DUAL_CAMERA_SENSOR_ENUM InvokeCamera;
+ MSDK_SCENARIO_ID_ENUM ScenarioId;
+ compat_uptr_t pImageWindow;
+ compat_uptr_t pSensorConfigData;
+} COMPAT_ACDK_SENSOR_CONTROL_STRUCT;
+
+typedef struct {
+ compat_uptr_t pResolution[2];
+} COMPAT_ACDK_SENSOR_PRESOLUTION_STRUCT;
+
+#endif
+
+
+/*******************************************************************************
+*
+********************************************************************************/
+/* */
+/* adoption to winmo driver files */
+/* */
+
+/* typedef */
+/* #define kal_uint8 u8 */
+
+/* #define MSDK_SCENARIO_ID_ENUM ACDK_SCENARIO_ID_ENUM */
+#define MSDK_SENSOR_EXPOSURE_WINDOW_STRUCT ACDK_SENSOR_EXPOSURE_WINDOW_STRUCT
+#define MSDK_SENSOR_CONFIG_STRUCT ACDK_SENSOR_CONFIG_STRUCT
+
+#define MSDK_SENSOR_FEATURE_ENUM ACDK_SENSOR_FEATURE_ENUM
+#define MSDK_SENSOR_REG_INFO_STRUCT ACDK_SENSOR_REG_INFO_STRUCT
+#define MSDK_SENSOR_GROUP_INFO_STRUCT ACDK_SENSOR_GROUP_INFO_STRUCT
+#define MSDK_SENSOR_ITEM_INFO_STRUCT ACDK_SENSOR_ITEM_INFO_STRUCT
+#define MSDK_SENSOR_ENG_INFO_STRUCT ACDK_SENSOR_ENG_INFO_STRUCT
+#define MSDK_SENSOR_INFO_STRUCT ACDK_SENSOR_INFO_STRUCT
+#define MSDK_SENSOR_RESOLUTION_INFO_STRUCT ACDK_SENSOR_RESOLUTION_INFO_STRUCT
+#define MSDK_SENSOR_DBG_IMGSENSOR_INFO_STRUCT ACDK_SENSOR_DBG_IMGSENSOR_STRUCT
+
+/* MSDK_SCENARIO_ID_ENUM => ACDK_SCENARIO_ID_ENUM */
+/* #define MSDK_SCENARIO_ID_CAMERA_PREVIEW ACDK_SCENARIO_ID_CAMERA_PREVIEW */
+/* #define MSDK_SCENARIO_ID_VIDEO_PREVIEW ACDK_SCENARIO_ID_VIDEO_PREVIEW */
+/* #define MSDK_SCENARIO_ID_CAMERA_CAPTURE_JPEG ACDK_SCENARIO_ID_CAMERA_CAPTURE_JPEG */
+#define MSDK_SENSOR_OPERATION_MODE_VIDEO ACDK_SENSOR_OPERATION_MODE_VIDEO
+/* #define MSDK_SCENARIO_ID_CAMERA_ZSD ACDK_SCENARIO_ID_CAMERA_ZSD */
+/* #define MSDK_SCENARIO_ID_CAMERA_3D_PREVIEW ACDK_SCENARIO_ID_CAMERA_3D_PREVIEW */
+/* #define MSDK_SCENARIO_ID_CAMERA_3D_CAPTURE ACDK_SCENARIO_ID_CAMERA_3D_CAPTURE */
+/* #define MSDK_SCENARIO_ID_CAMERA_3D_VIDEO ACDK_SCENARIO_ID_CAMERA_3D_VIDEO */
+/*******************************************************************************
+*
+********************************************************************************/
+
+/*******************************************************************************
+*
+********************************************************************************/
+/* for new simplifed sensor driver */
+typedef struct {
+ MUINT32(*SensorOpen)(void);
+ MUINT32(*SensorGetInfo)(MUINT32 *pScenarioId[2], MSDK_SENSOR_INFO_STRUCT * pSensorInfo[2], MSDK_SENSOR_CONFIG_STRUCT * pSensorConfigData[2]);
+ MUINT32(*SensorGetResolution)(MSDK_SENSOR_RESOLUTION_INFO_STRUCT * pSensorResolution[2]);
+ MUINT32(*SensorFeatureControl)(CAMERA_DUAL_CAMERA_SENSOR_ENUM InvokeCamera, MSDK_SENSOR_FEATURE_ENUM FeatureId, MUINT8 *pFeaturePara, MUINT32 *pFeatureParaLen);
+ MUINT32(*SensorControl)(MSDK_SCENARIO_ID_ENUM ScenarioId, MSDK_SENSOR_EXPOSURE_WINDOW_STRUCT *pImageWindow, MSDK_SENSOR_CONFIG_STRUCT *pSensorConfigData);
+ MUINT32(*SensorClose)(void);
+} MULTI_SENSOR_FUNCTION_STRUCT, *PMULTI_SENSOR_FUNCTION_STRUCT;
+
+typedef struct {
+ MUINT32(*SensorOpen)(void);
+ MUINT32(*SensorGetInfo)(MUINT32 *pScenarioId[2], MSDK_SENSOR_INFO_STRUCT * pSensorInfo[2], MSDK_SENSOR_CONFIG_STRUCT *pSensorConfigData[2]);
+ MUINT32(*SensorGetResolution)(MSDK_SENSOR_RESOLUTION_INFO_STRUCT * pSensorResolution[2]);
+ MUINT32(*SensorFeatureControl)(CAMERA_DUAL_CAMERA_SENSOR_ENUM InvokeCamera, MSDK_SENSOR_FEATURE_ENUM FeatureId, MUINT8 *pFeaturePara, MUINT32 *pFeatureParaLen);
+ MUINT32(*SensorControl)(CAMERA_DUAL_CAMERA_SENSOR_ENUM InvokeCamera, MSDK_SCENARIO_ID_ENUM ScenarioId, MSDK_SENSOR_EXPOSURE_WINDOW_STRUCT *pImageWindow, MSDK_SENSOR_CONFIG_STRUCT *pSensorConfigData);
+ MUINT32(*SensorClose)(void);
+} MULTI_SENSOR_FUNCTION_STRUCT2, *PMULTI_SENSOR_FUNCTION_STRUCT2;
+
+
+typedef struct {
+ MUINT32(*SensorOpen)(void);
+ MUINT32(*SensorGetInfo)(MSDK_SCENARIO_ID_ENUM ScenarioId, MSDK_SENSOR_INFO_STRUCT *pSensorInfo,
+ MSDK_SENSOR_CONFIG_STRUCT *pSensorConfigData);
+ MUINT32(*SensorGetResolution)(MSDK_SENSOR_RESOLUTION_INFO_STRUCT *pSensorResolution);
+ MUINT32(*SensorFeatureControl)(MSDK_SENSOR_FEATURE_ENUM FeatureId, MUINT8 *pFeaturePara, MUINT32 *pFeatureParaLen);
+ MUINT32(*SensorControl)(MSDK_SCENARIO_ID_ENUM ScenarioId, MSDK_SENSOR_EXPOSURE_WINDOW_STRUCT *pImageWindow, MSDK_SENSOR_CONFIG_STRUCT *pSensorConfigData);
+ MUINT32(*SensorClose)(void);
+#if 1 /* isp suspend resume patch */
+ MSDK_SCENARIO_ID_ENUM ScenarioId;
+ MSDK_SENSOR_EXPOSURE_WINDOW_STRUCT imageWindow;
+ MSDK_SENSOR_CONFIG_STRUCT sensorConfigData;
+#endif
+} SENSOR_FUNCTION_STRUCT, *PSENSOR_FUNCTION_STRUCT;
+
+typedef struct {
+ MUINT32 SensorId;
+ MUINT8 drvname[32];
+ MUINT32(*SensorInit)(PSENSOR_FUNCTION_STRUCT *pfFunc);
+} ACDK_KD_SENSOR_INIT_FUNCTION_STRUCT, *PACDK_KD_SENSOR_INIT_FUNCTION_STRUCT;
+
+#define KDIMGSENSOR_DUAL_SHIFT 16
+#define KDIMGSENSOR_DUAL_MASK_MSB 0xFFFF0000
+#define KDIMGSENSOR_DUAL_MASK_LSB 0x0000FFFF
+
+#define KDIMGSENSOR_NOSENSOR "non_sensor"
+
+#define KDIMGSENSOR_MAX_INVOKE_DRIVERS (2)
+#define KDIMGSENSOR_INVOKE_DRIVER_0 (0)
+#define KDIMGSENSOR_INVOKE_DRIVER_1 (1)
+
+/* For sensor synchronize the exposure time / sensor gain and isp gain. */
+typedef struct {
+ MUINT16 u2ISPNewRGain;
+ MUINT16 u2ISPNewGrGain;
+ MUINT16 u2ISPNewGbGain;
+ MUINT16 u2ISPNewBGain;
+ MUINT16 u2SensorNewExpTime;
+ MUINT16 u2SensorNewGain;
+ MUINT8 uSensorExpDelayFrame;
+ MUINT8 uSensorGainDelayFrame;
+ MUINT8 uISPGainDelayFrame;
+ MUINT8 uDummy;
+} ACDK_KD_SENSOR_SYNC_STRUCT, *PACDK_KD_SENSOR_SYNC_STRUCT;
+
+
+typedef struct {
+ MUINT16 AeRefLV05Shutter; /* Sensor AE Shutter under Lv05 */
+ MUINT16 AeRefLV13Shutter; /* Sensor AE Shutter under Lv13 */
+ MUINT16 AeRefLV05Gain; /* Sensor AE Gain under Lv05 */
+ MUINT16 AeRefLV13Gain; /* Sensor AE Gain under Lv13 */
+} SENSOR_AE_REF_STRUCT, *PSENSOR_AE_REF_STRUCT;
+
+
+typedef struct {
+ MUINT16 AwbRefD65Rgain; /* Sensor AWB R Gain under D65 */
+ MUINT16 AwbRefD65Bgain; /* Sensor AWB B Gain under D65 */
+ MUINT16 AwbRefCWFRgain; /* Sensor AWB R Gain under CWF */
+ MUINT16 AwbRefCWFBgain; /* Sensor AWB B Gain under CWF */
+} SENSOR_AWB_GAIN_REF_STRUCT, *PSENSOR_AWB_GAIN_REF_STRUCT;
+
+
+typedef struct {
+ SENSOR_AE_REF_STRUCT SensorAERef; /* AE Ref information for ASD usage */
+ SENSOR_AWB_GAIN_REF_STRUCT SensorAwbGainRef; /* AWB Gain Ref information for ASD usage */
+ MUINT32 SensorLV05LV13EVRef; /* EV calculate for ASD usage */
+} SENSOR_AE_AWB_REF_STRUCT, *PSENSOR_AE_AWB_REF_STRUCT;
+
+
+
+typedef struct {
+ MUINT16 AeCurShutter; /* Current Sensor AE Shutter */
+ MUINT16 AeCurGain; /* Current Sensor AE Gain */
+} SENSOR_AE_CUR_STRUCT, *PSENSOR_AE_CUR_STRUCT;
+
+
+typedef struct {
+ MUINT16 AwbCurRgain; /* Current Sensor AWB R Gain */
+ MUINT16 AwbCurBgain; /* Current Sensor AWB R Gain */
+} SENSOR_AWB_GAIN_CUR_STRUCT, *PSENSOR_AWB_GAIN_CUR_STRUCT;
+
+
+typedef struct {
+ SENSOR_AE_CUR_STRUCT SensorAECur; /* AE Current information for ASD usage */
+ SENSOR_AWB_GAIN_CUR_STRUCT SensorAwbGainCur; /* AWB Gain Current information for ASD usage */
+} SENSOR_AE_AWB_CUR_STRUCT, *PSENSOR_AE_AWB_CUR_STRUCT;
+
+
+typedef struct {
+ MUINT32 FNumber;
+ MUINT32 AEISOSpeed;
+ MUINT32 AWBMode;
+ MUINT32 CapExposureTime;
+ MUINT32 FlashLightTimeus;
+ MUINT32 RealISOValue;
+} SENSOR_EXIF_INFO_STRUCT, *PSENSOR_EXIF_INFO_STRUCT;
+
+typedef struct {
+ MUINT32 InitDelay;
+ MUINT32 EffectDelay;
+ MUINT32 AwbDelay;
+ MUINT32 AFSwitchDelayFrame;
+ MUINT32 EvDelay;
+ MUINT32 SatDelay;
+ MUINT32 BrightDelay;
+ MUINT32 ContrastDelay;
+} SENSOR_DELAY_INFO_STRUCT, *PSENSOR_DELAY_INFO_STRUCT;
+
+typedef struct {
+ MUINT32 u4Fno;
+ MUINT32 Exposuretime;
+ MUINT32 Gain;
+ MUINT32 GAIN_BASE;
+} SENSOR_FLASHLIGHT_AE_INFO_STRUCT, *PSENSOR_FLASHLIGHT_AE_INFO_STRUCT;
+
+/* multisensor driver */
+
+typedef struct {
+ MUINT32 drvIndex[KDIMGSENSOR_MAX_INVOKE_DRIVERS]; /* max 2 driver sumultaneously */
+} SENSOR_DRIVER_INDEX_STRUCT, *PSENSOR_DRIVER_INDEX_STRUCT;
+
+/* hardcode by GPIO module, should be sync with.(cust_gpio_usage.h) */
+#define GPIO_CAMERA_INVALID 0xFF
+/* */
+typedef enum {
+ IMGSENSOR_SOCKET_POS_NONE = 0xFFFFFFFF,
+ IMGSENSOR_SOCKET_POS_RIGHT = 0x1,
+ IMGSENSOR_SOCKET_POS_LEFT = 0x2,
+} IMGSENSOR_SOCKET_POSITION_ENUM;
+/* */
+typedef enum {
+ IMGSENSOR_SET_I2C_ID_STATE = 0x00,
+ IMGSENSOR_SET_I2C_ID_FORCE
+} IMGSENSOR_SET_I2C_ID_ENUM;
+
+
+
+typedef enum {
+ SENSOR_3A_AE_LOCK = 0,
+ SENSOR_3A_AE_UNLOCK,
+ SENSOR_3A_AWB_LOCK,
+ SENSOR_3A_AWB_UNLOCK,
+ SENSOR_3A_AE_ON,
+ SENSOR_3A_AE_OFF,
+ SENSOR_3A_AWB_ON,
+ SENSOR_3A_AWB_OFF,
+ SENSOR_3A_AF_INFINITY,
+ /* SENSOR_3A_AF_LOCK, */
+ /* SENSOR_3A_AF_UNLOCK, */
+} ACDK_SENSOR_3A_LOCK_ENUM;
+
+
+typedef struct {
+ MUINT32 tgtWidth;
+ MUINT32 tgtHeight;
+ MUINT32 quality;
+
+} ACDK_SENSOR_JPEG_OUTPUT_PARA;
+
+
+/* for JPEG Sensor Info */
+typedef struct {
+ MUINT32 u4FileSize; /* For input sensor width */
+ MUINT32 u4SrcW; /* For input sensor width */
+ MUINT32 u4SrcH; /* For input sensor height */
+} ACDK_SENSOR_JPEG_INFO;
+
+
+#endif /* _KD_IMGSENSOR_DATA_H */