• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Video for Linux Two header file for samsung
3  *
4  * Copyright (C) 2009, Dongsoo Nathaniel Kim<dongsoo45.kim@samsung.com>
5  *
6  * This header file contains several v4l2 APIs to be proposed to v4l2
7  * community and until bein accepted, will be used restrictly in Samsung's
8  * camera interface driver FIMC.
9  *
10  * This program is free software; you can redistribute it and/or modify
11  * it under the terms of the GNU General Public License as published by
12  * the Free Software Foundation; either version 2 of the License, or
13  * (at your option) any later version.
14  */
15 
16 /*
17  * Copyright 2008, The Android Open Source Project
18  * Copyright 2010, Samsung Electronics Co. LTD
19  *
20  * Licensed under the Apache License, Version 2.0 (the "License");
21  * you may not use this file except in compliance with the License.
22  * You may obtain a copy of the License at
23  *
24  *      http://www.apache.org/licenses/LICENSE-2.0
25  *
26  * Unless required by applicable law or agreed to in writing, software
27  * distributed under the License is distributed toggle an "AS IS" BASIS,
28  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
29  * See the License for the specific language governing permissions and
30  * limitations under the License.
31  */
32 
33 #ifndef __LINUX_VIDEODEV2_EXYNOS_CAMERA_H
34 #define __LINUX_VIDEODEV2_EXYNOS_CAMERA_H
35 
36 /* Values for 'capabilities' field */
37 /* Object detection device */
38 #define V4L2_CAP_OBJ_RECOGNITION	0x10000000
39 /* strobe control */
40 #define V4L2_CAP_STROBE			0x20000000
41 
42 #define V4L2_CID_FOCUS_MODE		(V4L2_CID_CAMERA_CLASS_BASE+17)
43 /* Focus Methods */
44 enum v4l2_focus_mode {
45 	V4L2_FOCUS_MODE_AUTO		= 0,
46 	V4L2_FOCUS_MODE_MACRO		= 1,
47 	V4L2_FOCUS_MODE_MANUAL		= 2,
48 	V4L2_FOCUS_MODE_LASTP		= 2,
49 };
50 
51 #define V4L2_CID_ZOOM_MODE		(V4L2_CID_CAMERA_CLASS_BASE+18)
52 /* Zoom Methods */
53 enum v4l2_zoom_mode {
54 	V4L2_ZOOM_MODE_CONTINUOUS	= 0,
55 	V4L2_ZOOM_MODE_OPTICAL		= 1,
56 	V4L2_ZOOM_MODE_DIGITAL		= 2,
57 	V4L2_ZOOM_MODE_LASTP		= 2,
58 };
59 
60 /* Exposure Methods */
61 #define V4L2_CID_PHOTOMETRY		(V4L2_CID_CAMERA_CLASS_BASE+19)
62 enum v4l2_photometry_mode {
63 	V4L2_PHOTOMETRY_MULTISEG	= 0, /*Multi Segment*/
64 	V4L2_PHOTOMETRY_CWA		= 1, /*Centre Weighted Average*/
65 	V4L2_PHOTOMETRY_SPOT		= 2,
66 	V4L2_PHOTOMETRY_AFSPOT		= 3, /*Spot metering on focused point*/
67 	V4L2_PHOTOMETRY_LASTP		= V4L2_PHOTOMETRY_AFSPOT,
68 };
69 
70 /* Manual exposure control items menu type: iris, shutter, iso */
71 #define V4L2_CID_CAM_APERTURE	(V4L2_CID_CAMERA_CLASS_BASE+20)
72 #define V4L2_CID_CAM_SHUTTER	(V4L2_CID_CAMERA_CLASS_BASE+21)
73 #define V4L2_CID_CAM_ISO	(V4L2_CID_CAMERA_CLASS_BASE+22)
74 
75 /* Following CIDs are menu type */
76 #define V4L2_CID_SCENEMODE	(V4L2_CID_CAMERA_CLASS_BASE+23)
77 #define V4L2_CID_CAM_STABILIZE	(V4L2_CID_CAMERA_CLASS_BASE+24)
78 #define V4L2_CID_CAM_MULTISHOT	(V4L2_CID_CAMERA_CLASS_BASE+25)
79 
80 /* Control dynamic range */
81 #define V4L2_CID_CAM_DR		(V4L2_CID_CAMERA_CLASS_BASE+26)
82 
83 /* White balance preset control */
84 #define V4L2_CID_WHITE_BALANCE_PRESET	(V4L2_CID_CAMERA_CLASS_BASE+27)
85 #define V4L2_CID_CAM_SENSOR_FW_VER		(V4L2_CID_CAMERA_CLASS_BASE + 28)
86 #define V4L2_CID_CAM_PHONE_FW_VER		(V4L2_CID_CAMERA_CLASS_BASE + 29)
87 
88 /* CID extensions */
89 #define V4L2_CID_ROTATION		(V4L2_CID_PRIVATE_BASE + 0)
90 #define V4L2_CID_PADDR_Y		(V4L2_CID_PRIVATE_BASE + 1)
91 #define V4L2_CID_PADDR_CB		(V4L2_CID_PRIVATE_BASE + 2)
92 #define V4L2_CID_PADDR_CR		(V4L2_CID_PRIVATE_BASE + 3)
93 #define V4L2_CID_PADDR_CBCR		(V4L2_CID_PRIVATE_BASE + 4)
94 #define V4L2_CID_OVERLAY_AUTO		(V4L2_CID_PRIVATE_BASE + 5)
95 #define V4L2_CID_OVERLAY_VADDR0		(V4L2_CID_PRIVATE_BASE + 6)
96 #define V4L2_CID_OVERLAY_VADDR1		(V4L2_CID_PRIVATE_BASE + 7)
97 #define V4L2_CID_OVERLAY_VADDR2		(V4L2_CID_PRIVATE_BASE + 8)
98 #define V4L2_CID_OVLY_MODE		(V4L2_CID_PRIVATE_BASE + 9)
99 #define V4L2_CID_DST_INFO		(V4L2_CID_PRIVATE_BASE + 10)
100 /* UMP secure id control */
101 #define V4L2_CID_GET_UMP_SECURE_ID 	(V4L2_CID_PRIVATE_BASE + 11)
102 #define V4L2_CID_GET_PHY_SRC_YADDR 	(V4L2_CID_PRIVATE_BASE + 12)
103 #define V4L2_CID_GET_PHY_SRC_CADDR 	(V4L2_CID_PRIVATE_BASE + 13)
104 #define V4L2_CID_IMAGE_EFFECT_FN	(V4L2_CID_PRIVATE_BASE + 16)
105 #define V4L2_CID_IMAGE_EFFECT_APPLY	(V4L2_CID_PRIVATE_BASE + 17)
106 #define V4L2_CID_IMAGE_EFFECT_CB	(V4L2_CID_PRIVATE_BASE + 18)
107 #define V4L2_CID_IMAGE_EFFECT_CR	(V4L2_CID_PRIVATE_BASE + 19)
108 #define V4L2_CID_RESERVED_MEM_BASE_ADDR	(V4L2_CID_PRIVATE_BASE + 20)
109 #define V4L2_CID_FIMC_VERSION		(V4L2_CID_PRIVATE_BASE + 21)
110 
111 #define V4L2_CID_STREAM_PAUSE			(V4L2_CID_PRIVATE_BASE + 53)
112 #define V4L2_CID_CACHE_FLUSH			(V4L2_CID_PRIVATE_BASE + 61)
113 #define V4L2_CID_RESERVED_MEM_SIZE		(V4L2_CID_PRIVATE_BASE + 63)
114 
115 /* CID Extensions for camera sensor operations */
116 #define V4L2_CID_CAM_PREVIEW_ONOFF		(V4L2_CID_PRIVATE_BASE + 64)
117 #define V4L2_CID_CAM_CAPTURE			(V4L2_CID_PRIVATE_BASE + 65)
118 /* #define V4L2_CID_CAM_JPEG_MEMSIZE	(V4L2_CID_PRIVATE_BASE + 66) */
119 
120 #define V4L2_CID_CAM_DATE_INFO_YEAR           	(V4L2_CID_PRIVATE_BASE + 14)
121 #define V4L2_CID_CAM_DATE_INFO_MONTH           	(V4L2_CID_PRIVATE_BASE + 15)
122 #define V4L2_CID_CAM_DATE_INFO_DATE           	(V4L2_CID_PRIVATE_BASE + 22)
123 #define V4L2_CID_CAM_SENSOR_VER		           	(V4L2_CID_PRIVATE_BASE + 23)
124 #define V4L2_CID_CAM_FW_MINOR_VER           	(V4L2_CID_PRIVATE_BASE + 24)
125 #define V4L2_CID_CAM_FW_MAJOR_VER           	(V4L2_CID_PRIVATE_BASE + 25)
126 #define V4L2_CID_CAM_PRM_MINOR_VER           	(V4L2_CID_PRIVATE_BASE + 26)
127 #define V4L2_CID_CAM_PRM_MAJOR_VER           	(V4L2_CID_PRIVATE_BASE + 27)
128 #define V4L2_CID_CAM_FW_VER           	     	(V4L2_CID_PRIVATE_BASE + 28)
129 #define V4L2_CID_CAM_SET_FW_ADDR                (V4L2_CID_PRIVATE_BASE + 29)
130 #define V4L2_CID_CAM_SET_FW_SIZE                (V4L2_CID_PRIVATE_BASE + 30)
131 #define V4L2_CID_CAM_UPDATE_FW	(V4L2_CID_PRIVATE_BASE + 31)
132 enum v4l2_firmware_mode {
133 	FW_MODE_UPDATE,
134 	FW_MODE_VERSION,
135 	FW_MODE_DUMP,
136 };
137 
138 #define V4L2_CID_CAM_JPEG_MAIN_SIZE		(V4L2_CID_PRIVATE_BASE + 32)
139 #define V4L2_CID_CAM_JPEG_MAIN_OFFSET		(V4L2_CID_PRIVATE_BASE + 33)
140 #define V4L2_CID_CAM_JPEG_THUMB_SIZE		(V4L2_CID_PRIVATE_BASE + 34)
141 #define V4L2_CID_CAM_JPEG_THUMB_OFFSET		(V4L2_CID_PRIVATE_BASE + 35)
142 #define V4L2_CID_CAM_JPEG_POSTVIEW_OFFSET	(V4L2_CID_PRIVATE_BASE + 36)
143 #define V4L2_CID_CAM_JPEG_QUALITY	(V4L2_CID_PRIVATE_BASE + 37)
144 #define V4L2_CID_CAM_SENSOR_MAKER	(V4L2_CID_PRIVATE_BASE + 38)
145 #define V4L2_CID_CAM_SENSOR_OPTICAL	(V4L2_CID_PRIVATE_BASE + 39)
146 #define V4L2_CID_CAM_AF_VER_LOW		(V4L2_CID_PRIVATE_BASE + 40)
147 #define V4L2_CID_CAM_AF_VER_HIGH	(V4L2_CID_PRIVATE_BASE + 41)
148 #define V4L2_CID_CAM_GAMMA_RG_LOW	(V4L2_CID_PRIVATE_BASE + 42)
149 #define V4L2_CID_CAM_GAMMA_RG_HIGH	(V4L2_CID_PRIVATE_BASE + 43)
150 #define V4L2_CID_CAM_GAMMA_BG_LOW	(V4L2_CID_PRIVATE_BASE + 44)
151 #define V4L2_CID_CAM_GAMMA_BG_HIGH	(V4L2_CID_PRIVATE_BASE + 45)
152 #define V4L2_CID_CAM_DUMP_FW		(V4L2_CID_PRIVATE_BASE + 46)
153 #define V4L2_CID_CAM_GET_DUMP_SIZE  (V4L2_CID_PRIVATE_BASE + 47)
154 #define V4L2_CID_CAMERA_VT_MODE			(V4L2_CID_PRIVATE_BASE + 48)
155 #define V4L2_CID_CAMERA_VGA_BLUR  	(V4L2_CID_PRIVATE_BASE + 49)
156 #define V4L2_CID_CAMERA_CAPTURE  	(V4L2_CID_PRIVATE_BASE + 50)
157 #define V4L2_CID_CAMERA_HDR	 	(V4L2_CID_PRIVATE_BASE + 51)
158 
159 #define V4L2_CID_MAIN_SW_DATE_INFO_YEAR		(V4L2_CID_PRIVATE_BASE + 54)
160 #define V4L2_CID_MAIN_SW_DATE_INFO_MONTH	(V4L2_CID_PRIVATE_BASE + 55)
161 #define V4L2_CID_MAIN_SW_DATE_INFO_DATE		(V4L2_CID_PRIVATE_BASE + 56)
162 #define V4L2_CID_MAIN_SW_FW_MINOR_VER		(V4L2_CID_PRIVATE_BASE + 57)
163 #define V4L2_CID_MAIN_SW_FW_MAJOR_VER		(V4L2_CID_PRIVATE_BASE + 58)
164 #define V4L2_CID_MAIN_SW_PRM_MINOR_VER		(V4L2_CID_PRIVATE_BASE + 59)
165 #define V4L2_CID_MAIN_SW_PRM_MAJOR_VER		(V4L2_CID_PRIVATE_BASE + 60)
166 
167 #define V4L2_CID_FIMC_IS_BASE			(V4L2_CTRL_CLASS_CAMERA | 0x1000)
168 #define V4L2_CID_FIMC_IS_TUNE_BASE		(V4L2_CTRL_CLASS_CAMERA | 0x2000)
169 
170 #define V4L2_CID_IS_LOAD_FW			(V4L2_CID_FIMC_IS_BASE + 10)
171 #define V4L2_CID_IS_INIT_PARAM			(V4L2_CID_FIMC_IS_BASE + 11)
172 #define V4L2_CID_IS_RESET			(V4L2_CID_FIMC_IS_BASE + 12)
173 #define V4L2_CID_IS_S_POWER			(V4L2_CID_FIMC_IS_BASE + 13)
174 enum is_set_power {
175 	IS_POWER_OFF,
176 	IS_POWER_ON
177 };
178 
179 #define V4L2_CID_IS_S_STREAM			(V4L2_CID_FIMC_IS_BASE + 14)
180 enum is_set_stream {
181 	IS_DISABLE_STREAM,
182 	IS_ENABLE_STREAM
183 };
184 
185 #define V4L2_CID_IS_S_SCENARIO_MODE		(V4L2_CID_FIMC_IS_BASE + 15)
186 #define V4L2_CID_IS_S_FORMAT_SCENARIO		(V4L2_CID_FIMC_IS_BASE + 16)
187 enum scenario_mode {
188 	IS_MODE_PREVIEW_STILL,
189 	IS_MODE_PREVIEW_VIDEO,
190 	IS_MODE_CAPTURE_STILL,
191 	IS_MODE_CAPTURE_VIDEO,
192 	IS_MODE_MAX
193 };
194 
195 #define V4L2_CID_IS_G_COMPLETES             (V4L2_CID_FIMC_IS_BASE + 18)
196 
197 /* global */
198 #define V4L2_CID_IS_CAMERA_SHOT_MODE_NORMAL	(V4L2_CID_FIMC_IS_BASE + 101)
199 /* value : 1 : single shot , >=2 : continuous shot */
200 
201 #define V4L2_CID_IS_CAMERA_SENSOR_NUM		(V4L2_CID_FIMC_IS_BASE + 201)
202 
203 #define V4L2_CID_IS_CAMERA_FOCUS_MODE		(V4L2_CID_FIMC_IS_BASE + 401)
204 enum is_focus_mode {
205 	IS_FOCUS_MODE_AUTO,
206 	IS_FOCUS_MODE_MACRO,
207 	IS_FOCUS_MODE_INFINITY,
208 	IS_FOCUS_MODE_CONTINUOUS,
209 	IS_FOCUS_MODE_TOUCH,
210 	IS_FOCUS_MODE_FACEDETECT,
211 	IS_FOCUS_MODE_IDLE,
212 	IS_FOCUS_MODE_MAX,
213 };
214 
215 #define V4L2_CID_IS_CAMERA_FLASH_MODE		(V4L2_CID_FIMC_IS_BASE + 402)
216 enum is_flash_mode {
217 	IS_FLASH_MODE_OFF,
218 	IS_FLASH_MODE_AUTO,
219 	IS_FLASH_MODE_AUTO_REDEYE,
220 	IS_FLASH_MODE_ON,
221 	IS_FLASH_MODE_TORCH,
222 	IS_FLASH_MODE_MAX
223 };
224 
225 #define V4L2_CID_IS_CAMERA_AWB_MODE		(V4L2_CID_FIMC_IS_BASE + 403)
226 enum is_awb_mode {
227 	IS_AWB_AUTO,
228 	IS_AWB_DAYLIGHT,
229 	IS_AWB_CLOUDY,
230 	IS_AWB_TUNGSTEN,
231 	IS_AWB_FLUORESCENT,
232 	IS_AWB_MAX
233 };
234 
235 #define V4L2_CID_IS_CAMERA_IMAGE_EFFECT		(V4L2_CID_FIMC_IS_BASE + 404)
236 enum is_image_effect {
237 	IS_IMAGE_EFFECT_DISABLE,
238 	IS_IMAGE_EFFECT_MONOCHROME,
239 	IS_IMAGE_EFFECT_NEGATIVE_MONO,
240 	IS_IMAGE_EFFECT_NEGATIVE_COLOR,
241 	IS_IMAGE_EFFECT_SEPIA,
242 	IS_IMAGE_EFFECT_SEPIA_CB,
243 	IS_IMAGE_EFFECT_SEPIA_CR,
244 	IS_IMAGE_EFFECT_NEGATIVE,
245 	IS_IMAGE_EFFECT_ARTFREEZE,
246 	IS_IMAGE_EFFECT_EMBOSSING,
247 	IS_IMAGE_EFFECT_SILHOUETTE,
248 	IS_IMAGE_EFFECT_MAX
249 };
250 
251 #define V4L2_CID_IS_CAMERA_ISO			(V4L2_CID_FIMC_IS_BASE + 405)
252 enum is_iso {
253 	IS_ISO_AUTO,
254 	IS_ISO_50,
255 	IS_ISO_100,
256 	IS_ISO_200,
257 	IS_ISO_400,
258 	IS_ISO_800,
259 	IS_ISO_1600,
260 	IS_ISO_MAX
261 };
262 
263 #define V4L2_CID_IS_CAMERA_CONTRAST		(V4L2_CID_FIMC_IS_BASE + 406)
264 enum is_contrast {
265 	IS_CONTRAST_AUTO,
266 	IS_CONTRAST_MINUS_2,
267 	IS_CONTRAST_MINUS_1,
268 	IS_CONTRAST_DEFAULT,
269 	IS_CONTRAST_PLUS_1,
270 	IS_CONTRAST_PLUS_2,
271 	IS_CONTRAST_MAX
272 };
273 
274 #define V4L2_CID_IS_CAMERA_SATURATION		(V4L2_CID_FIMC_IS_BASE + 407)
275 enum is_saturation {
276 	IS_SATURATION_MINUS_2,
277 	IS_SATURATION_MINUS_1,
278 	IS_SATURATION_DEFAULT,
279 	IS_SATURATION_PLUS_1,
280 	IS_SATURATION_PLUS_2,
281 	IS_SATURATION_MAX
282 };
283 
284 #define V4L2_CID_IS_CAMERA_SHARPNESS		(V4L2_CID_FIMC_IS_BASE + 408)
285 enum is_sharpness {
286 	IS_SHARPNESS_MINUS_2,
287 	IS_SHARPNESS_MINUS_1,
288 	IS_SHARPNESS_DEFAULT,
289 	IS_SHARPNESS_PLUS_1,
290 	IS_SHARPNESS_PLUS_2,
291 	IS_SHARPNESS_MAX
292 };
293 
294 #define V4L2_CID_IS_CAMERA_EXPOSURE		(V4L2_CID_FIMC_IS_BASE + 409)
295 enum is_exposure {
296 	IS_EXPOSURE_MINUS_4,
297 	IS_EXPOSURE_MINUS_3,
298 	IS_EXPOSURE_MINUS_2,
299 	IS_EXPOSURE_MINUS_1,
300 	IS_EXPOSURE_DEFAULT,
301 	IS_EXPOSURE_PLUS_1,
302 	IS_EXPOSURE_PLUS_2,
303 	IS_EXPOSURE_PLUS_3,
304 	IS_EXPOSURE_PLUS_4,
305 	IS_EXPOSURE_MAX
306 };
307 
308 #define V4L2_CID_IS_CAMERA_BRIGHTNESS		(V4L2_CID_FIMC_IS_BASE + 410)
309 enum is_brightness {
310 	IS_BRIGHTNESS_MINUS_2,
311 	IS_BRIGHTNESS_MINUS_1,
312 	IS_BRIGHTNESS_DEFAULT,
313 	IS_BRIGHTNESS_PLUS_1,
314 	IS_BRIGHTNESS_PLUS_2,
315 	IS_BRIGHTNESS_MAX
316 };
317 
318 #define V4L2_CID_IS_CAMERA_HUE			(V4L2_CID_FIMC_IS_BASE + 411)
319 enum is_hue {
320 	IS_HUE_MINUS_2,
321 	IS_HUE_MINUS_1,
322 	IS_HUE_DEFAULT,
323 	IS_HUE_PLUS_1,
324 	IS_HUE_PLUS_2,
325 	IS_HUE_MAX
326 };
327 
328 #define V4L2_CID_IS_CAMERA_METERING		(V4L2_CID_FIMC_IS_BASE + 412)
329 enum is_metering {
330 	IS_METERING_AVERAGE,
331 	IS_METERING_SPOT,
332 	IS_METERING_MATRIX,
333 	IS_METERING_CENTER,
334 	IS_METERING_MAX
335 };
336 #define V4L2_CID_IS_CAMERA_METERING_POSITION_X	(V4L2_CID_FIMC_IS_BASE + 500)
337 #define V4L2_CID_IS_CAMERA_METERING_POSITION_Y	(V4L2_CID_FIMC_IS_BASE + 501)
338 #define V4L2_CID_IS_CAMERA_METERING_WINDOW_X	(V4L2_CID_FIMC_IS_BASE + 502)
339 #define V4L2_CID_IS_CAMERA_METERING_WINDOW_Y	(V4L2_CID_FIMC_IS_BASE + 503)
340 
341 #define V4L2_CID_IS_CAMERA_AFC_MODE		(V4L2_CID_FIMC_IS_BASE + 413)
342 enum is_afc_mode {
343 	IS_AFC_DISABLE,
344 	IS_AFC_AUTO,
345 	IS_AFC_MANUAL_50HZ,
346 	IS_AFC_MANUAL_60HZ,
347 	IS_AFC_MAX
348 };
349 
350 #define V4L2_CID_IS_AWB_LOCK_UNLOCK		(V4L2_CID_FIMC_IS_BASE + 496)
351 enum is_awb_lock_unlock {
352 	IS_AWB_LOCK,
353 	IS_AWB_UNLOCK,
354 	IS_AWB_LOCK_UNLOCK_MAX
355 };
356 
357 #define V4L2_CID_IS_AE_LOCK_UNLOCK		(V4L2_CID_FIMC_IS_BASE + 497)
358 enum is_ae_lock_unlock {
359 	IS_AE_LOCK,
360 	IS_AE_UNLOCK,
361 	IS_AE_LOCK_UNLOCK_MAX
362 };
363 
364 #define V4L2_CID_IS_FD_GET_FACE_COUNT			(V4L2_CID_FIMC_IS_BASE + 600)
365 #define V4L2_CID_IS_FD_GET_FACE_FRAME_NUMBER		(V4L2_CID_FIMC_IS_BASE + 601)
366 #define V4L2_CID_IS_FD_GET_FACE_CONFIDENCE		(V4L2_CID_FIMC_IS_BASE + 602)
367 #define V4L2_CID_IS_FD_GET_FACE_SMILE_LEVEL		(V4L2_CID_FIMC_IS_BASE + 603)
368 #define V4L2_CID_IS_FD_GET_FACE_BLINK_LEVEL		(V4L2_CID_FIMC_IS_BASE + 604)
369 #define V4L2_CID_IS_FD_GET_FACE_TOPLEFT_X		(V4L2_CID_FIMC_IS_BASE + 605)
370 #define V4L2_CID_IS_FD_GET_FACE_TOPLEFT_Y		(V4L2_CID_FIMC_IS_BASE + 606)
371 #define V4L2_CID_IS_FD_GET_FACE_BOTTOMRIGHT_X		(V4L2_CID_FIMC_IS_BASE + 607)
372 #define V4L2_CID_IS_FD_GET_FACE_BOTTOMRIGHT_Y		(V4L2_CID_FIMC_IS_BASE + 608)
373 #define V4L2_CID_IS_FD_GET_LEFT_EYE_TOPLEFT_X		(V4L2_CID_FIMC_IS_BASE + 609)
374 #define V4L2_CID_IS_FD_GET_LEFT_EYE_TOPLEFT_Y		(V4L2_CID_FIMC_IS_BASE + 610)
375 #define V4L2_CID_IS_FD_GET_LEFT_EYE_BOTTOMRIGHT_X	(V4L2_CID_FIMC_IS_BASE + 611)
376 #define V4L2_CID_IS_FD_GET_LEFT_EYE_BOTTOMRIGHT_Y	(V4L2_CID_FIMC_IS_BASE + 612)
377 #define V4L2_CID_IS_FD_GET_RIGHT_EYE_TOPLEFT_X		(V4L2_CID_FIMC_IS_BASE + 613)
378 #define V4L2_CID_IS_FD_GET_RIGHT_EYE_TOPLEFT_Y		(V4L2_CID_FIMC_IS_BASE + 614)
379 #define V4L2_CID_IS_FD_GET_RIGHT_EYE_BOTTOMRIGHT_X	(V4L2_CID_FIMC_IS_BASE + 615)
380 #define V4L2_CID_IS_FD_GET_RIGHT_EYE_BOTTOMRIGHT_Y	(V4L2_CID_FIMC_IS_BASE + 616)
381 #define V4L2_CID_IS_FD_GET_MOUTH_TOPLEFT_X		(V4L2_CID_FIMC_IS_BASE + 617)
382 #define V4L2_CID_IS_FD_GET_MOUTH_TOPLEFT_Y		(V4L2_CID_FIMC_IS_BASE + 618)
383 #define V4L2_CID_IS_FD_GET_MOUTH_BOTTOMRIGHT_X		(V4L2_CID_FIMC_IS_BASE + 619)
384 #define V4L2_CID_IS_FD_GET_MOUTH_BOTTOMRIGHT_Y		(V4L2_CID_FIMC_IS_BASE + 620)
385 #define V4L2_CID_IS_FD_GET_ANGLE			(V4L2_CID_FIMC_IS_BASE + 621)
386 #define V4L2_CID_IS_FD_GET_YAW_ANGLE			(V4L2_CID_FIMC_IS_BASE + 622)
387 #define V4L2_CID_IS_FD_GET_NEXT				(V4L2_CID_FIMC_IS_BASE + 623)
388 #define V4L2_CID_IS_FD_GET_DATA				(V4L2_CID_FIMC_IS_BASE + 624)
389 
390 #define V4L2_CID_IS_FD_SET_MAX_FACE_NUMBER		(V4L2_CID_FIMC_IS_BASE + 650)
391 #define V4L2_CID_IS_FD_SET_ROLL_ANGLE			(V4L2_CID_FIMC_IS_BASE + 651)
392 enum is_fd_roll_angle {
393 	/* 0, 45, 0, -45 */
394 	IS_FD_ROLL_ANGLE_BASIC		= 0,
395 	/* 0, 30, 0, -30, 0, 45, 0, -45 */
396 	IS_FD_ROLL_ANGLE_PRECISE_BASIC	= 1,
397 	/* 0, 90, 0, -90 */
398 	IS_FD_ROLL_ANGLE_SIDES		= 2,
399 	/* 0, 90, 0, -90 0, 45, 0, -45 */
400 	IS_FD_ROLL_ANGLE_PRECISE_SIDES	= 3,
401 	/* 0, 90, 0, -90, 0, 180 */
402 	IS_FD_ROLL_ANGLE_FULL		= 4,
403 	/* 0, 90, 0, -90, 0, 180, 0, 135, 0, -135 */
404 	IS_FD_ROLL_ANGLE_PRECISE_FULL	= 5,
405 };
406 
407 #define V4L2_CID_IS_FD_SET_YAW_ANGLE			(V4L2_CID_FIMC_IS_BASE + 652)
408 enum is_fd_yaw_angle {
409 	IS_FD_YAW_ANGLE_0	= 0,
410 	IS_FD_YAW_ANGLE_45	= 1,
411 	IS_FD_YAW_ANGLE_90	= 2,
412 	IS_FD_YAW_ANGLE_45_90	= 3,
413 };
414 
415 #define V4L2_CID_IS_FD_SET_SMILE_MODE			(V4L2_CID_FIMC_IS_BASE + 653)
416 enum is_fd_smile_mode {
417 	IS_FD_SMILE_MODE_DISABLE	= 0,
418 	IS_FD_SMILE_MODE_ENABLE		= 1,
419 };
420 
421 #define V4L2_CID_IS_FD_SET_BLINK_MODE			(V4L2_CID_FIMC_IS_BASE + 654)
422 enum is_fd_blink_mode {
423 	IS_FD_BLINK_MODE_DISABLE	= 0,
424 	IS_FD_BLINK_MODE_ENABLE		= 1,
425 };
426 
427 #define V4L2_CID_IS_FD_SET_EYE_DETECT_MODE		(V4L2_CID_FIMC_IS_BASE + 655)
428 enum is_fd_eye_detect_mode {
429 	IS_FD_EYE_DETECT_DISABLE	= 0,
430 	IS_FD_EYE_DETECT_ENABLE		= 1,
431 };
432 
433 #define V4L2_CID_IS_FD_SET_MOUTH_DETECT_MODE		(V4L2_CID_FIMC_IS_BASE + 656)
434 enum is_fd_mouth_detect_mode {
435 	IS_FD_MOUTH_DETECT_DISABLE	= 0,
436 	IS_FD_MOUTH_DETECT_ENABLE	= 1,
437 };
438 
439 #define V4L2_CID_IS_FD_SET_ORIENTATION_MODE		(V4L2_CID_FIMC_IS_BASE + 657)
440 enum is_fd_orientation_mode {
441 	IS_FD_ORIENTATION_DISABLE	= 0,
442 	IS_FD_ORIENTATION_ENABLE	= 1,
443 };
444 
445 #define V4L2_CID_IS_FD_SET_ORIENTATION			(V4L2_CID_FIMC_IS_BASE + 658)
446 #define V4L2_CID_IS_FD_SET_DATA_ADDRESS			(V4L2_CID_FIMC_IS_BASE + 659)
447 
448 #define V4L2_CID_IS_SET_ISP			(V4L2_CID_FIMC_IS_BASE + 440)
449 enum is_isp_bypass_mode {
450 	IS_ISP_BYPASS_DISABLE,
451 	IS_ISP_BYPASS_ENABLE,
452 	IS_ISP_BYPASS_MAX
453 };
454 
455 #define V4L2_CID_IS_SET_DRC			(V4L2_CID_FIMC_IS_BASE + 441)
456 enum is_drc_bypass_mode {
457 	IS_DRC_BYPASS_DISABLE,
458 	IS_DRC_BYPASS_ENABLE,
459 	IS_DRC_BYPASS_MAX
460 };
461 
462 #define V4L2_CID_IS_SET_FD			(V4L2_CID_FIMC_IS_BASE + 442)
463 enum is_fd_bypass_mode {
464 	IS_FD_BYPASS_DISABLE,
465 	IS_FD_BYPASS_ENABLE,
466 	IS_FD_BYPASS_MAX
467 };
468 
469 #define V4L2_CID_IS_SET_ODC			(V4L2_CID_FIMC_IS_BASE + 443)
470 enum is_odc_bypass_mode {
471 	IS_ODC_BYPASS_DISABLE,
472 	IS_ODC_BYPASS_ENABLE,
473 	IS_ODC_BYPASS_MAX
474 };
475 
476 #define V4L2_CID_IS_SET_DIS			(V4L2_CID_FIMC_IS_BASE + 444)
477 enum is_dis_bypass_mode {
478 	IS_DIS_BYPASS_DISABLE,
479 	IS_DIS_BYPASS_ENABLE,
480 	IS_DIS_BYPASS_MAX
481 };
482 
483 #define V4L2_CID_IS_SET_3DNR			(V4L2_CID_FIMC_IS_BASE + 445)
484 enum is_tdnr_bypass_mode {
485 	IS_TDNR_BYPASS_DISABLE,
486 	IS_TDNR_BYPASS_ENABLE,
487 	IS_TDNR_BYPASS_MAX
488 };
489 
490 #define V4L2_CID_IS_SET_SCALERC			(V4L2_CID_FIMC_IS_BASE + 446)
491 enum is_scalerc_bypass_mode {
492 	IS_SCALERC_BYPASS_DISABLE,
493 	IS_SCALERC_BYPASS_ENABLE,
494 	IS_SCALERC_BYPASS_MAX
495 };
496 
497 #define V4L2_CID_IS_SET_SCALERP			(V4L2_CID_FIMC_IS_BASE + 446)
498 enum is_scalerp_bypass_mode {
499 	IS_SCALERP_BYPASS_DISABLE,
500 	IS_SCALERP_BYPASS_ENABLE,
501 	IS_SCALERP_BYPASS_MAX
502 };
503 
504 #define V4L2_CID_IS_ROTATION_MODE		(V4L2_CID_FIMC_IS_BASE + 450)
505 enum is_rotation_mode {
506 	IS_ROTATION_0,
507 	IS_ROTATION_90,
508 	IS_ROTATION_180,
509 	IS_ROTATION_270,
510 	IS_ROTATION_MAX
511 };
512 
513 #define V4L2_CID_IS_3DNR_1ST_FRAME_MODE		(V4L2_CID_FIMC_IS_BASE + 451)
514 enum is_tdnr_1st_frame_mode {
515 	IS_TDNR_1ST_FRAME_NOPROCESSING,
516 	IS_TDNR_1ST_FRAME_2DNR,
517 	IS_TDNR_MAX
518 };
519 
520 #define V4L2_CID_IS_CAMERA_OBJECT_POSITION_X	(V4L2_CID_FIMC_IS_BASE + 452)
521 #define V4L2_CID_IS_CAMERA_OBJECT_POSITION_Y	(V4L2_CID_FIMC_IS_BASE + 453)
522 #define V4L2_CID_IS_CAMERA_WINDOW_SIZE_X	(V4L2_CID_FIMC_IS_BASE + 454)
523 #define V4L2_CID_IS_CAMERA_WINDOW_SIZE_Y	(V4L2_CID_FIMC_IS_BASE + 455)
524 
525 #define V4L2_CID_IS_CAMERA_EXIF_EXPTIME		(V4L2_CID_FIMC_IS_BASE + 456)
526 #define V4L2_CID_IS_CAMERA_EXIF_FLASH		(V4L2_CID_FIMC_IS_BASE + 457)
527 #define V4L2_CID_IS_CAMERA_EXIF_ISO		(V4L2_CID_FIMC_IS_BASE + 458)
528 #define V4L2_CID_IS_CAMERA_EXIF_SHUTTERSPEED	(V4L2_CID_FIMC_IS_BASE + 459)
529 #define V4L2_CID_IS_CAMERA_EXIF_BRIGHTNESS	(V4L2_CID_FIMC_IS_BASE + 460)
530 
531 #define V4L2_CID_IS_CAMERA_ISP_SEL_INPUT	(V4L2_CID_FIMC_IS_BASE + 461)
532 enum is_isp_sel_input {
533 	IS_ISP_INPUT_OTF,
534 	IS_ISP_INPUT_DMA1,
535 	IS_ISP_INPUT_DMA2,
536 	IS_ISP_INPUT_DMA12,
537 	IS_ISP_INPUT_MAX
538 };
539 
540 #define V4L2_CID_IS_CAMERA_ISP_SEL_OUTPUT	(V4L2_CID_FIMC_IS_BASE + 462)
541 enum is_isp_sel_output {
542 	IS_ISP_OUTPUT_OTF,
543 	IS_ISP_OUTPUT_DMA1,
544 	IS_ISP_OUTPUT_DMA2,
545 	IS_ISP_OUTPUT_DMA12,
546 	IS_ISP_OUTPUT_OTF_DMA1,
547 	IS_ISP_OUTPUT_OTF_DMA2,
548 	IS_ISP_OUTPUT_OTF_DMA12,
549 	IS_ISP_OUTPUT_MAX
550 };
551 
552 #define V4L2_CID_IS_CAMERA_DRC_SEL_INPUT	(V4L2_CID_FIMC_IS_BASE + 463)
553 enum is_drc_sel_input {
554 	IS_DRC_INPUT_OTF,
555 	IS_DRC_INPUT_DMA,
556 	IS_DRC_INPUT_MAX
557 };
558 
559 #define V4L2_CID_IS_CAMERA_FD_SEL_INPUT		(V4L2_CID_FIMC_IS_BASE + 464)
560 enum is_fd_sel_input {
561 	IS_FD_INPUT_OTF,
562 	IS_FD_INPUT_DMA,
563 	IS_FD_INPUT_MAX
564 };
565 
566 #define V4L2_CID_IS_CAMERA_INIT_WIDTH		(V4L2_CID_FIMC_IS_BASE + 465)
567 #define V4L2_CID_IS_CAMERA_INIT_HEIGHT		(V4L2_CID_FIMC_IS_BASE + 466)
568 
569 #define V4L2_CID_IS_CMD_ISP			(V4L2_CID_FIMC_IS_BASE + 467)
570 enum is_isp_cmd_mode {
571 	IS_ISP_COMMAND_STOP,
572 	IS_ISP_COMMAND_START,
573 	IS_ISP_COMMAND_MAX
574 };
575 
576 #define V4L2_CID_IS_CMD_DRC			(V4L2_CID_FIMC_IS_BASE + 468)
577 enum is_drc_cmd_mode {
578 	IS_DRC_COMMAND_STOP,
579 	IS_DRC_COMMAND_START,
580 	IS_DRC_COMMAND_MAX
581 };
582 
583 #define V4L2_CID_IS_CMD_FD			(V4L2_CID_FIMC_IS_BASE + 469)
584 enum is_fd_cmd_mode {
585 	IS_FD_COMMAND_STOP,
586 	IS_FD_COMMAND_START,
587 	IS_FD_COMMAND_MAX
588 };
589 
590 #define V4L2_CID_IS_CMD_ODC			(V4L2_CID_FIMC_IS_BASE + 470)
591 enum is_odc_cmd_mode {
592 	IS_ODC_COMMAND_STOP,
593 	IS_ODC_COMMAND_START,
594 	IS_ODC_COMMAND_MAX
595 };
596 
597 #define V4L2_CID_IS_CMD_DIS			(V4L2_CID_FIMC_IS_BASE + 471)
598 enum is_dis_cmd_mode {
599 	IS_DIS_COMMAND_STOP,
600 	IS_DIS_COMMAND_START,
601 	IS_DIS_COMMAND_MAX
602 };
603 
604 #define V4L2_CID_IS_CMD_TDNR			(V4L2_CID_FIMC_IS_BASE + 472)
605 enum is_tdnr_cmd_mode {
606 	IS_TDNR_COMMAND_STOP,
607 	IS_TDNR_COMMAND_START,
608 	IS_TDNR_COMMAND_MAX
609 };
610 
611 #define V4L2_CID_IS_CMD_SCALERC			(V4L2_CID_FIMC_IS_BASE + 473)
612 enum is_scalerc_cmd_mode {
613 	IS_SCALERC_COMMAND_STOP,
614 	IS_SCALERC_COMMAND_START,
615 	IS_SCALERC_COMMAND_MAX
616 };
617 
618 #define V4L2_CID_IS_CMD_SCALERP			(V4L2_CID_FIMC_IS_BASE + 474)
619 enum is_scalerp_cmd_mode {
620 	IS_SCALERP_COMMAND_STOP,
621 	IS_SCALERP_COMMAND_START,
622 	IS_SCALERP_COMMAND_MAX
623 };
624 
625 #define V4L2_CID_IS_GET_SENSOR_OFFSET_X		(V4L2_CID_FIMC_IS_BASE + 480)
626 #define V4L2_CID_IS_GET_SENSOR_OFFSET_Y		(V4L2_CID_FIMC_IS_BASE + 481)
627 #define V4L2_CID_IS_GET_SENSOR_WIDTH		(V4L2_CID_FIMC_IS_BASE + 482)
628 #define V4L2_CID_IS_GET_SENSOR_HEIGHT		(V4L2_CID_FIMC_IS_BASE + 483)
629 
630 #define V4L2_CID_IS_GET_FRAME_VALID		(V4L2_CID_FIMC_IS_BASE + 484)
631 #define V4L2_CID_IS_SET_FRAME_VALID		(V4L2_CID_FIMC_IS_BASE + 485)
632 #define V4L2_CID_IS_GET_FRAME_BADMARK		(V4L2_CID_FIMC_IS_BASE + 486)
633 #define V4L2_CID_IS_SET_FRAME_BADMARK		(V4L2_CID_FIMC_IS_BASE + 487)
634 #define V4L2_CID_IS_GET_FRAME_CAPTURED		(V4L2_CID_FIMC_IS_BASE + 488)
635 #define V4L2_CID_IS_SET_FRAME_CAPTURED		(V4L2_CID_FIMC_IS_BASE + 489)
636 #define V4L2_CID_IS_SET_FRAME_NUMBER		(V4L2_CID_FIMC_IS_BASE + 490)
637 #define V4L2_CID_IS_GET_FRAME_NUMBER		(V4L2_CID_FIMC_IS_BASE + 491)
638 #define V4L2_CID_IS_CLEAR_FRAME_NUMBER		(V4L2_CID_FIMC_IS_BASE + 492)
639 #define V4L2_CID_IS_GET_LOSTED_FRAME_NUMBER	(V4L2_CID_FIMC_IS_BASE + 493)
640 #define V4L2_CID_IS_ISP_DMA_BUFFER_NUM		(V4L2_CID_FIMC_IS_BASE + 494)
641 #define V4L2_CID_IS_ISP_DMA_BUFFER_ADDRESS	(V4L2_CID_FIMC_IS_BASE + 495)
642 
643 #define V4L2_CID_IS_ZOOM_STATE			(V4L2_CID_FIMC_IS_BASE + 660)
644 #define V4L2_CID_IS_ZOOM_MAX_LEVEL		(V4L2_CID_FIMC_IS_BASE + 661)
645 #define V4L2_CID_IS_ZOOM			(V4L2_CID_FIMC_IS_BASE + 662)
646 #define V4L2_CID_IS_FW_DEBUG_REGION_ADDR	(V4L2_CID_FIMC_IS_BASE + 663)
647 
648 #define V4L2_CID_IS_TUNE_SEL_ENTRY		(V4L2_CID_FIMC_IS_TUNE_BASE)
649 #define V4L2_CID_IS_TUNE_SENSOR_EXPOSURE	(V4L2_CID_FIMC_IS_TUNE_BASE + 1)
650 #define V4L2_CID_IS_TUNE_SENSOR_ANALOG_GAIN	(V4L2_CID_FIMC_IS_TUNE_BASE + 2)
651 #define V4L2_CID_IS_TUNE_SENSOR_FRAME_RATE	(V4L2_CID_FIMC_IS_TUNE_BASE + 3)
652 #define V4L2_CID_IS_TUNE_SENSOR_ACTUATOR_POS	(V4L2_CID_FIMC_IS_TUNE_BASE + 4)
653 
654 enum v4l2_blur {
655 	BLUR_LEVEL_0 = 0,
656 	BLUR_LEVEL_1,
657 	BLUR_LEVEL_2,
658 	BLUR_LEVEL_3,
659 	BLUR_LEVEL_MAX,
660 };
661 
662 #if 1
663 #define V4L2_CID_CAMERA_SCENE_MODE		(V4L2_CID_PRIVATE_BASE+70)
664 enum v4l2_scene_mode {
665 	SCENE_MODE_BASE,
666 	SCENE_MODE_NONE,
667 	SCENE_MODE_PORTRAIT,
668 	SCENE_MODE_NIGHTSHOT,
669 	SCENE_MODE_BACK_LIGHT,
670 	SCENE_MODE_LANDSCAPE,
671 	SCENE_MODE_SPORTS,
672 	SCENE_MODE_PARTY_INDOOR,
673 	SCENE_MODE_BEACH_SNOW,
674 	SCENE_MODE_SUNSET,
675 	SCENE_MODE_DUSK_DAWN,
676 	SCENE_MODE_FALL_COLOR,
677 	SCENE_MODE_FIREWORKS,
678 	SCENE_MODE_TEXT,
679 	SCENE_MODE_CANDLE_LIGHT,
680 	SCENE_MODE_MAX,
681 };
682 
683 #define V4L2_CID_CAMERA_FLASH_MODE		(V4L2_CID_PRIVATE_BASE+71)
684 enum v4l2_flash_mode {
685 	FLASH_MODE_BASE,
686 	FLASH_MODE_OFF,
687 	FLASH_MODE_AUTO,
688 	FLASH_MODE_ON,
689 	FLASH_MODE_TORCH,
690 	FLASH_MODE_MAX,
691 };
692 
693 #define V4L2_CID_CAMERA_BRIGHTNESS		(V4L2_CID_PRIVATE_BASE+72)
694 enum v4l2_ev_mode {
695 	EV_MINUS_4	= -4,
696 	EV_MINUS_3	= -3,
697 	EV_MINUS_2	= -2,
698 	EV_MINUS_1	= -1,
699 	EV_DEFAULT	= 0,
700 	EV_PLUS_1	= 1,
701 	EV_PLUS_2	= 2,
702 	EV_PLUS_3	= 3,
703 	EV_PLUS_4	= 4,
704 	EV_MAX,
705 };
706 
707 #define V4L2_CID_CAMERA_WHITE_BALANCE	(V4L2_CID_PRIVATE_BASE+73)
708 enum v4l2_wb_mode {
709 	WHITE_BALANCE_BASE = 0,
710 	WHITE_BALANCE_AUTO,
711 	WHITE_BALANCE_SUNNY,
712 	WHITE_BALANCE_CLOUDY,
713 	WHITE_BALANCE_TUNGSTEN,
714 	WHITE_BALANCE_FLUORESCENT,
715 	WHITE_BALANCE_MAX,
716 };
717 
718 #define V4L2_CID_CAMERA_EFFECT			(V4L2_CID_PRIVATE_BASE+74)
719 enum v4l2_effect_mode {
720 	IMAGE_EFFECT_BASE = 0,
721 	IMAGE_EFFECT_NONE,
722 	IMAGE_EFFECT_BNW,
723 	IMAGE_EFFECT_SEPIA,
724 	IMAGE_EFFECT_AQUA,
725 	IMAGE_EFFECT_ANTIQUE,
726 	IMAGE_EFFECT_NEGATIVE,
727 	IMAGE_EFFECT_SHARPEN,
728 	IMAGE_EFFECT_MAX,
729 };
730 
731 #define V4L2_CID_CAMERA_ISO				(V4L2_CID_PRIVATE_BASE+75)
732 enum v4l2_iso_mode {
733 	ISO_AUTO = 0,
734 	ISO_50,
735 	ISO_100,
736 	ISO_200,
737 	ISO_400,
738 	ISO_800,
739 	ISO_1600,
740 	ISO_SPORTS,
741 	ISO_NIGHT,
742 	ISO_MOVIE,
743 	ISO_MAX,
744 };
745 
746 #define V4L2_CID_CAMERA_METERING			(V4L2_CID_PRIVATE_BASE+76)
747 enum v4l2_metering_mode {
748 	METERING_BASE = 0,
749 	METERING_MATRIX,
750 	METERING_CENTER,
751 	METERING_SPOT,
752 	METERING_MAX,
753 };
754 
755 #define V4L2_CID_CAMERA_CONTRAST			(V4L2_CID_PRIVATE_BASE+77)
756 enum v4l2_contrast_mode {
757 	CONTRAST_MINUS_2 = 0,
758 	CONTRAST_MINUS_1,
759 	CONTRAST_DEFAULT,
760 	CONTRAST_PLUS_1,
761 	CONTRAST_PLUS_2,
762 	CONTRAST_MAX,
763 };
764 
765 #define V4L2_CID_CAMERA_SATURATION		(V4L2_CID_PRIVATE_BASE+78)
766 enum v4l2_saturation_mode {
767 	SATURATION_MINUS_2 = 0,
768 	SATURATION_MINUS_1,
769 	SATURATION_DEFAULT,
770 	SATURATION_PLUS_1,
771 	SATURATION_PLUS_2,
772 	SATURATION_MAX,
773 };
774 
775 #define V4L2_CID_CAMERA_SHARPNESS		(V4L2_CID_PRIVATE_BASE+79)
776 enum v4l2_sharpness_mode {
777 	SHARPNESS_MINUS_2 = 0,
778 	SHARPNESS_MINUS_1,
779 	SHARPNESS_DEFAULT,
780 	SHARPNESS_PLUS_1,
781 	SHARPNESS_PLUS_2,
782 	SHARPNESS_MAX,
783 };
784 
785 #define V4L2_CID_CAMERA_WDR				(V4L2_CID_PRIVATE_BASE+80)
786 enum v4l2_wdr_mode {
787 	WDR_OFF,
788 	WDR_ON,
789 	WDR_MAX,
790 };
791 
792 #define V4L2_CID_CAMERA_ANTI_SHAKE		(V4L2_CID_PRIVATE_BASE+81)
793 enum v4l2_anti_shake_mode {
794 	ANTI_SHAKE_OFF,
795 	ANTI_SHAKE_STILL_ON,
796 	ANTI_SHAKE_MOVIE_ON,
797 	ANTI_SHAKE_MAX,
798 };
799 
800 #define V4L2_CID_CAMERA_TOUCH_AF_START_STOP		(V4L2_CID_PRIVATE_BASE+82)
801 enum v4l2_touch_af {
802 	TOUCH_AF_STOP = 0,
803 	TOUCH_AF_START,
804 	TOUCH_AF_MAX,
805 };
806 
807 #define V4L2_CID_CAMERA_SMART_AUTO		(V4L2_CID_PRIVATE_BASE+83)
808 enum v4l2_smart_auto {
809 	SMART_AUTO_OFF = 0,
810 	SMART_AUTO_ON,
811 	SMART_AUTO_MAX,
812 };
813 
814 #define V4L2_CID_CAMERA_VINTAGE_MODE		(V4L2_CID_PRIVATE_BASE+84)
815 enum v4l2_vintage_mode {
816 	VINTAGE_MODE_BASE,
817 	VINTAGE_MODE_OFF,
818 	VINTAGE_MODE_NORMAL,
819 	VINTAGE_MODE_WARM,
820 	VINTAGE_MODE_COOL,
821 	VINTAGE_MODE_BNW,
822 	VINTAGE_MODE_MAX,
823 };
824 
825 #define V4L2_CID_CAMERA_JPEG_QUALITY		(V4L2_CID_PRIVATE_BASE+85)
826 /* (V4L2_CID_PRIVATE_BASE+86) */
827 #define V4L2_CID_CAMERA_GPS_LATITUDE		(V4L2_CID_CAMERA_CLASS_BASE+30)
828 /* (V4L2_CID_PRIVATE_BASE+87) */
829 #define V4L2_CID_CAMERA_GPS_LONGITUDE	(V4L2_CID_CAMERA_CLASS_BASE + 31)
830 /* (V4L2_CID_PRIVATE_BASE+88) */
831 #define V4L2_CID_CAMERA_GPS_TIMESTAMP	(V4L2_CID_CAMERA_CLASS_BASE + 32)
832 /* (V4L2_CID_PRIVATE_BASE+89)*/
833 #define V4L2_CID_CAMERA_GPS_ALTITUDE	(V4L2_CID_CAMERA_CLASS_BASE + 33)
834 #define V4L2_CID_CAMERA_EXIF_TIME_INFO	(V4L2_CID_CAMERA_CLASS_BASE + 34)
835 #define V4L2_CID_CAMERA_GPS_PROCESSINGMETHOD			(V4L2_CID_CAMERA_CLASS_BASE+35)
836 
837 #define V4L2_CID_FOCUS_AUTO_MODE				(V4L2_CID_CAMERA_CLASS_BASE+36)
838 enum v4l2_focus_mode_type {
839 	V4L2_FOCUS_AUTO_NORMAL = 0,
840 	V4L2_FOCUS_AUTO_MACRO,
841 	V4L2_FOCUS_AUTO_CONTINUOUS,
842 	V4L2_FOCUS_AUTO_FACE_DETECTION,
843 	V4L2_FOCUS_AUTO_RECTANGLE,
844 	V4L2_FOCUS_AUTO_MAX,
845 };
846 #define V4L2_CID_FOCUS_AUTO_RECTANGLE_LEFT		(V4L2_CID_CAMERA_CLASS_BASE+37)
847 #define V4L2_CID_FOCUS_AUTO_RECTANGLE_TOP		(V4L2_CID_CAMERA_CLASS_BASE+38)
848 #define V4L2_CID_FOCUS_AUTO_RECTANGLE_WIDTH		(V4L2_CID_CAMERA_CLASS_BASE+39)
849 #define V4L2_CID_FOCUS_AUTO_RECTANGLE_HEIGHT		(V4L2_CID_CAMERA_CLASS_BASE+40)
850 
851 #define V4L2_CID_CAMERA_ZOOM				(V4L2_CID_PRIVATE_BASE+90)
852 enum v4l2_zoom_level {
853 	ZOOM_LEVEL_0 = 0,
854 	ZOOM_LEVEL_1,
855 	ZOOM_LEVEL_2,
856 	ZOOM_LEVEL_3,
857 	ZOOM_LEVEL_4,
858 	ZOOM_LEVEL_5,
859 	ZOOM_LEVEL_6,
860 	ZOOM_LEVEL_7,
861 	ZOOM_LEVEL_8,
862 	ZOOM_LEVEL_9,
863 	ZOOM_LEVEL_10,
864 	ZOOM_LEVEL_11,
865 	ZOOM_LEVEL_12,
866 	ZOOM_LEVEL_MAX = 31,
867 };
868 
869 #define V4L2_CID_CAMERA_FACE_DETECTION		(V4L2_CID_PRIVATE_BASE+91)
870 enum v4l2_face_detection {
871 	FACE_DETECTION_OFF = 0,
872 	FACE_DETECTION_ON,
873 	FACE_DETECTION_NOLINE,
874 	FACE_DETECTION_ON_BEAUTY,
875 	FACE_DETECTION_MAX,
876 };
877 
878 #define V4L2_CID_CAMERA_SMART_AUTO_STATUS		(V4L2_CID_PRIVATE_BASE+92)
879 enum v4l2_smart_auto_status {
880 	SMART_AUTO_STATUS_AUTO = 0,
881 	SMART_AUTO_STATUS_LANDSCAPE,
882 	SMART_AUTO_STATUS_PORTRAIT,
883 	SMART_AUTO_STATUS_MACRO,
884 	SMART_AUTO_STATUS_NIGHT,
885 	SMART_AUTO_STATUS_PORTRAIT_NIGHT,
886 	SMART_AUTO_STATUS_BACKLIT,
887 	SMART_AUTO_STATUS_PORTRAIT_BACKLIT,
888 	SMART_AUTO_STATUS_ANTISHAKE,
889 	SMART_AUTO_STATUS_PORTRAIT_ANTISHAKE,
890 	SMART_AUTO_STATUS_MAX,
891 };
892 
893 #define V4L2_CID_CAMERA_SET_AUTO_FOCUS		(V4L2_CID_PRIVATE_BASE+93)
894 enum v4l2_auto_focus {
895 	AUTO_FOCUS_OFF = 0,
896 	AUTO_FOCUS_ON,
897 	AUTO_FOCUS_MAX,
898 };
899 
900 #define V4L2_CID_CAMERA_BEAUTY_SHOT		(V4L2_CID_PRIVATE_BASE+94)
901 enum v4l2_beauty_shot {
902 	BEAUTY_SHOT_OFF = 0,
903 	BEAUTY_SHOT_ON,
904 	BEAUTY_SHOT_MAX,
905 };
906 
907 #define V4L2_CID_CAMERA_AEAWB_LOCK_UNLOCK		(V4L2_CID_PRIVATE_BASE+95)
908 enum v4l2_ae_awb_lockunlock {
909 	AE_UNLOCK_AWB_UNLOCK = 0,
910 	AE_LOCK_AWB_UNLOCK,
911 	AE_UNLOCK_AWB_LOCK,
912 	AE_LOCK_AWB_LOCK,
913 	AE_AWB_MAX
914 };
915 
916 #define V4L2_CID_CAMERA_FACEDETECT_LOCKUNLOCK	(V4L2_CID_PRIVATE_BASE+96)
917 enum v4l2_face_lock {
918 	FACE_LOCK_OFF = 0,
919 	FACE_LOCK_ON,
920 	FIRST_FACE_TRACKING,
921 	FACE_LOCK_MAX,
922 };
923 
924 #define V4L2_CID_CAMERA_OBJECT_POSITION_X	(V4L2_CID_PRIVATE_BASE+97)
925 #define V4L2_CID_CAMERA_OBJECT_POSITION_Y	(V4L2_CID_PRIVATE_BASE+98)
926 #define V4L2_CID_CAMERA_FOCUS_MODE		(V4L2_CID_PRIVATE_BASE+99)
927 enum v4l2_focusmode {
928 	FOCUS_MODE_AUTO = 0,
929 	FOCUS_MODE_MACRO,
930 	FOCUS_MODE_FACEDETECT,
931 	FOCUS_MODE_AUTO_DEFAULT,
932 	FOCUS_MODE_MACRO_DEFAULT,
933 	FOCUS_MODE_FACEDETECT_DEFAULT,
934 	FOCUS_MODE_INFINITY,
935 	FOCUS_MODE_FIXED,
936 	FOCUS_MODE_CONTINUOUS,
937 	FOCUS_MODE_CONTINUOUS_PICTURE,
938 	FOCUS_MODE_CONTINUOUS_PICTURE_MACRO,
939 	FOCUS_MODE_CONTINUOUS_VIDEO,
940 	FOCUS_MODE_TOUCH,
941 	FOCUS_MODE_MAX,
942 	FOCUS_MODE_DEFAULT = (1 << 8),
943 };
944 
945 #define V4L2_CID_CAMERA_OBJ_TRACKING_STATUS	(V4L2_CID_PRIVATE_BASE+100)
946 enum v4l2_obj_tracking_status {
947 	OBJECT_TRACKING_STATUS_BASE,
948 	OBJECT_TRACKING_STATUS_PROGRESSING,
949 	OBJECT_TRACKING_STATUS_SUCCESS,
950 	OBJECT_TRACKING_STATUS_FAIL,
951 	OBJECT_TRACKING_STATUS_MISSING,
952 	OBJECT_TRACKING_STATUS_MAX,
953 };
954 
955 #define V4L2_CID_CAMERA_OBJ_TRACKING_START_STOP	(V4L2_CID_PRIVATE_BASE+101)
956 enum v4l2_ot_start_stop {
957 	OT_STOP = 0,
958 	OT_START,
959 	OT_MAX,
960 };
961 
962 #define V4L2_CID_CAMERA_CAF_START_STOP	(V4L2_CID_PRIVATE_BASE+102)
963 enum v4l2_caf_start_stop {
964 	CAF_STOP = 0,
965 	CAF_START,
966 	CAF_MAX,
967 };
968 
969 #define V4L2_CID_CAMERA_AUTO_FOCUS_RESULT		(V4L2_CID_PRIVATE_BASE+103)
970 enum v4l2_af_status {
971 	CAMERA_AF_STATUS_IN_PROGRESS = 0,
972 	CAMERA_AF_STATUS_SUCCESS,
973 	CAMERA_AF_STATUS_FAIL,
974 	CAMERA_AF_STATUS_1ST_SUCCESS,
975 	CAMERA_AF_STATUS_MAX,
976 };
977 #define V4L2_CID_CAMERA_FRAME_RATE			(V4L2_CID_PRIVATE_BASE+104)
978 enum v4l2_frame_rate {
979 	FRAME_RATE_AUTO = 0,
980 	FRAME_RATE_7 = 7,
981 	FRAME_RATE_15 = 15,
982 	FRAME_RATE_20 = 20,
983 	FRAME_RATE_30 = 30,
984 	FRAME_RATE_60 = 60,
985 	FRAME_RATE_120 = 120,
986 	FRAME_RATE_MAX
987 };
988 
989 #define V4L2_CID_CAMERA_ANTI_BANDING					(V4L2_CID_PRIVATE_BASE+105)
990 enum v4l2_anti_banding{
991 	ANTI_BANDING_AUTO = 0,
992 	ANTI_BANDING_50HZ = 1,
993 	ANTI_BANDING_60HZ = 2,
994 	ANTI_BANDING_OFF = 3,
995 };
996 
997 #define V4L2_CID_CAMERA_SET_GAMMA	(V4L2_CID_PRIVATE_BASE+106)
998 enum v4l2_gamma_mode{
999 	GAMMA_OFF = 0,
1000 	GAMMA_ON = 1,
1001 	GAMMA_MAX,
1002 };
1003 
1004 #define V4L2_CID_CAMERA_SET_SLOW_AE	(V4L2_CID_PRIVATE_BASE+107)
1005 enum v4l2_slow_ae_mode{
1006 	SLOW_AE_OFF,
1007 	SLOW_AE_ON,
1008 	SLOW_AE_MAX,
1009 };
1010 
1011 #define V4L2_CID_CAMERA_BATCH_REFLECTION					(V4L2_CID_PRIVATE_BASE+108)
1012 #define V4L2_CID_CAMERA_EXIF_ORIENTATION					(V4L2_CID_PRIVATE_BASE+109)
1013 
1014 /* s1_camera [ Defense process by ESD input ] */
1015 #define V4L2_CID_CAMERA_RESET			(V4L2_CID_PRIVATE_BASE+111)
1016 #define V4L2_CID_CAMERA_CHECK_DATALINE						(V4L2_CID_PRIVATE_BASE+112)
1017 #define V4L2_CID_CAMERA_CHECK_DATALINE_STOP					(V4L2_CID_PRIVATE_BASE+113)
1018 
1019 #endif
1020 
1021 /* Modify NTTS1 */
1022 #if defined(CONFIG_ARIES_NTT)
1023 #define V4L2_CID_CAMERA_AE_AWB_DISABLE_LOCK					(V4L2_CID_PRIVATE_BASE+114)
1024 #endif
1025 #define V4L2_CID_CAMERA_THUMBNAIL_NULL                                  (V4L2_CID_PRIVATE_BASE+115)
1026 #define V4L2_CID_CAMERA_SENSOR_MODE					(V4L2_CID_PRIVATE_BASE+116)
1027 enum v4l2_sensor_mode {
1028 	SENSOR_CAMERA,
1029 	SENSOR_MOVIE,
1030 };
1031 
1032 typedef enum {
1033 	STREAM_MODE_CAM_OFF,
1034 	STREAM_MODE_CAM_ON,
1035 	STREAM_MODE_MOVIE_OFF,
1036 	STREAM_MODE_MOVIE_ON,
1037 } stream_mode_t;
1038 
1039 #define V4L2_CID_CAMERA_EXIF_EXPTIME				(V4L2_CID_PRIVATE_BASE+117)
1040 #define V4L2_CID_CAMERA_EXIF_FLASH					(V4L2_CID_PRIVATE_BASE+118)
1041 #define V4L2_CID_CAMERA_EXIF_ISO					(V4L2_CID_PRIVATE_BASE+119)
1042 #define V4L2_CID_CAMERA_EXIF_TV						(V4L2_CID_PRIVATE_BASE+120)
1043 #define V4L2_CID_CAMERA_EXIF_BV						(V4L2_CID_PRIVATE_BASE+121)
1044 #define V4L2_CID_CAMERA_EXIF_EBV					(V4L2_CID_PRIVATE_BASE+122)
1045 #define V4L2_CID_CAMERA_CHECK_ESD		(V4L2_CID_PRIVATE_BASE+123)
1046 #define V4L2_CID_CAMERA_APP_CHECK		(V4L2_CID_PRIVATE_BASE+124)
1047 #define V4L2_CID_CAMERA_BUSFREQ_LOCK		(V4L2_CID_PRIVATE_BASE+125)
1048 #define V4L2_CID_CAMERA_BUSFREQ_UNLOCK		(V4L2_CID_PRIVATE_BASE+126)
1049 
1050 #define V4L2_CID_CAMERA_FACE_ZOOM  (V4L2_CID_PRIVATE_BASE + 132)
1051 enum v4l2_face_zoom {
1052 	FACE_ZOOM_STOP = 0,
1053 	FACE_ZOOM_START
1054 };
1055 
1056 /* control for post processing block in ISP */
1057 #define V4L2_CID_CAMERA_SET_ODC				(V4L2_CID_PRIVATE_BASE+127)
1058 enum set_odc_mode {
1059 	CAMERA_ODC_ON,
1060 	CAMERA_ODC_OFF
1061 };
1062 
1063 #define V4L2_CID_CAMERA_SET_DIS				(V4L2_CID_PRIVATE_BASE+128)
1064 enum set_dis_mode {
1065 	CAMERA_DIS_ON,
1066 	CAMERA_DIS_OFF
1067 };
1068 
1069 #define V4L2_CID_CAMERA_SET_3DNR				(V4L2_CID_PRIVATE_BASE+129)
1070 enum set_3dnr_mode {
1071 	CAMERA_3DNR_ON,
1072 	CAMERA_3DNR_OFF
1073 };
1074 
1075 #define V4L2_CID_EMBEDDEDDATA_ENABLE				(V4L2_CID_PRIVATE_BASE+130)
1076 
1077 #define V4L2_CID_CAMERA_CHECK_SENSOR_STATUS			(V4L2_CID_PRIVATE_BASE+150)
1078 #define V4L2_CID_CAMERA_DEFAULT_FOCUS_POSITION			(V4L2_CID_PRIVATE_BASE+151)
1079 
1080 /*      Pixel format FOURCC depth  Description  */
1081 enum v4l2_pix_format_mode {
1082 	V4L2_PIX_FMT_MODE_PREVIEW,
1083 	V4L2_PIX_FMT_MODE_CAPTURE,
1084 	V4L2_PIX_FMT_MODE_HDR,
1085 	V4L2_PIX_FMT_MODE_VT_MIRROR,
1086 	V4L2_PIX_FMT_MODE_VT_NONMIRROR,
1087 };
1088 
1089 /* 12  Y/CbCr 4:2:0 64x32 macroblocks */
1090 #define V4L2_PIX_FMT_NV12T    v4l2_fourcc('T', 'V', '1', '2')
1091 #define V4L2_PIX_FMT_NV21T    v4l2_fourcc('T', 'V', '2', '1')
1092 #define V4L2_PIX_FMT_INTERLEAVED    v4l2_fourcc('I', 'T', 'L', 'V')
1093 
1094 /*
1095  *  * V4L2 extention for digital camera
1096  *   */
1097 /* Strobe flash light */
1098 enum v4l2_strobe_control {
1099 	/* turn off the flash light */
1100 	V4L2_STROBE_CONTROL_OFF		= 0,
1101 	/* turn on the flash light */
1102 	V4L2_STROBE_CONTROL_ON		= 1,
1103 	/* act guide light before splash */
1104 	V4L2_STROBE_CONTROL_AFGUIDE	= 2,
1105 	/* charge the flash light */
1106 	V4L2_STROBE_CONTROL_CHARGE	= 3,
1107 };
1108 
1109 enum v4l2_strobe_conf {
1110 	V4L2_STROBE_OFF			= 0,	/* Always off */
1111 	V4L2_STROBE_ON			= 1,	/* Always splashes */
1112 	/* Auto control presets */
1113 	V4L2_STROBE_AUTO		= 2,
1114 	V4L2_STROBE_REDEYE_REDUCTION	= 3,
1115 	V4L2_STROBE_SLOW_SYNC		= 4,
1116 	V4L2_STROBE_FRONT_CURTAIN	= 5,
1117 	V4L2_STROBE_REAR_CURTAIN	= 6,
1118 	/* Extra manual control presets */
1119 	/* keep turned on until turning off */
1120 	V4L2_STROBE_PERMANENT		= 7,
1121 	V4L2_STROBE_EXTERNAL		= 8,
1122 };
1123 
1124 enum v4l2_strobe_status {
1125 	V4L2_STROBE_STATUS_OFF		= 0,
1126 	/* while processing configurations */
1127 	V4L2_STROBE_STATUS_BUSY		= 1,
1128 	V4L2_STROBE_STATUS_ERR		= 2,
1129 	V4L2_STROBE_STATUS_CHARGING	= 3,
1130 	V4L2_STROBE_STATUS_CHARGED	= 4,
1131 };
1132 
1133 /* capabilities field */
1134 /* No strobe supported */
1135 #define V4L2_STROBE_CAP_NONE		0x0000
1136 /* Always flash off mode */
1137 #define V4L2_STROBE_CAP_OFF		0x0001
1138 /* Always use flash light mode */
1139 #define V4L2_STROBE_CAP_ON		0x0002
1140 /* Flashlight works automatic */
1141 #define V4L2_STROBE_CAP_AUTO		0x0004
1142 /* Red-eye reduction */
1143 #define V4L2_STROBE_CAP_REDEYE		0x0008
1144 /* Slow sync */
1145 #define V4L2_STROBE_CAP_SLOWSYNC	0x0010
1146 /* Front curtain */
1147 #define V4L2_STROBE_CAP_FRONT_CURTAIN	0x0020
1148 /* Rear curtain */
1149 #define V4L2_STROBE_CAP_REAR_CURTAIN	0x0040
1150 /* keep turned on until turning off */
1151 #define V4L2_STROBE_CAP_PERMANENT	0x0080
1152 /* use external strobe */
1153 #define V4L2_STROBE_CAP_EXTERNAL	0x0100
1154 
1155 /* Set mode and Get status */
1156 struct v4l2_strobe {
1157 	/* off/on/charge:0/1/2 */
1158 	enum	v4l2_strobe_control control;
1159 	/* supported strobe capabilities */
1160 	__u32	capabilities;
1161 	enum	v4l2_strobe_conf mode;
1162 	enum 	v4l2_strobe_status status;	/* read only */
1163 	/* default is 0 and range of value varies from each models */
1164 	__u32	flash_ev;
1165 	__u32	reserved[4];
1166 };
1167 
1168 #define VIDIOC_S_STROBE     _IOWR('V', 83, struct v4l2_strobe)
1169 #define VIDIOC_G_STROBE     _IOR('V', 84, struct v4l2_strobe)
1170 
1171 /* Object recognition and collateral actions */
1172 enum v4l2_recog_mode {
1173 	V4L2_RECOGNITION_MODE_OFF	= 0,
1174 	V4L2_RECOGNITION_MODE_ON	= 1,
1175 	V4L2_RECOGNITION_MODE_LOCK	= 2,
1176 };
1177 
1178 enum v4l2_recog_action {
1179 	V4L2_RECOGNITION_ACTION_NONE	= 0,	/* only recognition */
1180 	V4L2_RECOGNITION_ACTION_BLINK	= 1,	/* Capture on blinking */
1181 	V4L2_RECOGNITION_ACTION_SMILE	= 2,	/* Capture on smiling */
1182 };
1183 
1184 enum v4l2_recog_pattern {
1185 	V4L2_RECOG_PATTERN_FACE		= 0, /* Face */
1186 	V4L2_RECOG_PATTERN_HUMAN	= 1, /* Human */
1187 	V4L2_RECOG_PATTERN_CHAR		= 2, /* Character */
1188 };
1189 
1190 struct v4l2_recog_rect {
1191 	enum	v4l2_recog_pattern  p;	/* detected pattern */
1192 	struct	v4l2_rect  o;	/* detected area */
1193 	__u32	reserved[4];
1194 };
1195 
1196 struct v4l2_recog_data {
1197 	__u8	detect_cnt;		/* detected object counter */
1198 	struct	v4l2_rect	o;	/* detected area */
1199 	__u32	reserved[4];
1200 };
1201 
1202 struct v4l2_recognition {
1203 	enum v4l2_recog_mode	mode;
1204 
1205 	/* Which pattern to detect */
1206 	enum v4l2_recog_pattern  pattern;
1207 
1208 	/* How many object to detect */
1209 	__u8 	obj_num;
1210 
1211 	/* select detected object */
1212 	__u32	detect_idx;
1213 
1214 	/* read only :Get object coordination */
1215 	struct v4l2_recog_data	data;
1216 
1217 	enum v4l2_recog_action	action;
1218 	__u32	reserved[4];
1219 };
1220 
1221 #define VIDIOC_S_RECOGNITION	_IOWR('V', 85, struct v4l2_recognition)
1222 #define VIDIOC_G_RECOGNITION	_IOR('V', 86, struct v4l2_recognition)
1223 
1224 #endif /* __LINUX_VIDEODEV2_EXYNOS_CAMERA_H */
1225