blob: fd27d39e61f05df53146df44b07d942d29c90653 [file] [log] [blame]
Chirayu Desai0a336cc2012-07-12 14:37:05 +05301/*
2 * Video for Linux Two header file for samsung
3 *
4 * Copyright (C) 2009, Samsung Electronics
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 * Alternatively, Licensed under the Apache License, Version 2.0 (the "License");
16 * you may not use this file except in compliance with the License.
17 * You may obtain a copy of the License at
18 *
19 * http://www.apache.org/licenses/LICENSE-2.0
20 *
21 * Unless required by applicable law or agreed to in writing, software
22 * distributed under the License is distributed on an "AS IS" BASIS,
23 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
24 * See the License for the specific language governing permissions and
25 * limitations under the License.
26 */
27
28#ifndef __LINUX_VIDEODEV2_SAMSUNG_H
29#define __LINUX_VIDEODEV2_SAMSUNG_H
30
31/* Values for 'capabilities' field */
32/* Object detection device */
33#define V4L2_CAP_OBJ_RECOGNITION 0x10000000
34/* strobe control */
35#define V4L2_CAP_STROBE 0x20000000
36
37#define V4L2_CID_FOCUS_MODE (V4L2_CID_CAMERA_CLASS_BASE + 17)
38/* Focus Methods */
39enum v4l2_focus_mode {
40 V4L2_FOCUS_MODE_AUTO = 0,
41 V4L2_FOCUS_MODE_MACRO = 1,
42 V4L2_FOCUS_MODE_MANUAL = 2,
43 V4L2_FOCUS_MODE_LASTP = 2,
44};
45
46#define V4L2_CID_ZOOM_MODE (V4L2_CID_CAMERA_CLASS_BASE + 18)
47/* Zoom Methods */
48enum v4l2_zoom_mode {
49 V4L2_ZOOM_MODE_CONTINUOUS = 0,
50 V4L2_ZOOM_MODE_OPTICAL = 1,
51 V4L2_ZOOM_MODE_DIGITAL = 2,
52 V4L2_ZOOM_MODE_LASTP = 2,
53};
54
55/* Exposure Methods */
56#define V4L2_CID_PHOTOMETRY (V4L2_CID_CAMERA_CLASS_BASE + 19)
57enum v4l2_photometry_mode {
58 V4L2_PHOTOMETRY_MULTISEG = 0, /*Multi Segment */
59 V4L2_PHOTOMETRY_CWA = 1, /*Centre Weighted Average */
60 V4L2_PHOTOMETRY_SPOT = 2,
61 V4L2_PHOTOMETRY_AFSPOT = 3, /*Spot metering on focused point */
62 V4L2_PHOTOMETRY_LASTP = V4L2_PHOTOMETRY_AFSPOT,
63};
64
65/* Manual exposure control items menu type: iris, shutter, iso */
66#define V4L2_CID_CAM_APERTURE (V4L2_CID_CAMERA_CLASS_BASE + 20)
67#define V4L2_CID_CAM_SHUTTER (V4L2_CID_CAMERA_CLASS_BASE + 21)
68#define V4L2_CID_CAM_ISO (V4L2_CID_CAMERA_CLASS_BASE + 22)
69
70/* Following CIDs are menu type */
71#define V4L2_CID_SCENEMODE (V4L2_CID_CAMERA_CLASS_BASE + 23)
72#define V4L2_CID_CAM_STABILIZE (V4L2_CID_CAMERA_CLASS_BASE + 24)
73#define V4L2_CID_CAM_MULTISHOT (V4L2_CID_CAMERA_CLASS_BASE + 25)
74
75/* Control dynamic range */
76#define V4L2_CID_CAM_DR (V4L2_CID_CAMERA_CLASS_BASE + 26)
77
78/* White balance preset control */
79#define V4L2_CID_WHITE_BALANCE_PRESET (V4L2_CID_CAMERA_CLASS_BASE + 27)
80
81/* CID extensions */
82#define V4L2_CID_ROTATION (V4L2_CID_PRIVATE_BASE + 0)
83#define V4L2_CID_PADDR_Y (V4L2_CID_PRIVATE_BASE + 1)
84#define V4L2_CID_PADDR_CB (V4L2_CID_PRIVATE_BASE + 2)
85#define V4L2_CID_PADDR_CR (V4L2_CID_PRIVATE_BASE + 3)
86#define V4L2_CID_PADDR_CBCR (V4L2_CID_PRIVATE_BASE + 4)
87#define V4L2_CID_OVERLAY_AUTO (V4L2_CID_PRIVATE_BASE + 5)
88#define V4L2_CID_OVERLAY_VADDR0 (V4L2_CID_PRIVATE_BASE + 6)
89#define V4L2_CID_OVERLAY_VADDR1 (V4L2_CID_PRIVATE_BASE + 7)
90#define V4L2_CID_OVERLAY_VADDR2 (V4L2_CID_PRIVATE_BASE + 8)
91#define V4L2_CID_OVLY_MODE (V4L2_CID_PRIVATE_BASE + 9)
92#define V4L2_CID_DST_INFO (V4L2_CID_PRIVATE_BASE + 10)
93#define V4L2_CID_IMAGE_EFFECT_FN (V4L2_CID_PRIVATE_BASE + 16)
94#define V4L2_CID_IMAGE_EFFECT_APPLY (V4L2_CID_PRIVATE_BASE + 17)
95#define V4L2_CID_IMAGE_EFFECT_CB (V4L2_CID_PRIVATE_BASE + 18)
96#define V4L2_CID_IMAGE_EFFECT_CR (V4L2_CID_PRIVATE_BASE + 19)
97#define V4L2_CID_RESERVED_MEM_BASE_ADDR (V4L2_CID_PRIVATE_BASE + 20)
98#define V4L2_CID_FIMC_VERSION (V4L2_CID_PRIVATE_BASE + 21)
99
100#define V4L2_CID_STREAM_PAUSE (V4L2_CID_PRIVATE_BASE + 53)
101
102/* CID Extensions for camera sensor operations */
103#define V4L2_CID_CAM_PREVIEW_ONOFF (V4L2_CID_PRIVATE_BASE + 64)
104#define V4L2_CID_CAM_CAPTURE (V4L2_CID_PRIVATE_BASE + 65)
105#define V4L2_CID_CAM_JPEG_MEMSIZE (V4L2_CID_PRIVATE_BASE + 66)
106
107#define V4L2_CID_CAM_DATE_INFO_YEAR (V4L2_CID_PRIVATE_BASE + 14)
108#define V4L2_CID_CAM_DATE_INFO_MONTH (V4L2_CID_PRIVATE_BASE + 15)
109#define V4L2_CID_CAM_DATE_INFO_DATE (V4L2_CID_PRIVATE_BASE + 22)
110#define V4L2_CID_CAM_SENSOR_VER (V4L2_CID_PRIVATE_BASE + 23)
111#define V4L2_CID_CAM_FW_MINOR_VER (V4L2_CID_PRIVATE_BASE + 24)
112#define V4L2_CID_CAM_FW_MAJOR_VER (V4L2_CID_PRIVATE_BASE + 25)
113#define V4L2_CID_CAM_PRM_MINOR_VER (V4L2_CID_PRIVATE_BASE + 26)
114#define V4L2_CID_CAM_PRM_MAJOR_VER (V4L2_CID_PRIVATE_BASE + 27)
115#define V4L2_CID_CAM_FW_VER (V4L2_CID_PRIVATE_BASE + 28)
116#define V4L2_CID_CAM_SET_FW_ADDR (V4L2_CID_PRIVATE_BASE + 29)
117#define V4L2_CID_CAM_SET_FW_SIZE (V4L2_CID_PRIVATE_BASE + 30)
118#define V4L2_CID_CAM_UPDATE_FW (V4L2_CID_PRIVATE_BASE + 31)
119#define V4L2_CID_CAM_JPEG_MAIN_SIZE (V4L2_CID_PRIVATE_BASE + 32)
120#define V4L2_CID_CAM_JPEG_MAIN_OFFSET (V4L2_CID_PRIVATE_BASE + 33)
121#define V4L2_CID_CAM_JPEG_THUMB_SIZE (V4L2_CID_PRIVATE_BASE + 34)
122#define V4L2_CID_CAM_JPEG_THUMB_OFFSET (V4L2_CID_PRIVATE_BASE + 35)
123#define V4L2_CID_CAM_JPEG_POSTVIEW_OFFSET (V4L2_CID_PRIVATE_BASE + 36)
124#define V4L2_CID_CAM_JPEG_QUALITY (V4L2_CID_PRIVATE_BASE + 37)
125#define V4L2_CID_CAM_SENSOR_MAKER (V4L2_CID_PRIVATE_BASE + 38)
126#define V4L2_CID_CAM_SENSOR_OPTICAL (V4L2_CID_PRIVATE_BASE + 39)
127#define V4L2_CID_CAM_AF_VER_LOW (V4L2_CID_PRIVATE_BASE + 40)
128#define V4L2_CID_CAM_AF_VER_HIGH (V4L2_CID_PRIVATE_BASE + 41)
129#define V4L2_CID_CAM_GAMMA_RG_LOW (V4L2_CID_PRIVATE_BASE + 42)
130#define V4L2_CID_CAM_GAMMA_RG_HIGH (V4L2_CID_PRIVATE_BASE + 43)
131#define V4L2_CID_CAM_GAMMA_BG_LOW (V4L2_CID_PRIVATE_BASE + 44)
132#define V4L2_CID_CAM_GAMMA_BG_HIGH (V4L2_CID_PRIVATE_BASE + 45)
133#define V4L2_CID_CAM_DUMP_FW (V4L2_CID_PRIVATE_BASE + 46)
134#define V4L2_CID_CAM_GET_DUMP_SIZE (V4L2_CID_PRIVATE_BASE + 47)
135#define V4L2_CID_CAMERA_VT_MODE (V4L2_CID_PRIVATE_BASE + 48)
136#define V4L2_CID_CAMERA_VGA_BLUR (V4L2_CID_PRIVATE_BASE + 49)
137#define V4L2_CID_CAMERA_CAPTURE (V4L2_CID_PRIVATE_BASE + 50)
138
139#define V4L2_CID_MAIN_SW_DATE_INFO_YEAR (V4L2_CID_PRIVATE_BASE + 54)
140#define V4L2_CID_MAIN_SW_DATE_INFO_MONTH (V4L2_CID_PRIVATE_BASE + 55)
141#define V4L2_CID_MAIN_SW_DATE_INFO_DATE (V4L2_CID_PRIVATE_BASE + 56)
142#define V4L2_CID_MAIN_SW_FW_MINOR_VER (V4L2_CID_PRIVATE_BASE + 57)
143#define V4L2_CID_MAIN_SW_FW_MAJOR_VER (V4L2_CID_PRIVATE_BASE + 58)
144#define V4L2_CID_MAIN_SW_PRM_MINOR_VER (V4L2_CID_PRIVATE_BASE + 59)
145#define V4L2_CID_MAIN_SW_PRM_MAJOR_VER (V4L2_CID_PRIVATE_BASE + 60)
146
147enum v4l2_blur {
148 BLUR_LEVEL_0 = 0,
149 BLUR_LEVEL_1,
150 BLUR_LEVEL_2,
151 BLUR_LEVEL_3,
152 BLUR_LEVEL_MAX,
153};
154
155#define V4L2_CID_CAMERA_SCENE_MODE (V4L2_CID_PRIVATE_BASE + 70)
156enum v4l2_scene_mode {
157 SCENE_MODE_BASE,
158 SCENE_MODE_NONE,
159 SCENE_MODE_PORTRAIT,
160 SCENE_MODE_NIGHTSHOT,
161 SCENE_MODE_BACK_LIGHT,
162 SCENE_MODE_LANDSCAPE,
163 SCENE_MODE_SPORTS,
164 SCENE_MODE_PARTY_INDOOR,
165 SCENE_MODE_BEACH_SNOW,
166 SCENE_MODE_SUNSET,
167 SCENE_MODE_DUST_DAWN,
168 SCENE_MODE_FALL_COLOR,
169 SCENE_MODE_FIREWORKS,
170 SCENE_MODE_TEXT,
171 SCENE_MODE_CANDLE_LIGHT,
172 SCENE_MODE_MAX,
173};
174
175#define V4L2_CID_CAMERA_FLASH_MODE (V4L2_CID_PRIVATE_BASE + 71)
176enum v4l2_flash_mode {
177 FLASH_MODE_BASE,
178 FLASH_MODE_OFF,
179 FLASH_MODE_AUTO,
180 FLASH_MODE_ON,
181 FLASH_MODE_TORCH,
182 FLASH_MODE_MAX,
183};
184
185#define V4L2_CID_CAMERA_BRIGHTNESS (V4L2_CID_PRIVATE_BASE + 72)
186enum v4l2_ev_mode {
187 EV_MINUS_4 = 0,
188 EV_MINUS_3,
189 EV_MINUS_2,
190 EV_MINUS_1,
191 EV_DEFAULT,
192 EV_PLUS_1,
193 EV_PLUS_2,
194 EV_PLUS_3,
195 EV_PLUS_4,
196 EV_MAX,
197};
198
199#define V4L2_CID_CAMERA_WHITE_BALANCE (V4L2_CID_PRIVATE_BASE + 73)
200enum v4l2_wb_mode {
201 WHITE_BALANCE_BASE = 0,
202 WHITE_BALANCE_AUTO,
203 WHITE_BALANCE_SUNNY,
204 WHITE_BALANCE_CLOUDY,
205 WHITE_BALANCE_TUNGSTEN,
206 WHITE_BALANCE_FLUORESCENT,
207 WHITE_BALANCE_MAX,
208};
209
210#define V4L2_CID_CAMERA_EFFECT (V4L2_CID_PRIVATE_BASE + 74)
211enum v4l2_effect_mode {
212 IMAGE_EFFECT_BASE = 0,
213 IMAGE_EFFECT_NONE,
214 IMAGE_EFFECT_BNW,
215 IMAGE_EFFECT_SEPIA,
216 IMAGE_EFFECT_AQUA,
217 IMAGE_EFFECT_ANTIQUE,
218 IMAGE_EFFECT_NEGATIVE,
219 IMAGE_EFFECT_SHARPEN,
220 IMAGE_EFFECT_MAX,
221};
222
223#define V4L2_CID_CAMERA_ISO (V4L2_CID_PRIVATE_BASE + 75)
224enum v4l2_iso_mode {
225 ISO_AUTO = 0,
226 ISO_50,
227 ISO_100,
228 ISO_200,
229 ISO_400,
230 ISO_800,
231 ISO_1600,
232 ISO_SPORTS,
233 ISO_NIGHT,
234 ISO_MOVIE,
235 ISO_MAX,
236};
237
238#define V4L2_CID_CAMERA_METERING (V4L2_CID_PRIVATE_BASE + 76)
239enum v4l2_metering_mode {
240 METERING_BASE = 0,
241 METERING_MATRIX,
242 METERING_CENTER,
243 METERING_SPOT,
244 METERING_MAX,
245};
246
247#define V4L2_CID_CAMERA_CONTRAST (V4L2_CID_PRIVATE_BASE + 77)
248enum v4l2_contrast_mode {
249 CONTRAST_MINUS_2 = 0,
250 CONTRAST_MINUS_1,
251 CONTRAST_DEFAULT,
252 CONTRAST_PLUS_1,
253 CONTRAST_PLUS_2,
254 CONTRAST_MAX,
255};
256
257#define V4L2_CID_CAMERA_SATURATION (V4L2_CID_PRIVATE_BASE + 78)
258enum v4l2_saturation_mode {
259 SATURATION_MINUS_2 = 0,
260 SATURATION_MINUS_1,
261 SATURATION_DEFAULT,
262 SATURATION_PLUS_1,
263 SATURATION_PLUS_2,
264 SATURATION_MAX,
265};
266
267#define V4L2_CID_CAMERA_SHARPNESS (V4L2_CID_PRIVATE_BASE + 79)
268enum v4l2_sharpness_mode {
269 SHARPNESS_MINUS_2 = 0,
270 SHARPNESS_MINUS_1,
271 SHARPNESS_DEFAULT,
272 SHARPNESS_PLUS_1,
273 SHARPNESS_PLUS_2,
274 SHARPNESS_MAX,
275};
276
277#define V4L2_CID_CAMERA_WDR (V4L2_CID_PRIVATE_BASE + 80)
278enum v4l2_wdr_mode {
279 WDR_OFF,
280 WDR_ON,
281 WDR_MAX,
282};
283
284#define V4L2_CID_CAMERA_ANTI_SHAKE (V4L2_CID_PRIVATE_BASE + 81)
285enum v4l2_anti_shake_mode {
286 ANTI_SHAKE_OFF,
287 ANTI_SHAKE_STILL_ON,
288 ANTI_SHAKE_MOVIE_ON,
289 ANTI_SHAKE_MAX,
290};
291
292#define V4L2_CID_CAMERA_TOUCH_AF_START_STOP (V4L2_CID_PRIVATE_BASE + 82)
293enum v4l2_touch_af {
294 TOUCH_AF_STOP = 0,
295 TOUCH_AF_START,
296 TOUCH_AF_MAX,
297};
298
299#define V4L2_CID_CAMERA_SMART_AUTO (V4L2_CID_PRIVATE_BASE + 83)
300enum v4l2_smart_auto {
301 SMART_AUTO_OFF = 0,
302 SMART_AUTO_ON,
303 SMART_AUTO_MAX,
304};
305
306#define V4L2_CID_CAMERA_VINTAGE_MODE (V4L2_CID_PRIVATE_BASE + 84)
307enum v4l2_vintage_mode {
308 VINTAGE_MODE_BASE,
309 VINTAGE_MODE_OFF,
310 VINTAGE_MODE_NORMAL,
311 VINTAGE_MODE_WARM,
312 VINTAGE_MODE_COOL,
313 VINTAGE_MODE_BNW,
314 VINTAGE_MODE_MAX,
315};
316
317#define V4L2_CID_CAMERA_JPEG_QUALITY (V4L2_CID_PRIVATE_BASE + 85)
318#define V4L2_CID_CAMERA_GPS_LATITUDE (V4L2_CID_CAMERA_CLASS_BASE + 30)
319#define V4L2_CID_CAMERA_GPS_LONGITUDE (V4L2_CID_CAMERA_CLASS_BASE + 31)
320#define V4L2_CID_CAMERA_GPS_TIMESTAMP (V4L2_CID_CAMERA_CLASS_BASE + 32)
321#define V4L2_CID_CAMERA_GPS_ALTITUDE (V4L2_CID_CAMERA_CLASS_BASE + 33)
322#define V4L2_CID_CAMERA_EXIF_TIME_INFO (V4L2_CID_CAMERA_CLASS_BASE + 34)
Pawit Pornkitprasan317dcfa2012-08-18 22:02:03 +0700323#define V4L2_CID_CAMERA_GPS_PROCESSINGMETHOD (V4L2_CID_CAMERA_CLASS_BASE + 35)
Chirayu Desai0a336cc2012-07-12 14:37:05 +0530324#define V4L2_CID_CAMERA_ZOOM (V4L2_CID_PRIVATE_BASE + 90)
325enum v4l2_zoom_level {
326 ZOOM_LEVEL_0 = 0,
327 ZOOM_LEVEL_1,
328 ZOOM_LEVEL_2,
329 ZOOM_LEVEL_3,
330 ZOOM_LEVEL_4,
331 ZOOM_LEVEL_5,
332 ZOOM_LEVEL_6,
333 ZOOM_LEVEL_7,
334 ZOOM_LEVEL_8,
335 ZOOM_LEVEL_9,
336 ZOOM_LEVEL_10,
337 ZOOM_LEVEL_11,
338 ZOOM_LEVEL_12,
339 ZOOM_LEVEL_MAX,
340};
341
342#define V4L2_CID_CAMERA_FACE_DETECTION (V4L2_CID_PRIVATE_BASE + 91)
343enum v4l2_face_detection {
344 FACE_DETECTION_OFF = 0,
345 FACE_DETECTION_ON,
346 FACE_DETECTION_NOLINE,
347 FACE_DETECTION_ON_BEAUTY,
348 FACE_DETECTION_MAX,
349};
350
351#define V4L2_CID_CAMERA_SMART_AUTO_STATUS (V4L2_CID_PRIVATE_BASE + 92)
352enum v4l2_smart_auto_status {
353 SMART_AUTO_STATUS_AUTO = 0,
354 SMART_AUTO_STATUS_LANDSCAPE,
355 SMART_AUTO_STATUS_PORTRAIT,
356 SMART_AUTO_STATUS_MACRO,
357 SMART_AUTO_STATUS_NIGHT,
358 SMART_AUTO_STATUS_PORTRAIT_NIGHT,
359 SMART_AUTO_STATUS_BACKLIT,
360 SMART_AUTO_STATUS_PORTRAIT_BACKLIT,
361 SMART_AUTO_STATUS_ANTISHAKE,
362 SMART_AUTO_STATUS_PORTRAIT_ANTISHAKE,
363 SMART_AUTO_STATUS_MAX,
364};
365
366#define V4L2_CID_CAMERA_SET_AUTO_FOCUS (V4L2_CID_PRIVATE_BASE + 93)
367enum v4l2_auto_focus {
368 AUTO_FOCUS_OFF = 0,
369 AUTO_FOCUS_ON,
370 AUTO_FOCUS_MAX,
371};
372
373#define V4L2_CID_CAMERA_BEAUTY_SHOT (V4L2_CID_PRIVATE_BASE + 94)
374enum v4l2_beauty_shot {
375 BEAUTY_SHOT_OFF = 0,
376 BEAUTY_SHOT_ON,
377 BEAUTY_SHOT_MAX,
378};
379
380#define V4L2_CID_CAMERA_AEAWB_LOCK_UNLOCK (V4L2_CID_PRIVATE_BASE + 95)
381enum v4l2_ae_awb_lockunlock {
382 AE_UNLOCK_AWB_UNLOCK = 0,
383 AE_LOCK_AWB_UNLOCK,
384 AE_UNLOCK_AWB_LOCK,
385 AE_LOCK_AWB_LOCK,
386 AE_AWB_MAX
387};
388
389#define V4L2_CID_CAMERA_FACEDETECT_LOCKUNLOCK (V4L2_CID_PRIVATE_BASE + 96)
390enum v4l2_face_lock {
391 FACE_LOCK_OFF = 0,
392 FACE_LOCK_ON,
393 FIRST_FACE_TRACKING,
394 FACE_LOCK_MAX,
395};
396
397#define V4L2_CID_CAMERA_OBJECT_POSITION_X (V4L2_CID_PRIVATE_BASE + 97)
398#define V4L2_CID_CAMERA_OBJECT_POSITION_Y (V4L2_CID_PRIVATE_BASE + 98)
399#define V4L2_CID_CAMERA_FOCUS_MODE (V4L2_CID_PRIVATE_BASE + 99)
400enum v4l2_focusmode {
401 FOCUS_MODE_AUTO = 0,
402 FOCUS_MODE_MACRO,
403 FOCUS_MODE_FACEDETECT,
404 FOCUS_MODE_AUTO_DEFAULT,
405 FOCUS_MODE_MACRO_DEFAULT,
406 FOCUS_MODE_FACEDETECT_DEFAULT,
407 FOCUS_MODE_INFINITY,
408 FOCUS_MODE_MAX,
409};
410
411#define V4L2_CID_CAMERA_OBJ_TRACKING_STATUS (V4L2_CID_PRIVATE_BASE + 100)
412enum v4l2_obj_tracking_status {
413 OBJECT_TRACKING_STATUS_BASE,
414 OBJECT_TRACKING_STATUS_PROGRESSING,
415 OBJECT_TRACKING_STATUS_SUCCESS,
416 OBJECT_TRACKING_STATUS_FAIL,
417 OBJECT_TRACKING_STATUS_MISSING,
418 OBJECT_TRACKING_STATUS_MAX,
419};
420
421#define V4L2_CID_CAMERA_OBJ_TRACKING_START_STOP (V4L2_CID_PRIVATE_BASE + 101)
422enum v4l2_ot_start_stop {
423 OT_STOP = 0,
424 OT_START,
425 OT_MAX,
426};
427
428#define V4L2_CID_CAMERA_CAF_START_STOP (V4L2_CID_PRIVATE_BASE + 102)
429enum v4l2_caf_start_stop {
430 CAF_STOP = 0,
431 CAF_START,
432 CAF_MAX,
433};
434
435#define V4L2_CID_CAMERA_AUTO_FOCUS_RESULT_FIRST (V4L2_CID_PRIVATE_BASE + 103)
436#define V4L2_CID_CAMERA_AUTO_FOCUS_RESULT_SECOND (V4L2_CID_PRIVATE_BASE + 120)
437#define V4L2_CID_CAMERA_FINISH_AUTO_FOCUS (V4L2_CID_PRIVATE_BASE + 121)
438
439#define V4L2_CID_CAMERA_FRAME_RATE (V4L2_CID_PRIVATE_BASE + 104)
440enum v4l2_frame_rate {
441 FRAME_RATE_AUTO = 0,
442 FRAME_RATE_7 = 7,
443 FRAME_RATE_15 = 15,
444 FRAME_RATE_30 = 30,
445 FRAME_RATE_60 = 60,
446 FRAME_RATE_120 = 120,
447 FRAME_RATE_MAX
448};
449
450#define V4L2_CID_CAMERA_ANTI_BANDING (V4L2_CID_PRIVATE_BASE + 105)
451enum v4l2_anti_banding {
452 ANTI_BANDING_AUTO = 0,
453 ANTI_BANDING_50HZ = 1,
454 ANTI_BANDING_60HZ = 2,
455 ANTI_BANDING_OFF = 3,
456};
457
458#define V4L2_CID_CAMERA_SET_GAMMA (V4L2_CID_PRIVATE_BASE + 106)
459enum v4l2_gamma_mode {
460 GAMMA_OFF = 0,
461 GAMMA_ON = 1,
462 GAMMA_MAX,
463};
464
465#define V4L2_CID_CAMERA_SET_SLOW_AE (V4L2_CID_PRIVATE_BASE + 107)
466enum v4l2_slow_ae_mode {
467 SLOW_AE_OFF,
468 SLOW_AE_ON,
469 SLOW_AE_MAX,
470};
471
472#define V4L2_CID_CAMERA_BATCH_REFLECTION (V4L2_CID_PRIVATE_BASE + 108)
473#define V4L2_CID_CAMERA_EXIF_ORIENTATION (V4L2_CID_PRIVATE_BASE + 109)
474
475#define V4L2_CID_CAMERA_RESET (V4L2_CID_PRIVATE_BASE + 111)
476#define V4L2_CID_CAMERA_CHECK_DATALINE (V4L2_CID_PRIVATE_BASE + 112)
477#define V4L2_CID_CAMERA_CHECK_DATALINE_STOP (V4L2_CID_PRIVATE_BASE + 113)
478#define V4L2_CID_CAMERA_GET_ISO (V4L2_CID_PRIVATE_BASE + 114)
479#define V4L2_CID_CAMERA_GET_SHT_TIME (V4L2_CID_PRIVATE_BASE + 115)
480#define V4L2_CID_CAMERA_SENSOR_MODE (V4L2_CID_PRIVATE_BASE + 116)
481#define V4L2_CID_ESD_INT (V4L2_CID_PRIVATE_BASE + 117)
482#define V4L2_CID_CAMERA_GET_FLASH_ONOFF (V4L2_CID_PRIVATE_BASE + 118)
483#define V4L2_CID_CAMERA_RETURN_FOCUS (V4L2_CID_PRIVATE_BASE + 119)
484
485/* Pixel format FOURCC depth Description */
486/* 12 Y/CbCr 4:2:0 64x32 macroblocks */
487#define V4L2_PIX_FMT_NV12T v4l2_fourcc('T', 'V', '1', '2')
488
489/*
490 * * V4L2 extention for digital camera
491 * */
492/* Strobe flash light */
493enum v4l2_strobe_control {
494 /* turn off the flash light */
495 V4L2_STROBE_CONTROL_OFF = 0,
496 /* turn on the flash light */
497 V4L2_STROBE_CONTROL_ON = 1,
498 /* act guide light before splash */
499 V4L2_STROBE_CONTROL_AFGUIDE = 2,
500 /* charge the flash light */
501 V4L2_STROBE_CONTROL_CHARGE = 3,
502};
503
504enum v4l2_strobe_conf {
505 V4L2_STROBE_OFF = 0, /* Always off */
506 V4L2_STROBE_ON = 1, /* Always splashes */
507 /* Auto control presets */
508 V4L2_STROBE_AUTO = 2,
509 V4L2_STROBE_REDEYE_REDUCTION = 3,
510 V4L2_STROBE_SLOW_SYNC = 4,
511 V4L2_STROBE_FRONT_CURTAIN = 5,
512 V4L2_STROBE_REAR_CURTAIN = 6,
513 /* Extra manual control presets */
514 /* keep turned on until turning off */
515 V4L2_STROBE_PERMANENT = 7,
516 V4L2_STROBE_EXTERNAL = 8,
517};
518
519enum v4l2_strobe_status {
520 V4L2_STROBE_STATUS_OFF = 0,
521 /* while processing configurations */
522 V4L2_STROBE_STATUS_BUSY = 1,
523 V4L2_STROBE_STATUS_ERR = 2,
524 V4L2_STROBE_STATUS_CHARGING = 3,
525 V4L2_STROBE_STATUS_CHARGED = 4,
526};
527
528/* capabilities field */
529/* No strobe supported */
530#define V4L2_STROBE_CAP_NONE 0x0000
531/* Always flash off mode */
532#define V4L2_STROBE_CAP_OFF 0x0001
533/* Always use flash light mode */
534#define V4L2_STROBE_CAP_ON 0x0002
535/* Flashlight works automatic */
536#define V4L2_STROBE_CAP_AUTO 0x0004
537/* Red-eye reduction */
538#define V4L2_STROBE_CAP_REDEYE 0x0008
539/* Slow sync */
540#define V4L2_STROBE_CAP_SLOWSYNC 0x0010
541/* Front curtain */
542#define V4L2_STROBE_CAP_FRONT_CURTAIN 0x0020
543/* Rear curtain */
544#define V4L2_STROBE_CAP_REAR_CURTAIN 0x0040
545/* keep turned on until turning off */
546#define V4L2_STROBE_CAP_PERMANENT 0x0080
547/* use external strobe */
548#define V4L2_STROBE_CAP_EXTERNAL 0x0100
549
550/* Set mode and Get status */
551struct v4l2_strobe {
552 /* off/on/charge:0/1/2 */
553 enum v4l2_strobe_control control;
554 /* supported strobe capabilities */
555 __u32 capabilities;
556 enum v4l2_strobe_conf mode;
557 enum v4l2_strobe_status status; /* read only */
558 /* default is 0 and range of value varies from each models */
559 __u32 flash_ev;
560 __u32 reserved[4];
561};
562
563#define VIDIOC_S_STROBE _IOWR('V', 83, struct v4l2_strobe)
564#define VIDIOC_G_STROBE _IOR('V', 84, struct v4l2_strobe)
565
566/* Object recognition and collateral actions */
567enum v4l2_recog_mode {
568 V4L2_RECOGNITION_MODE_OFF = 0,
569 V4L2_RECOGNITION_MODE_ON = 1,
570 V4L2_RECOGNITION_MODE_LOCK = 2,
571};
572
573enum v4l2_recog_action {
574 V4L2_RECOGNITION_ACTION_NONE = 0, /* only recognition */
575 V4L2_RECOGNITION_ACTION_BLINK = 1, /* Capture on blinking */
576 V4L2_RECOGNITION_ACTION_SMILE = 2, /* Capture on smiling */
577};
578
579enum v4l2_recog_pattern {
580 V4L2_RECOG_PATTERN_FACE = 0, /* Face */
581 V4L2_RECOG_PATTERN_HUMAN = 1, /* Human */
582 V4L2_RECOG_PATTERN_CHAR = 2, /* Character */
583};
584
585struct v4l2_recog_rect {
586 enum v4l2_recog_pattern p; /* detected pattern */
587 struct v4l2_rect o; /* detected area */
588 __u32 reserved[4];
589};
590
591struct v4l2_recog_data {
592 __u8 detect_cnt; /* detected object counter */
593 struct v4l2_rect o; /* detected area */
594 __u32 reserved[4];
595};
596
597struct v4l2_recognition {
598 enum v4l2_recog_mode mode;
599
600 /* Which pattern to detect */
601 enum v4l2_recog_pattern pattern;
602
603 /* How many object to detect */
604 __u8 obj_num;
605
606 /* select detected object */
607 __u32 detect_idx;
608
609 /* read only :Get object coordination */
610 struct v4l2_recog_data data;
611
612 enum v4l2_recog_action action;
613 __u32 reserved[4];
614};
615
616#define VIDIOC_S_RECOGNITION _IOWR('V', 85, struct v4l2_recognition)
617#define VIDIOC_G_RECOGNITION _IOR('V', 86, struct v4l2_recognition)
618
619/* We use this struct as the v4l2_streamparm raw_data for
620 * VIDIOC_G_PARM and VIDIOC_S_PARM
621 */
622struct sec_cam_parm {
623 struct v4l2_captureparm capture;
624 int contrast;
625 int effects;
626 int brightness;
627 int flash_mode;
628 int focus_mode;
629 int iso;
630 int metering;
631 int saturation;
632 int scene_mode;
633 int sharpness;
634 int white_balance;
635};
636
637#endif /* __LINUX_VIDEODEV2_SAMSUNG_H */