import PULS_20180308
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / drivers / misc / mediatek / imgsensor / src / mt8127 / ov56702nd_mipi_raw / ov56702ndmipi_Sensor.h
1 /*****************************************************************************
2 *
3 * Filename:
4 * ---------
5 * OV56702NDmipi_Sensor.h
6 *
7 * Project:
8 * --------
9 * ALPS
10 *
11 * Description:
12 * ------------
13 * CMOS sensor header file
14 *
15 ****************************************************************************/
16 #ifndef _OV56702NDMIPI_SENSOR_H
17 #define _OV56702NDMIPI_SENSOR_H
18
19 typedef enum group_enum {
20 PRE_GAIN=0,
21 CMMCLK_CURRENT,
22 FRAME_RATE_LIMITATION,
23 REGISTER_EDITOR,
24 GROUP_TOTAL_NUMS
25 } FACTORY_GROUP_ENUM;
26
27
28 #define ENGINEER_START_ADDR 10
29 #define FACTORY_START_ADDR 0
30
31 typedef enum engineer_index
32 {
33 CMMCLK_CURRENT_INDEX=ENGINEER_START_ADDR,
34 ENGINEER_END
35 } FACTORY_ENGINEER_INDEX;
36
37 typedef enum register_index
38 {
39 SENSOR_BASEGAIN=FACTORY_START_ADDR,
40 PRE_GAIN_R_INDEX,
41 PRE_GAIN_Gr_INDEX,
42 PRE_GAIN_Gb_INDEX,
43 PRE_GAIN_B_INDEX,
44 FACTORY_END_ADDR
45 } FACTORY_REGISTER_INDEX;
46
47 typedef struct
48 {
49 SENSOR_REG_STRUCT Reg[ENGINEER_END];
50 SENSOR_REG_STRUCT CCT[FACTORY_END_ADDR];
51 } SENSOR_DATA_STRUCT, *PSENSOR_DATA_STRUCT;
52
53 typedef enum {
54 SENSOR_MODE_INIT = 0,
55 SENSOR_MODE_PREVIEW,
56 SENSOR_MODE_VIDEO,
57 SENSOR_MODE_CAPTURE
58 } OV56702ND_SENSOR_MODE;
59
60
61 typedef struct
62 {
63 kal_uint32 DummyPixels;
64 kal_uint32 DummyLines;
65
66 kal_uint32 pvShutter;
67 kal_uint32 pvGain;
68
69 kal_uint32 pvPclk;
70 kal_uint32 videoPclk;
71 kal_uint32 capPclk;
72
73 kal_uint32 shutter;
74
75 kal_uint16 sensorGlobalGain;
76 kal_uint16 ispBaseGain;
77 kal_uint16 realGain;
78
79 kal_int16 imgMirror;
80
81 OV56702ND_SENSOR_MODE sensorMode;
82
83 kal_bool OV56702NDAutoFlickerMode;
84 kal_bool OV56702NDVideoMode;
85
86 }OV56702ND_PARA_STRUCT,*POV56702ND_PARA_STRUCT;
87
88
89 #define OV56702ND_SHUTTER_MARGIN (4)
90 #define OV56702ND_GAIN_BASE (128)
91 #define OV56702ND_AUTOFLICKER_OFFSET_30 (296)
92 #define OV56702ND_AUTOFLICKER_OFFSET_25 (250)
93 #define OV56702ND_AUTOFLICKER_OFFSET_15 (146)
94 #define OV56702ND_PREVIEW_PCLK (102850000)
95 #define OV56702ND_VIDEO_PCLK (OV56702ND_PREVIEW_PCLK)
96 #define OV56702ND_CAPTURE_PCLK (102850000)
97
98 #define OV56702ND_MAX_FPS_PREVIEW (300)
99 #define OV56702ND_MAX_FPS_VIDEO (300)
100 #define OV56702ND_MAX_FPS_CAPTURE (250)
101 //#define OV56702ND_MAX_FPS_N3D (300)
102
103
104 //grab window
105 #define OV56702ND_IMAGE_SENSOR_PV_WIDTH (1296)
106 #define OV56702ND_IMAGE_SENSOR_PV_HEIGHT (972) //(960)
107 #define OV56702ND_IMAGE_SENSOR_VIDEO_WIDTH (OV56702ND_IMAGE_SENSOR_PV_WIDTH)
108 #define OV56702ND_IMAGE_SENSOR_VIDEO_HEIGHT (OV56702ND_IMAGE_SENSOR_PV_HEIGHT)
109 #define OV56702ND_IMAGE_SENSOR_FULL_WIDTH (2592)
110 #define OV56702ND_IMAGE_SENSOR_FULL_HEIGHT (1944)
111
112 #define OV56702ND_FULL_X_START (0)
113 #define OV56702ND_FULL_Y_START (0)
114 #define OV56702ND_PV_X_START (0)
115 #define OV56702ND_PV_Y_START (0)
116 #define OV56702ND_VIDEO_X_START (0)
117 #define OV56702ND_VIDEO_Y_START (0)
118
119 #define OV56702ND_MAX_ANALOG_GAIN (8)
120 #define OV56702ND_MIN_ANALOG_GAIN (1)
121
122
123 /* SENSOR PIXEL/LINE NUMBERS IN ONE PERIOD */
124 #define OV56702ND_PV_PERIOD_PIXEL_NUMS 0x068C //1676*2=>3352
125 #define OV56702ND_PV_PERIOD_LINE_NUMS 0x07FD //2045
126
127 #define OV56702ND_VIDEO_PERIOD_PIXEL_NUMS OV56702ND_PV_PERIOD_PIXEL_NUMS
128 #define OV56702ND_VIDEO_PERIOD_LINE_NUMS OV56702ND_PV_PERIOD_LINE_NUMS
129
130 #define OV56702ND_FULL_PERIOD_PIXEL_NUMS 0x07DC //2012*2 25fps
131 #define OV56702ND_FULL_PERIOD_LINE_NUMS 0x07FD //2045
132
133 #define OV56702NDMIPI_WRITE_ID (0x6c)
134 #define OV56702NDMIPI_READ_ID (0x6d)
135
136 #define OV56702NDMIPI_SENSOR_ID OV5670_SENSOR_ID
137
138
139 UINT32 OV56702NDMIPIOpen(void);
140 UINT32 OV56702NDMIPIGetResolution(MSDK_SENSOR_RESOLUTION_INFO_STRUCT *pSensorResolution);
141 UINT32 OV56702NDMIPIGetInfo(MSDK_SCENARIO_ID_ENUM ScenarioId, MSDK_SENSOR_INFO_STRUCT *pSensorInfo, MSDK_SENSOR_CONFIG_STRUCT *pSensorConfigData);
142 UINT32 OV56702NDMIPIControl(MSDK_SCENARIO_ID_ENUM ScenarioId, MSDK_SENSOR_EXPOSURE_WINDOW_STRUCT *pImageWindow, MSDK_SENSOR_CONFIG_STRUCT *pSensorConfigData);
143 UINT32 OV56702NDMIPIFeatureControl(MSDK_SENSOR_FEATURE_ENUM FeatureId, UINT8 *pFeaturePara,UINT32 *pFeatureParaLen);
144 UINT32 OV56702NDMIPIClose(void);
145
146 #endif
147