#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 #include #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*/ MUINT32 iMirrorFlip; /* 0:IMAGE_NORMAL,1:IMAGE_H_MIRROR,2:IMAGE_V_MIRROR,3:IMAGE_HV_MIRROR*/ } 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 */