1 /*******************************************************************************************/
4 /*******************************************************************************************/
10 //#define CAPTURE_USE_VIDEO_SETTING
11 #define FULL_SIZE_30_FPS
12 //#define USE_MIPI_2_LANES //undefine this macro will use mipi 4 lanes
14 typedef enum group_enum
{
17 FRAME_RATE_LIMITATION
,
23 #define ENGINEER_START_ADDR 10
24 #define FACTORY_START_ADDR 0
26 typedef enum engineer_index
28 CMMCLK_CURRENT_INDEX
=ENGINEER_START_ADDR
,
30 } FACTORY_ENGINEER_INDEX
;
32 typedef enum register_index
34 SENSOR_BASEGAIN
=FACTORY_START_ADDR
,
40 } FACTORY_REGISTER_INDEX
;
44 SENSOR_REG_STRUCT Reg
[ENGINEER_END
];
45 SENSOR_REG_STRUCT CCT
[FACTORY_END_ADDR
];
46 } SENSOR_DATA_STRUCT
, *PSENSOR_DATA_STRUCT
;
52 SENSOR_MODE_VIDEO_NIGHT
,
53 SENSOR_MODE_SMALL_SIZE_END
=SENSOR_MODE_VIDEO_NIGHT
,
54 SENSOR_MODE_ZSD_PREVIEW
,
56 SENSOR_MODE_FULL_SIZE_END
=SENSOR_MODE_CAPTURE
57 } S5K5E2YA_SENSOR_MODE
;
61 kal_uint32 DummyPixels
;
62 kal_uint32 DummyLines
;
67 kal_uint32 pvPclk
; // x10 480 for 48MHZ
68 kal_uint32 capPclk
; // x10
72 kal_uint32 maxExposureLines
;
73 kal_uint16 sensorGain
;
74 kal_uint16 sensorBaseGain
;
77 S5K5E2YA_SENSOR_MODE sensorMode
;
79 kal_bool S5K5E2YAAutoFlickerMode
;
80 kal_bool S5K5E2YAVideoMode
;
81 kal_uint32 FixedFrameLength
;
83 }S5K5E2YA_PARA_STRUCT
,*PS5K5E2YA_PARA_STRUCT
;
85 //*************** +Sensor Framelength & Linelength ***************//
87 #define S5K5E2YA_PV_PERIOD_PIXEL_NUMS (2950)
88 #define S5K5E2YA_PV_PERIOD_LINE_NUMS (2000)
91 #define S5K5E2YA_VIDEO_PERIOD_PIXEL_NUMS (2950)
92 #define S5K5E2YA_VIDEO_PERIOD_LINE_NUMS (2000)
95 #define S5K5E2YA_FULL_PERIOD_PIXEL_NUMS (2950)
96 #define S5K5E2YA_FULL_PERIOD_LINE_NUMS (2025)
99 #define S5K5E2YA_ZSD_PERIOD_PIXEL_NUMS S5K5E2YA_FULL_PERIOD_PIXEL_NUMS
100 #define S5K5E2YA_ZSD_PERIOD_LINE_NUMS S5K5E2YA_FULL_PERIOD_LINE_NUMS
101 //*************** -Sensor Framelength & Linelength ***************//
103 //*************** +Sensor Output Size ***************//
104 #define S5K5E2YA_IMAGE_SENSOR_PV_WIDTH (1280)
105 #define S5K5E2YA_IMAGE_SENSOR_PV_HEIGHT (960)
107 #define S5K5E2YA_IMAGE_SENSOR_VIDEO_WIDTH (2560)
108 #define S5K5E2YA_IMAGE_SENSOR_VIDEO_HEIGHT (1440)
111 #define S5K5E2YA_IMAGE_SENSOR_FULL_WIDTH (2560)
112 #define S5K5E2YA_IMAGE_SENSOR_FULL_HEIGHT (1920)
115 #define S5K5E2YA_IMAGE_SENSOR_ZSD_WIDTH S5K5E2YA_IMAGE_SENSOR_FULL_WIDTH
116 #define S5K5E2YA_IMAGE_SENSOR_ZSD_HEIGHT S5K5E2YA_IMAGE_SENSOR_FULL_HEIGHT
117 //*************** -Sensor Output Size ***************//
120 /* SENSOR START/EDE POSITION */
121 #define S5K5E2YA_FULL_X_START (0)
122 #define S5K5E2YA_FULL_Y_START (0)
125 #define S5K5E2YA_PV_X_START (0)
126 #define S5K5E2YA_PV_Y_START (0)
129 #define S5K5E2YA_VIDEO_X_START (0)
130 #define S5K5E2YA_VIDEO_Y_START (0)
134 #define S5K5E2YA_MAX_ANALOG_GAIN (16)
135 #define S5K5E2YA_MIN_ANALOG_GAIN (1)
137 #define S5K5E2YA_MIN_LINE_LENGTH (0x0E68) //2724
138 #define S5K5E2YA_MIN_FRAME_LENGTH (0x0A0F) //532
140 #define S5K5E2YA_MAX_LINE_LENGTH 0xCCCC
141 #define S5K5E2YA_MAX_FRAME_LENGTH 0xFFFF
143 /* DUMMY NEEDS TO BE INSERTED */
144 /* SETUP TIME NEED TO BE INSERTED */
145 #define S5K5E2YA_IMAGE_SENSOR_PV_INSERTED_PIXELS 2 // Sync, Nosync=2
146 #define S5K5E2YA_IMAGE_SENSOR_PV_INSERTED_LINES 2
148 #define S5K5E2YA_IMAGE_SENSOR_FULL_INSERTED_PIXELS 4
149 #define S5K5E2YA_IMAGE_SENSOR_FULL_INSERTED_LINES 4
152 #define S5K5E2YAMIPI_WRITE_ID (0x20)
153 #define S5K5E2YAMIPI_READ_ID (0x21)
155 #define SENSOR_PCLK_PREVIEW (179200000)
156 #define SENSOR_PCLK_VIDEO SENSOR_PCLK_PREVIEW
157 #define SENSOR_PCLK_CAPTURE SENSOR_PCLK_PREVIEW
158 #define SENSOR_PCLK_ZSD SENSOR_PCLK_CAPTURE
161 #define S5K5E2YAMIPI_SENSOR_ID S5K5E2YA_SENSOR_ID
164 struct S5K5E2YA_MIPI_otp_struct
166 kal_uint16 customer_id
;
167 kal_uint16 module_integrator_id
;
171 kal_uint16 user_data
[5];
183 UINT32
S5K5E2YAMIPIOpen(void);
184 UINT32
S5K5E2YAMIPIGetResolution(MSDK_SENSOR_RESOLUTION_INFO_STRUCT
*pSensorResolution
);
185 UINT32
S5K5E2YAMIPIGetInfo(MSDK_SCENARIO_ID_ENUM ScenarioId
, MSDK_SENSOR_INFO_STRUCT
*pSensorInfo
, MSDK_SENSOR_CONFIG_STRUCT
*pSensorConfigData
);
186 UINT32
S5K5E2YAMIPIControl(MSDK_SCENARIO_ID_ENUM ScenarioId
, MSDK_SENSOR_EXPOSURE_WINDOW_STRUCT
*pImageWindow
, MSDK_SENSOR_CONFIG_STRUCT
*pSensorConfigData
);
187 UINT32
S5K5E2YAMIPIFeatureControl(MSDK_SENSOR_FEATURE_ENUM FeatureId
, UINT8
*pFeaturePara
,UINT32
*pFeatureParaLen
);
188 UINT32
S5K5E2YAMIPIClose(void);
191 #endif /* __SENSOR_H */