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 */
44enum 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 */
53enum 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)
62enum 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)
132enum 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)
174enum 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)
180enum 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)
187enum 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)
204enum 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)
216enum 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)
226enum 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)
236enum 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)
252enum 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)
264enum 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)
275enum 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)
285enum 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)
295enum 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)
309enum 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)
319enum 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)
329enum 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)
342enum 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)
351enum 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)
358enum 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)
392enum 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)
408enum 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)
416enum 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)
422enum 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)
428enum 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)
434enum 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)
440enum 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)
449enum 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)
456enum 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)
463enum 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)
470enum 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)
477enum 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)
484enum 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)
491enum 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)
498enum 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)
505enum 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)
514enum 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)
532enum 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)
541enum 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)
553enum 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)
560enum 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)
570enum 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)
577enum 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)
584enum 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)
591enum 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)
598enum 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)
605enum 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)
612enum 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)
619enum 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
654enum 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)
664enum 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)
684enum 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)
694enum 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)
708enum 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)
719enum 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)
732enum 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)
747enum 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)
756enum 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)
766enum 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)
776enum 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)
786enum 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)
793enum 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)
801enum 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)
808enum 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)
815enum 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)
838enum 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)
852enum 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)
870enum 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)
879enum 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)
894enum 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)
901enum 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)
908enum 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)
917enum 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)
927enum 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)
946enum 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)
956enum 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)
963enum 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)
970enum 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)
978enum 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)
990enum 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)
998enum 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)
1005enum 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)
1027enum v4l2_sensor_mode {
1028	SENSOR_CAMERA,
1029	SENSOR_MOVIE,
1030};
1031
1032typedef 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)
1051enum 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)
1058enum 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)
1064enum 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)
1070enum 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  */
1081enum 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 */
1098enum 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
1109enum 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
1124enum 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 */
1156struct 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 */
1172enum v4l2_recog_mode {
1173	V4L2_RECOGNITION_MODE_OFF	= 0,
1174	V4L2_RECOGNITION_MODE_ON	= 1,
1175	V4L2_RECOGNITION_MODE_LOCK	= 2,
1176};
1177
1178enum 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
1184enum 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
1190struct v4l2_recog_rect {
1191	enum	v4l2_recog_pattern  p;	/* detected pattern */
1192	struct	v4l2_rect  o;	/* detected area */
1193	__u32	reserved[4];
1194};
1195
1196struct v4l2_recog_data {
1197	__u8	detect_cnt;		/* detected object counter */
1198	struct	v4l2_rect	o;	/* detected area */
1199	__u32	reserved[4];
1200};
1201
1202struct 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