| /***************************************************************************** |
| * Copyright 2011 Broadcom Corporation. All rights reserved. |
| * |
| * Unless you and Broadcom execute a separate written software license |
| * agreement governing use of this software, this software is licensed to you |
| * under the terms of the GNU General Public License version 2, available at |
| * http://www.broadcom.com/licenses/GPLv2.php (the "GPL"). |
| * |
| * Notwithstanding the above, under no circumstances may you combine this |
| * software in any way with any other Broadcom software provided under a |
| * license other than the GPL, without Broadcom's express prior written |
| * consent. |
| *****************************************************************************/ |
| |
| /* |
| * Broadcom specific v4l2 extension |
| * This file should replace the contents in videodev2_samsung.h |
| */ |
| |
| #ifndef __LINUX_VIDEODEV2_BRCM_H |
| #define __LINUX_VIDEODEV2_BRCM_H |
| |
| #if !defined(CONFIG_SOC_MAIN_CAMERA) || !defined(CONFIG_SOC_SUB_CAMERA) |
| |
| |
| typedef const __u32 regs_t; |
| |
| |
| /* Values for 'capabilities' field */ |
| /* Object detection device */ |
| #define V4L2_CAP_OBJ_RECOGNITION 0x10000000 |
| /* strobe control */ |
| #define V4L2_CAP_STROBE 0x20000000 |
| |
| /* |
| * private controls |
| */ |
| |
| #define V4L2_CID_FOCUS_MODE (V4L2_CID_PRIVATE_BASE + 1) |
| /* Focus Methods */ |
| enum v4l2_focus_mode { |
| V4L2_FOCUS_MODE_AUTO = 0, |
| V4L2_FOCUS_MODE_MACRO = 1, |
| V4L2_FOCUS_MODE_MANUAL = 2, |
| V4L2_FOCUS_MODE_LASTP = 2, |
| }; |
| |
| #define V4L2_CID_ZOOM_MODE (V4L2_CID_PRIVATE_BASE + 2) |
| /* Zoom Methods */ |
| enum v4l2_zoom_mode { |
| V4L2_ZOOM_MODE_CONTINUOUS = 0, |
| V4L2_ZOOM_MODE_OPTICAL = 1, |
| V4L2_ZOOM_MODE_DIGITAL = 2, |
| V4L2_ZOOM_MODE_LASTP = 2, |
| }; |
| |
| /* Exposure Methods */ |
| #define V4L2_CID_PHOTOMETRY (V4L2_CID_PRIVATE_BASE + 3) |
| enum v4l2_photometry_mode { |
| V4L2_PHOTOMETRY_MULTISEG = 0, /*Multi Segment */ |
| V4L2_PHOTOMETRY_CWA = 1, /*Centre Weighted Average */ |
| V4L2_PHOTOMETRY_SPOT = 2, |
| V4L2_PHOTOMETRY_AFSPOT = 3, /*Spot metering on focused point */ |
| V4L2_PHOTOMETRY_LASTP = V4L2_PHOTOMETRY_AFSPOT, |
| }; |
| |
| /* Manual exposure control items menu type: iris, shutter, iso */ |
| #define V4L2_CID_CAM_APERTURE (V4L2_CID_PRIVATE_BASE + 4) |
| #define V4L2_CID_CAM_SHUTTER (V4L2_CID_PRIVATE_BASE + 5) |
| #define V4L2_CID_CAM_ISO (V4L2_CID_PRIVATE_BASE + 6) |
| |
| /* Following CIDs are menu type */ |
| #define V4L2_CID_SCENEMODE (V4L2_CID_PRIVATE_BASE + 7) |
| #define V4L2_CID_CAM_STABILIZE (V4L2_CID_PRIVATE_BASE + 8) |
| #define V4L2_CID_CAM_MULTISHOT (V4L2_CID_PRIVATE_BASE + 9) |
| |
| /* Control dynamic range */ |
| #define V4L2_CID_CAM_DR (V4L2_CID_PRIVATE_BASE + 10) |
| |
| /* White balance preset control */ |
| #define V4L2_CID_WHITE_BALANCE_PRESET (V4L2_CID_PRIVATE_BASE + 11) |
| |
| /* CID extensions */ |
| #define V4L2_CID_ROTATION (V4L2_CID_PRIVATE_BASE + 12) |
| #define V4L2_CID_PADDR_Y (V4L2_CID_PRIVATE_BASE + 13) |
| #define V4L2_CID_PADDR_CB (V4L2_CID_PRIVATE_BASE + 14) |
| #define V4L2_CID_PADDR_CR (V4L2_CID_PRIVATE_BASE + 15) |
| #define V4L2_CID_PADDR_CBCR (V4L2_CID_PRIVATE_BASE + 16) |
| #define V4L2_CID_OVERLAY_AUTO (V4L2_CID_PRIVATE_BASE + 17) |
| #define V4L2_CID_OVERLAY_VADDR0 (V4L2_CID_PRIVATE_BASE + 18) |
| #define V4L2_CID_OVERLAY_VADDR1 (V4L2_CID_PRIVATE_BASE + 19) |
| #define V4L2_CID_OVERLAY_VADDR2 (V4L2_CID_PRIVATE_BASE + 20) |
| #define V4L2_CID_OVLY_MODE (V4L2_CID_PRIVATE_BASE + 21) |
| #define V4L2_CID_DST_INFO (V4L2_CID_PRIVATE_BASE + 22) |
| #define V4L2_CID_IMAGE_EFFECT_FN (V4L2_CID_PRIVATE_BASE + 23) |
| #define V4L2_CID_IMAGE_EFFECT_APPLY (V4L2_CID_PRIVATE_BASE + 24) |
| #define V4L2_CID_IMAGE_EFFECT_CB (V4L2_CID_PRIVATE_BASE + 25) |
| #define V4L2_CID_IMAGE_EFFECT_CR (V4L2_CID_PRIVATE_BASE + 26) |
| #define V4L2_CID_RESERVED_MEM_BASE_ADDR (V4L2_CID_PRIVATE_BASE + 27) |
| #define V4L2_CID_FIMC_VERSION (V4L2_CID_PRIVATE_BASE + 28) |
| |
| #define V4L2_CID_STREAM_PAUSE (V4L2_CID_PRIVATE_BASE + 29) |
| |
| /* CID Extensions for camera sensor operations */ |
| #define V4L2_CID_CAM_PREVIEW_ONOFF (V4L2_CID_USER_BASE | 0x1002) |
| #define V4L2_CID_CAM_CAPTURE (V4L2_CID_USER_BASE | 0x1006) |
| #define V4L2_CID_CAM_JPEG_MEMSIZE (V4L2_CID_PRIVATE_BASE + 32) |
| |
| #define V4L2_CID_CAM_DATE_INFO_YEAR (V4L2_CID_PRIVATE_BASE + 33) |
| #define V4L2_CID_CAM_DATE_INFO_MONTH (V4L2_CID_PRIVATE_BASE + 34) |
| #define V4L2_CID_CAM_DATE_INFO_DATE (V4L2_CID_PRIVATE_BASE + 35) |
| #define V4L2_CID_CAM_SENSOR_VER (V4L2_CID_PRIVATE_BASE + 36) |
| #define V4L2_CID_CAM_FW_MINOR_VER (V4L2_CID_PRIVATE_BASE + 37) |
| #define V4L2_CID_CAM_FW_MAJOR_VER (V4L2_CID_PRIVATE_BASE + 38) |
| #define V4L2_CID_CAM_PRM_MINOR_VER (V4L2_CID_PRIVATE_BASE + 39) |
| #define V4L2_CID_CAM_PRM_MAJOR_VER (V4L2_CID_PRIVATE_BASE + 40) |
| #define V4L2_CID_CAM_FW_VER (V4L2_CID_PRIVATE_BASE + 41) |
| #define V4L2_CID_CAM_SET_FW_ADDR (V4L2_CID_PRIVATE_BASE + 42) |
| #define V4L2_CID_CAM_SET_FW_SIZE (V4L2_CID_PRIVATE_BASE + 43) |
| #define V4L2_CID_CAM_UPDATE_FW (V4L2_CID_PRIVATE_BASE + 44) |
| enum v4l2_firmware_mode { |
| FW_MODE_BASE = 0, |
| FW_MODE_NONE, |
| FW_MODE_VERSION, |
| FW_MODE_UPDATE, |
| FW_MODE_DUMP, |
| FW_MODE_MAX |
| }; |
| |
| #define V4L2_CID_CAM_JPEG_MAIN_SIZE (V4L2_CID_PRIVATE_BASE + 45) |
| #define V4L2_CID_CAM_JPEG_MAIN_OFFSET (V4L2_CID_PRIVATE_BASE + 46) |
| #define V4L2_CID_CAM_JPEG_THUMB_SIZE (V4L2_CID_PRIVATE_BASE + 47) |
| #define V4L2_CID_CAM_JPEG_THUMB_OFFSET (V4L2_CID_PRIVATE_BASE + 48) |
| #define V4L2_CID_CAM_JPEG_POSTVIEW_OFFSET (V4L2_CID_PRIVATE_BASE + 49) |
| #define V4L2_CID_CAM_JPEG_QUALITY (V4L2_CID_PRIVATE_BASE + 50) |
| |
| enum v4l2_jpeg_quality{ |
| JPEG_QUALITY_BASE = 0, |
| JPEG_QUALITY_ECONOMY, |
| JPEG_QUALITY_NORMAL, |
| JPEG_QUALITY_FINE, |
| JPEG_QUALITY_SUPERFINE, |
| JPEG_QUALITY_MAX, |
| }; |
| |
| |
| #define V4L2_CID_CAM_SENSOR_MAKER (V4L2_CID_PRIVATE_BASE + 51) |
| #define V4L2_CID_CAM_SENSOR_OPTICAL (V4L2_CID_PRIVATE_BASE + 52) |
| #define V4L2_CID_CAM_AF_VER_LOW (V4L2_CID_PRIVATE_BASE + 53) |
| #define V4L2_CID_CAM_AF_VER_HIGH (V4L2_CID_PRIVATE_BASE + 54) |
| #define V4L2_CID_CAM_GAMMA_RG_LOW (V4L2_CID_PRIVATE_BASE + 55) |
| #define V4L2_CID_CAM_GAMMA_RG_HIGH (V4L2_CID_PRIVATE_BASE + 56) |
| #define V4L2_CID_CAM_GAMMA_BG_LOW (V4L2_CID_PRIVATE_BASE + 57) |
| #define V4L2_CID_CAM_GAMMA_BG_HIGH (V4L2_CID_PRIVATE_BASE + 58) |
| #define V4L2_CID_CAM_DUMP_FW (V4L2_CID_PRIVATE_BASE + 59) |
| #define V4L2_CID_CAM_GET_DUMP_SIZE (V4L2_CID_PRIVATE_BASE + 60) |
| #define V4L2_CID_CAMERA_VT_MODE (V4L2_CID_PRIVATE_BASE + 61) |
| enum cam_vt_mode { |
| CAM_VT_MODE_BASE = 0, |
| CAM_VT_MODE_3G , |
| CAM_VT_MODE_VOIP , |
| CAM_VT_MODE_SMART_STAY , |
| CAM_VT_MODE_MAX |
| }; |
| |
| #define V4L2_CID_CAMERA_VGA_BLUR (V4L2_CID_PRIVATE_BASE + 62) |
| #define V4L2_CID_CAMERA_CAPTURE (V4L2_CID_PRIVATE_BASE + 63) |
| |
| #define V4L2_CID_MAIN_SW_DATE_INFO_YEAR (V4L2_CID_PRIVATE_BASE + 64) |
| #define V4L2_CID_MAIN_SW_DATE_INFO_MONTH (V4L2_CID_PRIVATE_BASE + 65) |
| #define V4L2_CID_MAIN_SW_DATE_INFO_DATE (V4L2_CID_PRIVATE_BASE + 66) |
| #define V4L2_CID_MAIN_SW_FW_MINOR_VER (V4L2_CID_PRIVATE_BASE + 67) |
| #define V4L2_CID_MAIN_SW_FW_MAJOR_VER (V4L2_CID_PRIVATE_BASE + 68) |
| #define V4L2_CID_MAIN_SW_PRM_MINOR_VER (V4L2_CID_PRIVATE_BASE + 69) |
| #define V4L2_CID_MAIN_SW_PRM_MAJOR_VER (V4L2_CID_PRIVATE_BASE + 70) |
| enum v4l2_blur { |
| BLUR_LEVEL_BASE = 0, |
| BLUR_LEVEL_0, |
| BLUR_LEVEL_1, |
| BLUR_LEVEL_2, |
| BLUR_LEVEL_3, |
| BLUR_LEVEL_MAX, |
| }; |
| |
| #define V4L2_CID_CAMERA_FLASH_MODE (V4L2_CID_USER_BASE | 0x100a) |
| enum v4l2_flash_mode { |
| FLASH_MODE_BASE = 0, |
| FLASH_MODE_OFF, |
| FLASH_MODE_AUTO, |
| FLASH_MODE_ON, |
| FLASH_MODE_TORCH_ON, |
| FLASH_MODE_TORCH_OFF, |
| FLASH_MAIN_OFF, |
| FLASH_MODE_REDEYE, |
| FLASH_MODE_MAX, |
| }; |
| |
| #define V4L2_CID_CAMERA_BRIGHTNESS (V4L2_CID_PRIVATE_BASE + 73) |
| enum v4l2_ev_mode { |
| EV_BASE = 0, |
| EV_MINUS_4, |
| EV_MINUS_3, |
| EV_MINUS_2, |
| EV_MINUS_1, |
| EV_DEFAULT, |
| EV_PLUS_1, |
| EV_PLUS_2, |
| EV_PLUS_3, |
| EV_PLUS_4, |
| EV_MINUS_1_5, |
| EV_MINUS_0_5, |
| EV_PLUS_0_5, |
| EV_PLUS_1_5, |
| EV_MAXIMUM, |
| }; |
| |
| #define V4L2_CID_CAMERA_WHITE_BALANCE (V4L2_CID_PRIVATE_BASE + 74) |
| enum v4l2_wb_mode { |
| WHITE_BALANCE_BASE = 0, |
| WHITE_BALANCE_AUTO, |
| WHITE_BALANCE_SUNNY, |
| WHITE_BALANCE_CLOUDY, |
| WHITE_BALANCE_TUNGSTEN, |
| WHITE_BALANCE_FLUORESCENT, |
| WHITE_BALANCE_CWF, |
| WHITE_BALANCE_DAYLIGHT, |
| WHITE_BALANCE_INCANDESCENT, |
| WHITE_BALANCE_SHADE, |
| WHITE_BALANCE_HORIZON, |
| WHITE_BALANCE_MAX, |
| }; |
| |
| #define V4L2_CID_CAMERA_EFFECT (V4L2_CID_PRIVATE_BASE + 75) |
| enum v4l2_effect_mode { |
| IMAGE_EFFECT_BASE = 0, |
| IMAGE_EFFECT_NONE, |
| IMAGE_EFFECT_MONO, |
| IMAGE_EFFECT_SEPIA, |
| IMAGE_EFFECT_AQUA, |
| IMAGE_EFFECT_ANTIQUE, |
| IMAGE_EFFECT_NEGATIVE, |
| IMAGE_EFFECT_SHARPEN, |
| IMAGE_EFFECT_SOLARIZATION, |
| IMAGE_EFFECT_BNW, |
| IMAGE_EFFECT_EMBOSS, |
| IMAGE_EFFECT_OUTLINE, |
| IMAGE_EFFECT_MAX, |
| }; |
| |
| #define V4L2_CID_CAMERA_ISO (V4L2_CID_PRIVATE_BASE + 76) |
| enum v4l2_iso_mode { |
| ISO_BASE = 0, |
| ISO_AUTO, |
| ISO_50, |
| ISO_100, |
| ISO_200, |
| ISO_400, |
| ISO_800, |
| ISO_1200, |
| ISO_1600, |
| ISO_2400, |
| ISO_3200, |
| ISO_SPORTS, |
| ISO_NIGHT, |
| ISO_MOVIE, |
| ISO_MAX, |
| }; |
| |
| #define V4L2_CID_CAMERA_METERING (V4L2_CID_PRIVATE_BASE + 77) |
| enum v4l2_metering_mode { |
| METERING_BASE = 0, |
| METERING_MATRIX, |
| METERING_CENTER, |
| METERING_SPOT, |
| METERING_MAX, |
| }; |
| |
| #define V4L2_CID_CAMERA_CONTRAST (V4L2_CID_PRIVATE_BASE + 78) |
| enum v4l2_contrast_mode { |
| CONTRAST_BASE = 0, |
| CONTRAST_MINUS_2, |
| CONTRAST_MINUS_1, |
| CONTRAST_DEFAULT, |
| CONTRAST_PLUS_1, |
| CONTRAST_PLUS_2, |
| CONTRAST_MAX, |
| }; |
| |
| #define V4L2_CID_CAMERA_SATURATION (V4L2_CID_PRIVATE_BASE + 79) |
| enum v4l2_saturation_mode { |
| SATURATION_BASE = 0, |
| SATURATION_MINUS_2, |
| SATURATION_MINUS_1, |
| SATURATION_DEFAULT, |
| SATURATION_PLUS_1, |
| SATURATION_PLUS_2, |
| SATURATION_MAX, |
| }; |
| |
| #define V4L2_CID_CAMERA_SHARPNESS (V4L2_CID_PRIVATE_BASE + 80) |
| enum v4l2_sharpness_mode { |
| SHARPNESS_BASE = 0, |
| SHARPNESS_MINUS_2, |
| SHARPNESS_MINUS_1, |
| SHARPNESS_DEFAULT, |
| SHARPNESS_PLUS_1, |
| SHARPNESS_PLUS_2, |
| SHARPNESS_MAX, |
| }; |
| |
| #define V4L2_CID_CAMERA_WDR (V4L2_CID_PRIVATE_BASE + 81) |
| enum v4l2_wdr_mode { |
| WDR_BASE = 0, |
| WDR_OFF, |
| WDR_ON, |
| WDR_MAX, |
| }; |
| |
| #define V4L2_CID_CAMERA_ANTI_SHAKE (V4L2_CID_PRIVATE_BASE + 82) |
| enum v4l2_anti_shake_mode { |
| ANTI_SHAKE_BASE = 0, |
| ANTI_SHAKE_OFF, |
| ANTI_SHAKE_STILL_ON, |
| ANTI_SHAKE_MOVIE_ON, |
| ANTI_SHAKE_MAX, |
| }; |
| |
| #define V4L2_CID_CAMERA_TOUCH_AF_AREA (V4L2_CID_USER_BASE | 0x1003) |
| enum v4l2_touch_af { |
| TOUCH_AF_BASE = 0, |
| TOUCH_AF_STOP, |
| TOUCH_AF_START, |
| TOUCH_AF_MAX, |
| }; |
| |
| typedef struct { |
| int leftTopX; |
| int leftTopY; |
| int rightBottomX; |
| int rightBottomY; |
| int weight; |
| }v4l2_touch_area; |
| |
| |
| #define V4L2_CID_CAMERA_SMART_AUTO (V4L2_CID_PRIVATE_BASE + 84) |
| enum v4l2_smart_auto { |
| SMART_AUTO_BASE = 0, |
| SMART_AUTO_OFF, |
| SMART_AUTO_ON, |
| SMART_AUTO_MAX, |
| }; |
| |
| #define V4L2_CID_CAMERA_VINTAGE_MODE (V4L2_CID_PRIVATE_BASE + 85) |
| enum v4l2_vintage_mode { |
| VINTAGE_MODE_BASE = 0, |
| VINTAGE_MODE_OFF, |
| VINTAGE_MODE_NORMAL, |
| VINTAGE_MODE_WARM, |
| VINTAGE_MODE_COOL, |
| VINTAGE_MODE_BNW, |
| VINTAGE_MODE_MAX, |
| }; |
| |
| #define V4L2_CID_CAMERA_JPEG_QUALITY (V4L2_CID_PRIVATE_BASE + 86) |
| #define V4L2_CID_CAMERA_GPS_LATITUDE (V4L2_CID_PRIVATE_BASE + 87) |
| #define V4L2_CID_CAMERA_GPS_LONGITUDE (V4L2_CID_PRIVATE_BASE + 88) |
| #define V4L2_CID_CAMERA_GPS_TIMESTAMP (V4L2_CID_PRIVATE_BASE + 89) |
| #define V4L2_CID_CAMERA_GPS_ALTITUDE (V4L2_CID_PRIVATE_BASE + 90) |
| #define V4L2_CID_CAMERA_EXIF_TIME_INFO (V4L2_CID_PRIVATE_BASE + 91) |
| #define V4L2_CID_CAMERA_ZOOM (V4L2_CID_PRIVATE_BASE + 92) |
| enum v4l2_zoom_level { |
| ZOOM_LEVEL_0 = 0, |
| ZOOM_LEVEL_1, |
| ZOOM_LEVEL_2, |
| ZOOM_LEVEL_3, |
| ZOOM_LEVEL_4, |
| ZOOM_LEVEL_5, |
| ZOOM_LEVEL_6, |
| ZOOM_LEVEL_7, |
| ZOOM_LEVEL_8, |
| ZOOM_LEVEL_9, |
| ZOOM_LEVEL_10, |
| ZOOM_LEVEL_11, |
| ZOOM_LEVEL_12, |
| ZOOM_LEVEL_MAX, |
| }; |
| |
| #define V4L2_CID_CAMERA_FACE_DETECTION (V4L2_CID_PRIVATE_BASE + 93) |
| enum v4l2_face_detection { |
| FACE_DETECTION_BASE = 0, |
| FACE_DETECTION_OFF, |
| FACE_DETECTION_ON, |
| FACE_DETECTION_NOLINE, |
| FACE_DETECTION_ON_BEAUTY, |
| FACE_DETECTION_MAX, |
| }; |
| |
| #define V4L2_CID_CAMERA_SMART_AUTO_STATUS (V4L2_CID_PRIVATE_BASE + 94) |
| enum v4l2_smart_auto_status { |
| SMART_AUTO_STATUS_BASE = 0, |
| SMART_AUTO_STATUS_AUTO, |
| SMART_AUTO_STATUS_LANDSCAPE, |
| SMART_AUTO_STATUS_PORTRAIT, |
| SMART_AUTO_STATUS_MACRO, |
| SMART_AUTO_STATUS_NIGHT, |
| SMART_AUTO_STATUS_PORTRAIT_NIGHT, |
| SMART_AUTO_STATUS_BACKLIT, |
| SMART_AUTO_STATUS_PORTRAIT_BACKLIT, |
| SMART_AUTO_STATUS_ANTISHAKE, |
| SMART_AUTO_STATUS_PORTRAIT_ANTISHAKE, |
| SMART_AUTO_STATUS_MAX, |
| }; |
| |
| #define V4L2_CID_CAMERA_SET_AUTO_FOCUS (V4L2_CID_USER_BASE | 0x1004) |
| enum v4l2_auto_focus { |
| AUTO_FOCUS_BASE = 0, |
| AUTO_FOCUS_OFF, |
| AUTO_FOCUS_ON, |
| AUTO_FOCUS_MAX, |
| AUTO_FOCUS_1ST_CANCEL,/* used in AF cancel */ |
| AUTO_FOCUS_2ND_CANCEL,/* used in AF cancel */ |
| }; |
| |
| #define V4L2_CID_CAMERA_BEAUTY_SHOT (V4L2_CID_PRIVATE_BASE + 96) |
| enum v4l2_beauty_shot { |
| BEAUTY_SHOT_BASE = 0, |
| BEAUTY_SHOT_OFF, |
| BEAUTY_SHOT_ON, |
| BEAUTY_SHOT_MAX, |
| }; |
| |
| #define V4L2_CID_CAMERA_AEAWB_LOCK_UNLOCK (V4L2_CID_PRIVATE_BASE + 97) |
| enum v4l2_ae_awb_lockunlock { |
| AE_AWB_BASE = 0, |
| AE_UNLOCK_AWB_UNLOCK, |
| AE_LOCK_AWB_UNLOCK, |
| AE_UNLOCK_AWB_LOCK, |
| AE_LOCK_AWB_LOCK, |
| AE_UNLOCK, |
| AE_AWB_MAX |
| }; |
| |
| #define V4L2_CID_CAMERA_FACEDETECT_LOCKUNLOCK (V4L2_CID_PRIVATE_BASE + 98) |
| enum v4l2_face_lock { |
| FACE_LOCK_BASE = 0, |
| FACE_LOCK_OFF, |
| FACE_LOCK_ON, |
| FIRST_FACE_TRACKING, |
| FACE_LOCK_MAX, |
| }; |
| |
| #define V4L2_CID_CAMERA_OBJECT_POSITION_X (V4L2_CID_PRIVATE_BASE + 99) |
| #define V4L2_CID_CAMERA_OBJECT_POSITION_Y (V4L2_CID_PRIVATE_BASE + 100) |
| #define V4L2_CID_CAMERA_FOCUS_MODE (V4L2_CID_USER_BASE | 0x100b) |
| enum v4l2_focusmode { |
| FOCUS_MODE_BASE = 0, |
| FOCUS_MODE_AUTO, |
| FOCUS_MODE_OFF, |
| FOCUS_MODE_AF, |
| FOCUS_MODE_MACRO, |
| FOCUS_MODE_FACEDETECT, |
| FOCUS_MODE_INFINITY, |
| FOCUS_MODE_CONTINUOUS_VIDEO, |
| FOCUS_MODE_CONTINUOUS_PICTURE, |
| FOCUS_MODE_CONTINUOUS_PICTURE_MACRO, |
| FOCUS_MODE_MANUAL, |
| FOCUS_MODE_MAX, |
| }; |
| |
| #define V4L2_CID_CAMERA_OBJ_TRACKING_STATUS (V4L2_CID_PRIVATE_BASE + 102) |
| enum v4l2_obj_tracking_status { |
| OBJECT_TRACKING_STATUS_BASE = 0, |
| OBJECT_TRACKING_STATUS_PROGRESSING, |
| OBJECT_TRACKING_STATUS_SUCCESS, |
| OBJECT_TRACKING_STATUS_FAIL, |
| OBJECT_TRACKING_STATUS_MISSING, |
| OBJECT_TRACKING_STATUS_MAX, |
| }; |
| |
| #define V4L2_CID_CAMERA_OBJ_TRACKING_START_STOP (V4L2_CID_PRIVATE_BASE + 103) |
| enum v4l2_ot_start_stop { |
| OT_BASE = 0, |
| OT_STOP, |
| OT_START, |
| OT_MAX, |
| }; |
| |
| #define V4L2_CID_CAMERA_CAF_START_STOP (V4L2_CID_PRIVATE_BASE + 104) |
| enum v4l2_caf_start_stop { |
| CAF_BASE = 0, |
| CAF_STOP, |
| CAF_START, |
| CAF_MAX, |
| }; |
| |
| #define V4L2_CID_CAMERA_AUTO_FOCUS_RESULT (V4L2_CID_PRIVATE_BASE + 105) |
| #define V4L2_CID_CAMERA_FRAME_RATE (V4L2_CID_USER_BASE | 0x1005) |
| enum v4l2_frame_rate { |
| FRAME_RATE_BASE = 0, |
| FRAME_RATE_AUTO, |
| FRAME_RATE_5, |
| FRAME_RATE_7, |
| FRAME_RATE_10, |
| FRAME_RATE_15, |
| FRAME_RATE_20, |
| FRAME_RATE_25, |
| FRAME_RATE_30, |
| FRAME_RATE_60, |
| FRAME_RATE_120, |
| FRAME_RATE_MAX |
| }; |
| |
| |
| |
| #define V4L2_CID_CAMERA_ANTI_BANDING (V4L2_CID_PRIVATE_BASE + 107) |
| enum v4l2_anti_banding { |
| ANTI_BANDING_BASE = 0, |
| ANTI_BANDING_AUTO, |
| ANTI_BANDING_50HZ, |
| ANTI_BANDING_60HZ, |
| ANTI_BANDING_OFF, |
| ANTI_BANDING_MAX |
| }; |
| |
| #define V4L2_CID_CAMERA_SET_GAMMA (V4L2_CID_PRIVATE_BASE + 108) |
| enum v4l2_gamma_mode { |
| GAMMA_OFF = 0, |
| GAMMA_ON = 1, |
| GAMMA_MAX, |
| }; |
| |
| #define V4L2_CID_CAMERA_SET_SLOW_AE (V4L2_CID_PRIVATE_BASE + 109) |
| enum v4l2_slow_ae_mode { |
| SLOW_AE_BASE = 0, |
| SLOW_AE_OFF, |
| SLOW_AE_ON, |
| SLOW_AE_MAX, |
| }; |
| |
| #define V4L2_CID_CAMERA_BATCH_REFLECTION (V4L2_CID_PRIVATE_BASE + 110) |
| #define V4L2_CID_CAMERA_EXIF_ORIENTATION (V4L2_CID_PRIVATE_BASE + 111) |
| |
| #define V4L2_CID_CAMERA_RESET (V4L2_CID_PRIVATE_BASE + 112) |
| #define V4L2_CID_CAMERA_CHECK_DATALINE (V4L2_CID_PRIVATE_BASE + 113) |
| enum v4l2_check_dataline { |
| CHK_DATALINE_OFF =0, |
| CHK_DATALINE_ON, |
| |
| }; |
| #define V4L2_CID_CAMERA_CHECK_DATALINE_STOP (V4L2_CID_PRIVATE_BASE + 114) |
| #define V4L2_CID_CAMERA_GET_ISO (V4L2_CID_PRIVATE_BASE + 115) |
| #define V4L2_CID_CAMERA_GET_SHT_TIME (V4L2_CID_PRIVATE_BASE + 116) |
| #define V4L2_CID_CAMERA_SENSOR_MODE (V4L2_CID_PRIVATE_BASE + 117) |
| enum v4l2_sensor_mode { |
| SENSOR_BASE = 0, |
| SENSOR_CAMERA, |
| SENSOR_MOVIE, |
| SENSOR_MAX |
| }; |
| |
| #define V4L2_CID_ESD_INT (V4L2_CID_PRIVATE_BASE + 118) |
| #define V4L2_CID_CAMERA_GET_FLASH_ONOFF (V4L2_CID_PRIVATE_BASE + 119) |
| #define V4L2_CID_CAMERA_RETURN_FOCUS (V4L2_CID_PRIVATE_BASE + 120) |
| #define V4L2_CID_CAMERA_FLASH_CONTROL (V4L2_CID_PRIVATE_BASE + 121) |
| |
| enum v4l2_flash_control { |
| FLASH_CONTROL_BASE = 0, |
| FLASH_CONTROL_OFF, |
| FLASH_CONTROL_LOW_LEVEL, |
| FLASH_CONTROL_MIDDLE_LEVEL, |
| FLASH_CONTROL_HIGH_LEVEL, |
| FLASH_CONTROL_MAX_LEVEL |
| }; |
| |
| #define V4L2_CID_CAMERA_FLASH_CHECK (V4L2_CID_PRIVATE_BASE + 122) |
| #define V4L2_CID_CAMERA_POSTVIEW_WIDTH (V4L2_CID_PRIVATE_BASE + 123) |
| #define V4L2_CID_CAMERA_POSTVIEW_HEIGHT (V4L2_CID_PRIVATE_BASE + 124) |
| #define V4L2_CID_CAMERA_SENSOR_ID (V4L2_CID_PRIVATE_BASE + 125) |
| #define V4L2_CID_CAMERA_AE_AWB_LOCKUNLOCK (V4L2_CID_PRIVATE_BASE + 126) |
| #define V4L2_CID_CAMERA_DEFAULT_FOCUS_POSITION (V4L2_CID_PRIVATE_BASE + 127) |
| #define V4L2_CID_CAMERA_SET_AF_PREFLASH (V4L2_CID_PRIVATE_BASE + 128) |
| |
| enum v4l2_af_preflash { |
| PREFLASH_OFF =0, |
| PREFLASH_ON, |
| }; |
| |
| #define V4L2_CID_CAM_CAPTURE_DONE (V4L2_CID_USER_BASE | 0x1007) |
| #define V4L2_CID_CAMERA_AE_STABLE_RESULT (V4L2_CID_PRIVATE_BASE + 130) |
| |
| #define V4L2_CID_CAMERA_EXIF_SENSOR_INFO (V4L2_CID_PRIVATE_BASE + 131) |
| #define V4L2_CID_CAMERA_GET_ESD_SHOCK_STATUS (V4L2_CID_PRIVATE_BASE + 132) |
| #define V4L2_CID_CAMERA_ESD_DETECTED_RESTART_CAMERA \ |
| (V4L2_CID_PRIVATE_BASE + 133) |
| #define V4L2_CID_CAMERA_INITIALIZE (V4L2_CID_PRIVATE_BASE + 134) |
| |
| #define V4L2_CID_CAMERA_READ_MODE_CHANGE_REG (V4L2_CID_PRIVATE_BASE + 135) |
| #define V4L2_CID_CAM_SET_MODE (V4L2_CID_PRIVATE_BASE + 136) |
| #define V4L2_CID_CAMERA_LENS_POSITION (V4L2_CID_USER_BASE | 0x1009) |
| #define V4L2_CID_CAM_MOUNTING (V4L2_CID_USER_BASE | 0x1008) |
| |
| struct v4l2_exif_sensor_info { |
| char strSoftware[20]; |
| char strMake[20]; |
| char strModel[20]; |
| |
| char exposureTime[20]; |
| char FNumber[20]; |
| char exposureProgram[20]; |
| char isoSpeedRating[20]; |
| char shutterSpeed[20]; |
| char aperture[20]; |
| char brightness[20]; |
| char exposureBias[20]; |
| char maxLensAperture[20]; |
| char flash[20]; |
| char lensFocalLength[20]; |
| char userComments[30]; |
| char colorSpaceInfo[20]; |
| char contrast[20]; |
| char saturation[20]; |
| char sharpness[20]; |
| }; |
| |
| /* Pixel format FOURCC depth Description */ |
| /* 12 Y/CbCr 4:2:0 64x32 macroblocks */ |
| #define V4L2_PIX_FMT_NV12T v4l2_fourcc('T', 'V', '1', '2') |
| |
| /* |
| * * V4L2 extention for digital camera |
| * */ |
| /* |
| * private ioctls |
| */ |
| /* ioctls needed to query, get, set thumbnail info */ |
| #define VIDIOC_THUMB_SUPPORTED _IOR('V', BASE_VIDIOC_PRIVATE+0, int) |
| #define VIDIOC_THUMB_G_FMT _IOR('V', BASE_VIDIOC_PRIVATE+1, struct v4l2_format) |
| #define VIDIOC_THUMB_S_FMT _IOWR('V', BASE_VIDIOC_PRIVATE+2, struct v4l2_format) |
| |
| |
| |
| /* Strobe flash light */ |
| enum v4l2_strobe_control { |
| /* turn off the flash light */ |
| V4L2_STROBE_CONTROL_OFF = 0, |
| /* turn on the flash light */ |
| V4L2_STROBE_CONTROL_ON = 1, |
| /* act guide light before splash */ |
| V4L2_STROBE_CONTROL_AFGUIDE = 2, |
| /* charge the flash light */ |
| V4L2_STROBE_CONTROL_CHARGE = 3, |
| }; |
| |
| enum v4l2_strobe_conf { |
| V4L2_STROBE_OFF = 0, /* Always off */ |
| V4L2_STROBE_ON = 1, /* Always splashes */ |
| /* Auto control presets */ |
| V4L2_STROBE_AUTO = 2, |
| V4L2_STROBE_REDEYE_REDUCTION = 3, |
| V4L2_STROBE_SLOW_SYNC = 4, |
| V4L2_STROBE_FRONT_CURTAIN = 5, |
| V4L2_STROBE_REAR_CURTAIN = 6, |
| /* Extra manual control presets */ |
| /* keep turned on until turning off */ |
| V4L2_STROBE_PERMANENT = 7, |
| V4L2_STROBE_EXTERNAL = 8, |
| }; |
| |
| enum v4l2_strobe_status { |
| V4L2_STROBE_STATUS_OFF = 0, |
| /* while processing configurations */ |
| V4L2_STROBE_STATUS_BUSY = 1, |
| V4L2_STROBE_STATUS_ERR = 2, |
| V4L2_STROBE_STATUS_CHARGING = 3, |
| V4L2_STROBE_STATUS_CHARGED = 4, |
| }; |
| |
| /* capabilities field */ |
| /* No strobe supported */ |
| #define V4L2_STROBE_CAP_NONE 0x0000 |
| /* Always flash off mode */ |
| #define V4L2_STROBE_CAP_OFF 0x0001 |
| /* Always use flash light mode */ |
| #define V4L2_STROBE_CAP_ON 0x0002 |
| /* Flashlight works automatic */ |
| #define V4L2_STROBE_CAP_AUTO 0x0004 |
| /* Red-eye reduction */ |
| #define V4L2_STROBE_CAP_REDEYE 0x0008 |
| /* Slow sync */ |
| #define V4L2_STROBE_CAP_SLOWSYNC 0x0010 |
| /* Front curtain */ |
| #define V4L2_STROBE_CAP_FRONT_CURTAIN 0x0020 |
| /* Rear curtain */ |
| #define V4L2_STROBE_CAP_REAR_CURTAIN 0x0040 |
| /* keep turned on until turning off */ |
| #define V4L2_STROBE_CAP_PERMANENT 0x0080 |
| /* use external strobe */ |
| #define V4L2_STROBE_CAP_EXTERNAL 0x0100 |
| |
| /* Set mode and Get status */ |
| struct v4l2_strobe { |
| /* off/on/charge:0/1/2 */ |
| enum v4l2_strobe_control control; |
| /* supported strobe capabilities */ |
| __u32 capabilities; |
| enum v4l2_strobe_conf mode; |
| enum v4l2_strobe_status status; /* read only */ |
| /* default is 0 and range of value varies from each models */ |
| __u32 flash_ev; |
| __u32 reserved[4]; |
| }; |
| |
| #define VIDIOC_S_STROBE _IOWR('V', BASE_VIDIOC_PRIVATE+3, struct v4l2_strobe) |
| #define VIDIOC_G_STROBE _IOR('V', BASE_VIDIOC_PRIVATE+4, struct v4l2_strobe) |
| |
| /* Object recognition and collateral actions */ |
| enum v4l2_recog_mode { |
| V4L2_RECOGNITION_MODE_OFF = 0, |
| V4L2_RECOGNITION_MODE_ON = 1, |
| V4L2_RECOGNITION_MODE_LOCK = 2, |
| }; |
| |
| enum v4l2_recog_action { |
| V4L2_RECOGNITION_ACTION_NONE = 0, /* only recognition */ |
| V4L2_RECOGNITION_ACTION_BLINK = 1, /* Capture on blinking */ |
| V4L2_RECOGNITION_ACTION_SMILE = 2, /* Capture on smiling */ |
| }; |
| |
| enum v4l2_recog_pattern { |
| V4L2_RECOG_PATTERN_FACE = 0, /* Face */ |
| V4L2_RECOG_PATTERN_HUMAN = 1, /* Human */ |
| V4L2_RECOG_PATTERN_CHAR = 2, /* Character */ |
| }; |
| |
| struct v4l2_recog_rect { |
| enum v4l2_recog_pattern p; /* detected pattern */ |
| struct v4l2_rect o; /* detected area */ |
| __u32 reserved[4]; |
| }; |
| |
| struct v4l2_recog_data { |
| __u8 detect_cnt; /* detected object counter */ |
| struct v4l2_rect o; /* detected area */ |
| __u32 reserved[4]; |
| }; |
| |
| struct v4l2_recognition { |
| enum v4l2_recog_mode mode; |
| |
| /* Which pattern to detect */ |
| enum v4l2_recog_pattern pattern; |
| |
| /* How many object to detect */ |
| __u8 obj_num; |
| |
| /* select detected object */ |
| __u32 detect_idx; |
| |
| /* read only :Get object coordination */ |
| struct v4l2_recog_data data; |
| |
| enum v4l2_recog_action action; |
| __u32 reserved[4]; |
| }; |
| |
| #define VIDIOC_S_RECOGNITION _IOWR('V', BASE_VIDIOC_PRIVATE+5, struct v4l2_recognition) |
| #define VIDIOC_G_RECOGNITION _IOR('V', BASE_VIDIOC_PRIVATE+6, struct v4l2_recognition) |
| |
| /* We use this struct as the v4l2_streamparm raw_data for |
| * VIDIOC_G_PARM and VIDIOC_S_PARM |
| */ |
| struct sec_cam_parm { |
| struct v4l2_captureparm capture; |
| int contrast; |
| int effects; |
| int brightness; |
| int flash_mode; |
| int focus_mode; |
| int iso; |
| int metering; |
| int saturation; |
| int scene_mode; |
| int sharpness; |
| int white_balance; |
| int fps; |
| int zoom; |
| }; |
| |
| enum preview_frame_size { |
| PREVIEW_SIZE_QCIF = 0, /*176x144*/ |
| PREVIEW_SIZE_QVGA, /*320x240*/ |
| PREVIEW_SIZE_CIF, /*352x288*/ |
| PREVIEW_SIZE_VGA, /* 640x480 */ |
| PREVIEW_SIZE_4CIF, /*704 x576*/ |
| PREVIEW_SIZE_D1, /* 720x480 */ |
| PREVIEW_SIZE_WVGA, /* 800x480 */ |
| PREVIEW_SIZE_SVGA, /* 800x600 */ |
| PREVIEW_SIZE_WSVGA, /* 1024x600 */ |
| PREVIEW_SIZE_XGA, /* 1024x768 */ |
| PREVIEW_SIZE_1MP, /* 1280x960 */ |
| PREVIEW_SIZE_W1MP, /* 1600x960 */ |
| PREVIEW_SIZE_2MP, /* UXGA - 1600x1200 */ |
| PREVIEW_SIZE_W2MP, /* 2048x1232, 2.4MP */ |
| PREVIEW_SIZE_3MP, /*2048x1536*/ |
| PREVIEW_SIZE_5MP, /* 2560x1920 */ |
| PREVIEW_SIZE_MAX, |
| }; |
| |
| enum capture_frame_size { |
| CAPTURE_SIZE_VGA = 0, /* 640x480 */ |
| CAPTURE_SIZE_WVGA, /* 800x480 */ |
| CAPTURE_SIZE_SVGA, /* 800x600 */ |
| CAPTURE_SIZE_D1, /* 720x480 */ |
| CAPTURE_SIZE_WSVGA, /* 1024x600 */ |
| CAPTURE_SIZE_XGA, /* 1024x768 */ |
| CAPTURE_SIZE_1MP, /* 1280x960 */ |
| CAPTURE_SIZE_W1MP, /* 1600x960 */ |
| CAPTURE_SIZE_2MP, /* UXGA - 1600x1200 */ |
| CAPTURE_SIZE_W2MP, /* 2048x1232, 2.4MP */ |
| CAPTURE_SIZE_3MP, /*2048x1536*/ |
| CAPTURE_SIZE_5MP, /* 2560x1920 */ |
| CAPTURE_SIZE_MAX, |
| }; |
| |
| enum auto_focus_result{ |
| CAMERA_AF_STATUS_FOCUSED = 0, |
| CAMERA_AF_STATUS_FAILED, |
| CAMERA_AF_STATUS_SEARCHING, |
| CAMERA_AF_STATUS_CANCELLED, |
| }; |
| |
| enum CameraMode { |
| INIT_MODE = 0, |
| CAMERA_PREVIEW_MODE, |
| CAMCORDER_PREVIEW_MODE, |
| PICTURE_MODE |
| }; |
| |
| |
| |
| /* |
| * needed to remove padding with unicam interface |
| */ |
| struct v4l2_jpeg_packet_info { |
| int padded; /* if non zero specifies no of bytes added */ |
| int packet_size; /*packet size/offset where padded bytes are inserted */ |
| }; |
| |
| #define VIDIOC_JPEG_G_PACKET_INFO _IOR('V', BASE_VIDIOC_PRIVATE+7, struct v4l2_jpeg_packet_info) |
| |
| |
| struct v4l2_sensor_optical_info { |
| struct v4l2_fract hor_angle; /* horizontal view angle */ |
| struct v4l2_fract ver_angle; /* vertical view angle */ |
| |
| /* focus distance |
| * element 0 -near focus distance in CM, |
| * element 1 -optimal focus distance in CM, |
| * element 2 - far focus distance in CM, |
| * -1 for for infinity */ |
| int focus_distance[3]; |
| |
| /* |
| * focal length in mm |
| */ |
| struct v4l2_fract focal_length; |
| }; |
| |
| #define VIDIOC_SENSOR_G_OPTICAL_INFO _IOR('V', BASE_VIDIOC_PRIVATE+8, struct v4l2_sensor_optical_info) |
| |
| struct v4l2_frame_info { |
| int exposure; |
| int an_gain; |
| int lens_pos; |
| int flash_mode; |
| int flash_intensity; |
| struct timespec timestamp; |
| }; |
| |
| #define VIDIOC_SENSOR_G_FRAME_INFO \ |
| _IOWR('V', BASE_VIDIOC_PRIVATE+9, struct v4l2_frame_info) |
| #define VIDIOC_SENSOR_S_FRAME_INFO \ |
| _IOWR('V', BASE_VIDIOC_PRIVATE+10, struct v4l2_frame_info) |
| #define VIDIOC_SENSOR_FRAME_IRQ \ |
| _IOWR('V', BASE_VIDIOC_PRIVATE+11, __u32) |
| |
| #else |
| |
| typedef const __u32 regs_t; |
| |
| |
| /* Values for 'capabilities' field */ |
| /* Object detection device */ |
| #define V4L2_CAP_OBJ_RECOGNITION 0x10000000 |
| /* strobe control */ |
| #define V4L2_CAP_STROBE 0x20000000 |
| |
| /* |
| * private controls |
| */ |
| #define V4L2_CID_FOCUS_MODE (V4L2_CID_USER_BASE | 0x1002) |
| /* Focus Methods */ |
| enum v4l2_focus_mode { |
| V4L2_FOCUS_MODE_AUTO = 0, |
| V4L2_FOCUS_MODE_MACRO = 1, |
| V4L2_FOCUS_MODE_MANUAL = 2, |
| V4L2_FOCUS_MODE_LASTP = 2, |
| }; |
| |
| #define V4L2_CID_ZOOM_MODE (V4L2_CID_USER_BASE | 0x1003) |
| /* Zoom Methods */ |
| enum v4l2_zoom_mode { |
| V4L2_ZOOM_MODE_CONTINUOUS = 0, |
| V4L2_ZOOM_MODE_OPTICAL = 1, |
| V4L2_ZOOM_MODE_DIGITAL = 2, |
| V4L2_ZOOM_MODE_LASTP = 2, |
| }; |
| |
| /* Exposure Methods */ |
| #define V4L2_CID_PHOTOMETRY (V4L2_CID_USER_BASE | 0x1004) |
| enum v4l2_photometry_mode { |
| V4L2_PHOTOMETRY_MULTISEG = 0, /*Multi Segment */ |
| V4L2_PHOTOMETRY_CWA = 1, /*Centre Weighted Average */ |
| V4L2_PHOTOMETRY_SPOT = 2, |
| V4L2_PHOTOMETRY_AFSPOT = 3, /*Spot metering on focused point */ |
| V4L2_PHOTOMETRY_LASTP = V4L2_PHOTOMETRY_AFSPOT, |
| }; |
| |
| /* Manual exposure control items menu type: iris, shutter, iso */ |
| #define V4L2_CID_CAM_APERTURE (V4L2_CID_USER_BASE | 0x1005) |
| #define V4L2_CID_CAM_SHUTTER (V4L2_CID_USER_BASE | 0x1006) |
| #define V4L2_CID_CAM_ISO (V4L2_CID_USER_BASE | 0x1007) |
| |
| /* Following CIDs are menu type */ |
| #define V4L2_CID_SCENEMODE (V4L2_CID_USER_BASE | 0x1008) |
| #define V4L2_CID_CAM_STABILIZE (V4L2_CID_USER_BASE | 0x1009) |
| #define V4L2_CID_CAM_MULTISHOT (V4L2_CID_USER_BASE | 0x100A) |
| |
| /* Control dynamic range */ |
| #define V4L2_CID_CAM_DR (V4L2_CID_USER_BASE | 0x100B) |
| |
| /* White balance preset control */ |
| #define V4L2_CID_WHITE_BALANCE_PRESET (V4L2_CID_USER_BASE | 0x100C) |
| |
| /* CID extensions */ |
| #define V4L2_CID_ROTATION (V4L2_CID_USER_BASE | 0x100D) |
| #define V4L2_CID_PADDR_Y (V4L2_CID_USER_BASE | 0x100E) |
| #define V4L2_CID_PADDR_CB (V4L2_CID_USER_BASE | 0x100F) |
| #define V4L2_CID_PADDR_CR (V4L2_CID_USER_BASE | 0x1010) |
| #define V4L2_CID_PADDR_CBCR (V4L2_CID_USER_BASE | 0x1011) |
| #define V4L2_CID_OVERLAY_AUTO (V4L2_CID_USER_BASE | 0x1012) |
| #define V4L2_CID_OVERLAY_VADDR0 (V4L2_CID_USER_BASE | 0x1013) |
| #define V4L2_CID_OVERLAY_VADDR1 (V4L2_CID_USER_BASE | 0x1014) |
| #define V4L2_CID_OVERLAY_VADDR2 (V4L2_CID_USER_BASE | 0x1015) |
| #define V4L2_CID_OVLY_MODE (V4L2_CID_USER_BASE | 0x1016) |
| #define V4L2_CID_DST_INFO (V4L2_CID_USER_BASE | 0x1017) |
| #define V4L2_CID_IMAGE_EFFECT_FN (V4L2_CID_USER_BASE | 0x1018) |
| #define V4L2_CID_IMAGE_EFFECT_APPLY (V4L2_CID_USER_BASE | 0x1019) |
| #define V4L2_CID_IMAGE_EFFECT_CB (V4L2_CID_USER_BASE | 0x101A) |
| #define V4L2_CID_IMAGE_EFFECT_CR (V4L2_CID_USER_BASE | 0x101B) |
| #define V4L2_CID_RESERVED_MEM_BASE_ADDR (V4L2_CID_USER_BASE | 0x101C) |
| #define V4L2_CID_FIMC_VERSION (V4L2_CID_USER_BASE | 0x101D) |
| |
| #define V4L2_CID_STREAM_PAUSE (V4L2_CID_USER_BASE | 0x101E) |
| |
| /* CID Extensions for camera sensor operations */ |
| #define V4L2_CID_CAM_PREVIEW_ONOFF (V4L2_CID_USER_BASE | 0x101F) |
| #define V4L2_CID_CAM_CAPTURE (V4L2_CID_USER_BASE | 0x1020) |
| #define V4L2_CID_CAM_JPEG_MEMSIZE (V4L2_CID_USER_BASE | 0x1021) |
| |
| #define V4L2_CID_CAM_DATE_INFO_YEAR (V4L2_CID_USER_BASE | 0x1022) |
| #define V4L2_CID_CAM_DATE_INFO_MONTH (V4L2_CID_USER_BASE | 0x1023) |
| #define V4L2_CID_CAM_DATE_INFO_DATE (V4L2_CID_USER_BASE | 0x1024) |
| #define V4L2_CID_CAM_SENSOR_VER (V4L2_CID_USER_BASE | 0x1025) |
| #define V4L2_CID_CAM_FW_MINOR_VER (V4L2_CID_USER_BASE | 0x1026) |
| #define V4L2_CID_CAM_FW_MAJOR_VER (V4L2_CID_USER_BASE | 0x1027) |
| #define V4L2_CID_CAM_PRM_MINOR_VER (V4L2_CID_USER_BASE | 0x1028) |
| #define V4L2_CID_CAM_PRM_MAJOR_VER (V4L2_CID_USER_BASE | 0x1029) |
| #define V4L2_CID_CAM_FW_VER (V4L2_CID_USER_BASE | 0x102A) |
| #define V4L2_CID_CAM_SET_FW_ADDR (V4L2_CID_USER_BASE | 0x102B) |
| #define V4L2_CID_CAM_SET_FW_SIZE (V4L2_CID_USER_BASE | 0x102C) |
| #define V4L2_CID_CAM_UPDATE_FW (V4L2_CID_USER_BASE | 0x102D) |
| enum v4l2_firmware_mode { |
| FW_MODE_BASE = 0, |
| FW_MODE_NONE, |
| FW_MODE_VERSION, |
| FW_MODE_UPDATE, |
| FW_MODE_DUMP, |
| FW_MODE_MAX |
| }; |
| |
| #define V4L2_CID_CAM_JPEG_MAIN_SIZE (V4L2_CID_USER_BASE | 0x102E) |
| #define V4L2_CID_CAM_JPEG_MAIN_OFFSET (V4L2_CID_USER_BASE | 0x102F) |
| #define V4L2_CID_CAM_JPEG_THUMB_SIZE (V4L2_CID_USER_BASE | 0x1030) |
| #define V4L2_CID_CAM_JPEG_THUMB_OFFSET (V4L2_CID_USER_BASE | 0x1020) |
| #define V4L2_CID_CAM_JPEG_POSTVIEW_OFFSET (V4L2_CID_USER_BASE | 0x1032) |
| #define V4L2_CID_CAM_JPEG_QUALITY (V4L2_CID_USER_BASE | 0x1033) |
| |
| enum v4l2_jpeg_quality{ |
| JPEG_QUALITY_BASE = 0, |
| JPEG_QUALITY_ECONOMY, |
| JPEG_QUALITY_NORMAL, |
| JPEG_QUALITY_FINE, |
| JPEG_QUALITY_SUPERFINE, |
| JPEG_QUALITY_MAX, |
| }; |
| |
| |
| #define V4L2_CID_CAM_SENSOR_MAKER (V4L2_CID_USER_BASE | 0x1034) |
| #define V4L2_CID_CAM_SENSOR_OPTICAL (V4L2_CID_USER_BASE | 0x1035) |
| #define V4L2_CID_CAM_AF_VER_LOW (V4L2_CID_USER_BASE | 0x1036) |
| #define V4L2_CID_CAM_AF_VER_HIGH (V4L2_CID_USER_BASE | 0x1037) |
| #define V4L2_CID_CAM_GAMMA_RG_LOW (V4L2_CID_USER_BASE | 0x1038) |
| #define V4L2_CID_CAM_GAMMA_RG_HIGH (V4L2_CID_USER_BASE | 0x1039) |
| #define V4L2_CID_CAM_GAMMA_BG_LOW (V4L2_CID_USER_BASE | 0x103A) |
| #define V4L2_CID_CAM_GAMMA_BG_HIGH (V4L2_CID_USER_BASE | 0x103B) |
| #define V4L2_CID_CAM_DUMP_FW (V4L2_CID_USER_BASE | 0x103C) |
| #define V4L2_CID_CAM_GET_DUMP_SIZE (V4L2_CID_USER_BASE | 0x103D) |
| #define V4L2_CID_CAMERA_VT_MODE (V4L2_CID_USER_BASE | 0x103E) |
| enum cam_vt_mode { |
| CAM_VT_MODE_BASE = 0, |
| CAM_VT_MODE_3G , |
| CAM_VT_MODE_VOIP , |
| CAM_VT_MODE_SMART_STAY , |
| CAM_VT_MODE_MAX |
| }; |
| |
| #define V4L2_CID_CAMERA_VGA_BLUR (V4L2_CID_USER_BASE | 0x103F) |
| #define V4L2_CID_CAMERA_CAPTURE (V4L2_CID_USER_BASE | 0x1040) |
| |
| #define V4L2_CID_MAIN_SW_DATE_INFO_YEAR (V4L2_CID_USER_BASE | 0x1041) |
| #define V4L2_CID_MAIN_SW_DATE_INFO_MONTH (V4L2_CID_USER_BASE | 0x1042) |
| #define V4L2_CID_MAIN_SW_DATE_INFO_DATE (V4L2_CID_USER_BASE | 0x1043) |
| #define V4L2_CID_MAIN_SW_FW_MINOR_VER (V4L2_CID_USER_BASE | 0x1044) |
| #define V4L2_CID_MAIN_SW_FW_MAJOR_VER (V4L2_CID_USER_BASE | 0x1045) |
| #define V4L2_CID_MAIN_SW_PRM_MINOR_VER (V4L2_CID_USER_BASE | 0x1046) |
| #define V4L2_CID_MAIN_SW_PRM_MAJOR_VER (V4L2_CID_USER_BASE | 0x1047) |
| |
| enum v4l2_blur { |
| BLUR_LEVEL_BASE = 0, |
| BLUR_LEVEL_0, |
| BLUR_LEVEL_1, |
| BLUR_LEVEL_2, |
| BLUR_LEVEL_3, |
| BLUR_LEVEL_MAX, |
| }; |
| |
| #define V4L2_CID_CAMERA_SCENE_MODE (V4L2_CID_USER_BASE | 0x1048) |
| enum v4l2_scene_mode_ { |
| SCENE_MODE_BASE = 0, |
| SCENE_MODE_NONE, |
| SCENE_MODE_PORTRAIT, |
| SCENE_MODE_NIGHTSHOT, |
| SCENE_MODE_BACK_LIGHT, |
| SCENE_MODE_LANDSCAPE, |
| SCENE_MODE_SPORTS, |
| SCENE_MODE_PARTY_INDOOR, |
| SCENE_MODE_BEACH_SNOW, |
| SCENE_MODE_SUNSET, |
| SCENE_MODE_DUSK_DAWN, |
| SCENE_MODE_FALL_COLOR, |
| SCENE_MODE_FIREWORKS, |
| SCENE_MODE_TEXT, |
| SCENE_MODE_CANDLE_LIGHT, |
| SCENE_MODE_MAX, |
| }; |
| |
| #define V4L2_CID_CAMERA_FLASH_MODE (V4L2_CID_USER_BASE | 0x1049) |
| enum v4l2_flash_mode { |
| FLASH_MODE_BASE = 0, |
| FLASH_MODE_OFF, |
| FLASH_MODE_AUTO, |
| FLASH_MODE_ON, |
| FLASH_MODE_TORCH_ON, |
| FLASH_MODE_TORCH_OFF, |
| FLASH_MAIN_OFF, |
| FLASH_MODE_REDEYE, |
| FLASH_MODE_MAX, |
| }; |
| |
| |
| #define V4L2_CID_CAMERA_BRIGHTNESS (V4L2_CID_USER_BASE | 0x104A) |
| enum v4l2_ev_mode { |
| EV_BASE = 0, |
| EV_MINUS_4, |
| EV_MINUS_3, |
| EV_MINUS_2, |
| EV_MINUS_1, |
| EV_DEFAULT, |
| EV_PLUS_1, |
| EV_PLUS_2, |
| EV_PLUS_3, |
| EV_PLUS_4, |
| EV_MINUS_1_5, |
| EV_MINUS_0_5, |
| EV_PLUS_0_5, |
| EV_PLUS_1_5, |
| EV_MAXIMUM, |
| }; |
| |
| #define V4L2_CID_CAMERA_WHITE_BALANCE (V4L2_CID_USER_BASE | 0x104B) |
| enum v4l2_wb_mode { |
| WHITE_BALANCE_BASE = 0, |
| WHITE_BALANCE_AUTO, |
| WHITE_BALANCE_SUNNY, |
| WHITE_BALANCE_CLOUDY, |
| WHITE_BALANCE_TUNGSTEN, |
| WHITE_BALANCE_FLUORESCENT, |
| WHITE_BALANCE_CWF, |
| WHITE_BALANCE_DAYLIGHT, |
| WHITE_BALANCE_INCANDESCENT, |
| WHITE_BALANCE_SHADE, |
| WHITE_BALANCE_HORIZON, |
| WHITE_BALANCE_MAX, |
| }; |
| |
| #define V4L2_CID_CAMERA_EFFECT (V4L2_CID_USER_BASE | 0x104C) |
| enum v4l2_effect_mode { |
| IMAGE_EFFECT_BASE = 0, |
| IMAGE_EFFECT_NONE, |
| IMAGE_EFFECT_MONO, |
| IMAGE_EFFECT_SEPIA, |
| IMAGE_EFFECT_AQUA, |
| IMAGE_EFFECT_ANTIQUE, |
| IMAGE_EFFECT_NEGATIVE, |
| IMAGE_EFFECT_SHARPEN, |
| IMAGE_EFFECT_SOLARIZATION, |
| IMAGE_EFFECT_BNW, |
| IMAGE_EFFECT_EMBOSS, |
| IMAGE_EFFECT_OUTLINE, |
| IMAGE_EFFECT_MAX, |
| }; |
| |
| #define V4L2_CID_CAMERA_ISO (V4L2_CID_USER_BASE | 0x104D) |
| enum v4l2_iso_mode { |
| ISO_BASE = 0, |
| ISO_AUTO, |
| ISO_50, |
| ISO_100, |
| ISO_200, |
| ISO_400, |
| ISO_800, |
| ISO_1200, |
| ISO_1600, |
| ISO_2400, |
| ISO_3200, |
| ISO_SPORTS, |
| ISO_NIGHT, |
| ISO_MOVIE, |
| ISO_MAX, |
| }; |
| |
| #define V4L2_CID_CAMERA_METERING (V4L2_CID_USER_BASE | 0x104E) |
| enum v4l2_metering_mode { |
| METERING_BASE = 0, |
| METERING_MATRIX, |
| METERING_CENTER, |
| METERING_SPOT, |
| METERING_MAX, |
| }; |
| |
| #define V4L2_CID_CAMERA_CONTRAST (V4L2_CID_USER_BASE | 0x104F) |
| enum v4l2_contrast_mode { |
| CONTRAST_BASE = 0, |
| CONTRAST_MINUS_2, |
| CONTRAST_MINUS_1, |
| CONTRAST_DEFAULT, |
| CONTRAST_PLUS_1, |
| CONTRAST_PLUS_2, |
| CONTRAST_MAX, |
| }; |
| |
| #define V4L2_CID_CAMERA_SATURATION (V4L2_CID_USER_BASE | 0x1050) |
| enum v4l2_saturation_mode { |
| SATURATION_BASE = 0, |
| SATURATION_MINUS_2, |
| SATURATION_MINUS_1, |
| SATURATION_DEFAULT, |
| SATURATION_PLUS_1, |
| SATURATION_PLUS_2, |
| SATURATION_MAX, |
| }; |
| |
| #define V4L2_CID_CAMERA_SHARPNESS (V4L2_CID_USER_BASE | 0x1051) |
| enum v4l2_sharpness_mode { |
| SHARPNESS_BASE = 0, |
| SHARPNESS_MINUS_2, |
| SHARPNESS_MINUS_1, |
| SHARPNESS_DEFAULT, |
| SHARPNESS_PLUS_1, |
| SHARPNESS_PLUS_2, |
| SHARPNESS_MAX, |
| }; |
| |
| #define V4L2_CID_CAMERA_WDR (V4L2_CID_USER_BASE | 0x1052) |
| enum v4l2_wdr_mode { |
| WDR_BASE = 0, |
| WDR_OFF, |
| WDR_ON, |
| WDR_MAX, |
| }; |
| |
| #define V4L2_CID_CAMERA_ANTI_SHAKE (V4L2_CID_USER_BASE | 0x1053) |
| enum v4l2_anti_shake_mode { |
| ANTI_SHAKE_BASE = 0, |
| ANTI_SHAKE_OFF, |
| ANTI_SHAKE_STILL_ON, |
| ANTI_SHAKE_MOVIE_ON, |
| ANTI_SHAKE_MAX, |
| }; |
| |
| #define V4L2_CID_CAMERA_TOUCH_AF_AREA (V4L2_CID_USER_BASE | 0x1054) |
| enum v4l2_touch_af { |
| TOUCH_AF_BASE = 0, |
| TOUCH_AF_STOP, |
| TOUCH_AF_START, |
| TOUCH_AF_MAX, |
| }; |
| |
| typedef struct { |
| int leftTopX; |
| int leftTopY; |
| int rightBottomX; |
| int rightBottomY; |
| int weight; |
| }v4l2_touch_area; |
| |
| |
| #define V4L2_CID_CAMERA_SMART_AUTO (V4L2_CID_USER_BASE | 0x1055) |
| enum v4l2_smart_auto { |
| SMART_AUTO_BASE = 0, |
| SMART_AUTO_OFF, |
| SMART_AUTO_ON, |
| SMART_AUTO_MAX, |
| }; |
| |
| #define V4L2_CID_CAMERA_VINTAGE_MODE (V4L2_CID_USER_BASE | 0x1056) |
| enum v4l2_vintage_mode { |
| VINTAGE_MODE_BASE = 0, |
| VINTAGE_MODE_OFF, |
| VINTAGE_MODE_NORMAL, |
| VINTAGE_MODE_WARM, |
| VINTAGE_MODE_COOL, |
| VINTAGE_MODE_BNW, |
| VINTAGE_MODE_MAX, |
| }; |
| |
| #define V4L2_CID_CAMERA_JPEG_QUALITY (V4L2_CID_USER_BASE | 0x1057) |
| #define V4L2_CID_CAMERA_GPS_LATITUDE (V4L2_CID_USER_BASE | 0x1058) |
| #define V4L2_CID_CAMERA_GPS_LONGITUDE (V4L2_CID_USER_BASE | 0x1059) |
| #define V4L2_CID_CAMERA_GPS_TIMESTAMP (V4L2_CID_USER_BASE | 0x105A) |
| #define V4L2_CID_CAMERA_GPS_ALTITUDE (V4L2_CID_USER_BASE | 0x105B) |
| #define V4L2_CID_CAMERA_EXIF_TIME_INFO (V4L2_CID_USER_BASE | 0x105C) |
| #define V4L2_CID_CAMERA_ZOOM (V4L2_CID_USER_BASE | 0x105D) |
| enum v4l2_zoom_level { |
| ZOOM_LEVEL_0 = 0, |
| ZOOM_LEVEL_1, |
| ZOOM_LEVEL_2, |
| ZOOM_LEVEL_3, |
| ZOOM_LEVEL_4, |
| ZOOM_LEVEL_5, |
| ZOOM_LEVEL_6, |
| ZOOM_LEVEL_7, |
| ZOOM_LEVEL_8, |
| ZOOM_LEVEL_9, |
| ZOOM_LEVEL_10, |
| ZOOM_LEVEL_11, |
| ZOOM_LEVEL_12, |
| ZOOM_LEVEL_MAX, |
| }; |
| |
| #define V4L2_CID_CAMERA_FACE_DETECTION (V4L2_CID_USER_BASE | 0x105E) |
| enum v4l2_face_detection { |
| FACE_DETECTION_BASE = 0, |
| FACE_DETECTION_OFF, |
| FACE_DETECTION_ON, |
| FACE_DETECTION_NOLINE, |
| FACE_DETECTION_ON_BEAUTY, |
| FACE_DETECTION_MAX, |
| }; |
| |
| #define V4L2_CID_CAMERA_SMART_AUTO_STATUS (V4L2_CID_USER_BASE | 0x105F) |
| enum v4l2_smart_auto_status { |
| SMART_AUTO_STATUS_BASE = 0, |
| SMART_AUTO_STATUS_AUTO, |
| SMART_AUTO_STATUS_LANDSCAPE, |
| SMART_AUTO_STATUS_PORTRAIT, |
| SMART_AUTO_STATUS_MACRO, |
| SMART_AUTO_STATUS_NIGHT, |
| SMART_AUTO_STATUS_PORTRAIT_NIGHT, |
| SMART_AUTO_STATUS_BACKLIT, |
| SMART_AUTO_STATUS_PORTRAIT_BACKLIT, |
| SMART_AUTO_STATUS_ANTISHAKE, |
| SMART_AUTO_STATUS_PORTRAIT_ANTISHAKE, |
| SMART_AUTO_STATUS_MAX, |
| }; |
| |
| #define V4L2_CID_CAMERA_SET_AUTO_FOCUS (V4L2_CID_USER_BASE | 0x1060) |
| enum v4l2_auto_focus { |
| AUTO_FOCUS_BASE = 0, |
| AUTO_FOCUS_OFF, |
| AUTO_FOCUS_ON, |
| AUTO_FOCUS_MAX, |
| AUTO_FOCUS_1ST_CANCEL,/* used in AF cancel */ |
| AUTO_FOCUS_2ND_CANCEL,/* used in AF cancel */ |
| }; |
| |
| #define V4L2_CID_CAMERA_BEAUTY_SHOT (V4L2_CID_USER_BASE | 0x1061) |
| enum v4l2_beauty_shot { |
| BEAUTY_SHOT_BASE = 0, |
| BEAUTY_SHOT_OFF, |
| BEAUTY_SHOT_ON, |
| BEAUTY_SHOT_MAX, |
| }; |
| |
| #define V4L2_CID_CAMERA_AEAWB_LOCK_UNLOCK (V4L2_CID_USER_BASE | 0x1062) |
| enum v4l2_ae_awb_lockunlock { |
| AE_AWB_BASE = 0, |
| AE_UNLOCK_AWB_UNLOCK, |
| AE_LOCK_AWB_UNLOCK, |
| AE_UNLOCK_AWB_LOCK, |
| AE_LOCK_AWB_LOCK, |
| AE_UNLOCK, |
| AE_AWB_MAX |
| }; |
| |
| #define V4L2_CID_CAMERA_FACEDETECT_LOCKUNLOCK (V4L2_CID_USER_BASE | 0x1063) |
| enum v4l2_face_lock { |
| FACE_LOCK_BASE = 0, |
| FACE_LOCK_OFF, |
| FACE_LOCK_ON, |
| FIRST_FACE_TRACKING, |
| FACE_LOCK_MAX, |
| }; |
| |
| #define V4L2_CID_CAMERA_OBJECT_POSITION_X (V4L2_CID_USER_BASE | 0x1064) |
| #define V4L2_CID_CAMERA_OBJECT_POSITION_Y (V4L2_CID_USER_BASE | 0x1065) |
| #define V4L2_CID_CAMERA_FOCUS_MODE (V4L2_CID_USER_BASE | 0x1066) |
| enum v4l2_focusmode { |
| FOCUS_MODE_BASE = 0, |
| FOCUS_MODE_AUTO, |
| FOCUS_MODE_OFF, |
| FOCUS_MODE_AF, |
| FOCUS_MODE_MACRO, |
| FOCUS_MODE_FACEDETECT, |
| FOCUS_MODE_INFINITY, |
| FOCUS_MODE_CONTINUOUS_VIDEO, |
| FOCUS_MODE_CONTINUOUS_PICTURE, |
| FOCUS_MODE_CONTINUOUS_PICTURE_MACRO, |
| FOCUS_MODE_MAX, |
| }; |
| |
| #define V4L2_CID_CAMERA_OBJ_TRACKING_STATUS (V4L2_CID_USER_BASE | 0x1067) |
| enum v4l2_obj_tracking_status { |
| OBJECT_TRACKING_STATUS_BASE = 0, |
| OBJECT_TRACKING_STATUS_PROGRESSING, |
| OBJECT_TRACKING_STATUS_SUCCESS, |
| OBJECT_TRACKING_STATUS_FAIL, |
| OBJECT_TRACKING_STATUS_MISSING, |
| OBJECT_TRACKING_STATUS_MAX, |
| }; |
| |
| #define V4L2_CID_CAMERA_OBJ_TRACKING_START_STOP (V4L2_CID_USER_BASE | 0x1068) |
| enum v4l2_ot_start_stop { |
| OT_BASE = 0, |
| OT_STOP, |
| OT_START, |
| OT_MAX, |
| }; |
| |
| #define V4L2_CID_CAMERA_CAF_START_STOP (V4L2_CID_USER_BASE | 0x1069) |
| enum v4l2_caf_start_stop { |
| CAF_BASE = 0, |
| CAF_STOP, |
| CAF_START, |
| CAF_MAX, |
| }; |
| |
| #define V4L2_CID_CAMERA_AUTO_FOCUS_RESULT (V4L2_CID_USER_BASE | 0x106A) |
| #define V4L2_CID_CAMERA_FRAME_RATE (V4L2_CID_USER_BASE | 0x106B) |
| enum v4l2_frame_rate { |
| FRAME_RATE_BASE = 0, |
| FRAME_RATE_AUTO, |
| FRAME_RATE_5, |
| FRAME_RATE_7, |
| FRAME_RATE_10, |
| FRAME_RATE_15, |
| FRAME_RATE_20, |
| FRAME_RATE_25, |
| FRAME_RATE_30, |
| FRAME_RATE_60, |
| FRAME_RATE_120, |
| FRAME_RATE_MAX |
| }; |
| |
| |
| #define V4L2_CID_CAMERA_ANTI_BANDING (V4L2_CID_USER_BASE | 0x106C) |
| enum v4l2_anti_banding { |
| ANTI_BANDING_BASE = 0, |
| ANTI_BANDING_AUTO, |
| ANTI_BANDING_50HZ, |
| ANTI_BANDING_60HZ, |
| ANTI_BANDING_OFF, |
| ANTI_BANDING_MAX |
| }; |
| |
| #define V4L2_CID_CAMERA_SET_GAMMA (V4L2_CID_USER_BASE | 0x106D) |
| enum v4l2_gamma_mode { |
| GAMMA_OFF = 0, |
| GAMMA_ON = 1, |
| GAMMA_MAX, |
| }; |
| |
| #define V4L2_CID_CAMERA_SET_SLOW_AE (V4L2_CID_USER_BASE | 0x106E) |
| enum v4l2_slow_ae_mode { |
| SLOW_AE_BASE = 0, |
| SLOW_AE_OFF, |
| SLOW_AE_ON, |
| SLOW_AE_MAX, |
| }; |
| |
| #define V4L2_CID_CAMERA_BATCH_REFLECTION (V4L2_CID_USER_BASE | 0x106F) |
| #define V4L2_CID_CAMERA_EXIF_ORIENTATION (V4L2_CID_USER_BASE | 0x1070) |
| |
| #define V4L2_CID_CAMERA_RESET (V4L2_CID_USER_BASE | 0x1071) |
| #define V4L2_CID_CAMERA_CHECK_DATALINE (V4L2_CID_USER_BASE | 0x1072) |
| enum v4l2_check_dataline { |
| CHK_DATALINE_OFF = 0, |
| CHK_DATALINE_ON, |
| |
| }; |
| #define V4L2_CID_CAMERA_CHECK_DATALINE_STOP (V4L2_CID_USER_BASE | 0x1073) |
| #define V4L2_CID_CAMERA_GET_ISO (V4L2_CID_USER_BASE | 0x1074) |
| #define V4L2_CID_CAMERA_GET_SHT_TIME (V4L2_CID_USER_BASE | 0x1075) |
| #define V4L2_CID_CAMERA_SENSOR_MODE (V4L2_CID_USER_BASE | 0x1076) |
| enum v4l2_sensor_mode { |
| SENSOR_BASE = 0, |
| SENSOR_CAMERA, |
| SENSOR_MOVIE, |
| SENSOR_MAX |
| }; |
| |
| #define V4L2_CID_ESD_INT (V4L2_CID_USER_BASE | 0x1077) |
| #define V4L2_CID_CAMERA_GET_FLASH_ONOFF (V4L2_CID_USER_BASE | 0x1078) |
| #define V4L2_CID_CAMERA_RETURN_FOCUS (V4L2_CID_USER_BASE | 0x1079) |
| #define V4L2_CID_CAMERA_FLASH_CONTROL (V4L2_CID_USER_BASE | 0x107A) |
| |
| enum v4l2_flash_control { |
| FLASH_CONTROL_BASE = 0, |
| FLASH_CONTROL_OFF, |
| FLASH_CONTROL_LOW_LEVEL, |
| FLASH_CONTROL_MIDDLE_LEVEL, |
| FLASH_CONTROL_HIGH_LEVEL, |
| FLASH_CONTROL_MAX_LEVEL |
| }; |
| |
| #define V4L2_CID_CAMERA_FLASH_CHECK (V4L2_CID_USER_BASE | 0x107B) |
| #define V4L2_CID_CAMERA_POSTVIEW_WIDTH (V4L2_CID_USER_BASE | 0x107C) |
| #define V4L2_CID_CAMERA_POSTVIEW_HEIGHT (V4L2_CID_USER_BASE | 0x107D) |
| #define V4L2_CID_CAMERA_SENSOR_ID (V4L2_CID_USER_BASE | 0x107E) |
| #define V4L2_CID_CAMERA_AE_AWB_LOCKUNLOCK (V4L2_CID_USER_BASE | 0x107F) |
| #define V4L2_CID_CAMERA_DEFAULT_FOCUS_POSITION (V4L2_CID_USER_BASE | 0x1080) |
| #define V4L2_CID_CAMERA_SET_AF_PREFLASH (V4L2_CID_USER_BASE | 0x1081) |
| |
| enum v4l2_af_preflash { |
| PREFLASH_OFF =0, |
| PREFLASH_ON, |
| }; |
| |
| #define V4L2_CID_CAM_CAPTURE_DONE (V4L2_CID_USER_BASE | 0x1082) |
| #define V4L2_CID_CAMERA_AE_STABLE_RESULT (V4L2_CID_USER_BASE | 0x1083) |
| |
| #define V4L2_CID_CAMERA_EXIF_SENSOR_INFO (V4L2_CID_USER_BASE | 0x1084) |
| #define V4L2_CID_CAMERA_GET_ESD_SHOCK_STATUS (V4L2_CID_USER_BASE | 0x1085) |
| #define V4L2_CID_CAMERA_ESD_DETECTED_RESTART_CAMERA (V4L2_CID_USER_BASE | 0x1086) |
| #define V4L2_CID_CAMERA_INITIALIZE (V4L2_CID_USER_BASE | 0x1087) |
| #define V4L2_CID_CAMERA_READ_MODE_CHANGE_REG (V4L2_CID_USER_BASE | 0x1088) |
| #define V4L2_CID_CAM_SET_MODE (V4L2_CID_USER_BASE | 0x1089) |
| |
| #define V4L2_CID_CAMERA_LENS_POSITION (V4L2_CID_USER_BASE + 0x108A) |
| #define V4L2_CID_SENSOR_MOUNT_ORIENTATION (V4L2_CID_USER_BASE + 0x108B) |
| struct v4l2_exif_sensor_info { |
| char strSoftware[20]; |
| char strMake[20]; |
| char strModel[20]; |
| |
| char exposureTime[20]; |
| char FNumber[20]; |
| char exposureProgram[20]; |
| char isoSpeedRating[20]; |
| char shutterSpeed[20]; |
| char aperture[20]; |
| char brightness[20]; |
| char exposureBias[20]; |
| char maxLensAperture[20]; |
| char flash[20]; |
| char lensFocalLength[20]; |
| char userComments[30]; |
| char colorSpaceInfo[20]; |
| char contrast[20]; |
| char saturation[20]; |
| char sharpness[20]; |
| }; |
| |
| /* Pixel format FOURCC depth Description */ |
| /* 12 Y/CbCr 4:2:0 64x32 macroblocks */ |
| #define V4L2_PIX_FMT_NV12T v4l2_fourcc('T', 'V', '1', '2') |
| |
| /* |
| * * V4L2 extention for digital camera |
| * */ |
| /* |
| * private ioctls |
| */ |
| /* ioctls needed to query, get, set thumbnail info */ |
| #define VIDIOC_THUMB_SUPPORTED _IOR('V', BASE_VIDIOC_PRIVATE+0, int) |
| #define VIDIOC_THUMB_G_FMT _IOR('V', BASE_VIDIOC_PRIVATE+1, struct v4l2_format) |
| #define VIDIOC_THUMB_S_FMT _IOWR('V', BASE_VIDIOC_PRIVATE+2, struct v4l2_format) |
| |
| |
| |
| /* Strobe flash light */ |
| enum v4l2_strobe_control { |
| /* turn off the flash light */ |
| V4L2_STROBE_CONTROL_OFF = 0, |
| /* turn on the flash light */ |
| V4L2_STROBE_CONTROL_ON = 1, |
| /* act guide light before splash */ |
| V4L2_STROBE_CONTROL_AFGUIDE = 2, |
| /* charge the flash light */ |
| V4L2_STROBE_CONTROL_CHARGE = 3, |
| }; |
| |
| enum v4l2_strobe_conf { |
| V4L2_STROBE_OFF = 0, /* Always off */ |
| V4L2_STROBE_ON = 1, /* Always splashes */ |
| /* Auto control presets */ |
| V4L2_STROBE_AUTO = 2, |
| V4L2_STROBE_REDEYE_REDUCTION = 3, |
| V4L2_STROBE_SLOW_SYNC = 4, |
| V4L2_STROBE_FRONT_CURTAIN = 5, |
| V4L2_STROBE_REAR_CURTAIN = 6, |
| /* Extra manual control presets */ |
| /* keep turned on until turning off */ |
| V4L2_STROBE_PERMANENT = 7, |
| V4L2_STROBE_EXTERNAL = 8, |
| }; |
| |
| enum v4l2_strobe_status { |
| V4L2_STROBE_STATUS_OFF = 0, |
| /* while processing configurations */ |
| V4L2_STROBE_STATUS_BUSY = 1, |
| V4L2_STROBE_STATUS_ERR = 2, |
| V4L2_STROBE_STATUS_CHARGING = 3, |
| V4L2_STROBE_STATUS_CHARGED = 4, |
| }; |
| |
| /* capabilities field */ |
| /* No strobe supported */ |
| #define V4L2_STROBE_CAP_NONE 0x0000 |
| /* Always flash off mode */ |
| #define V4L2_STROBE_CAP_OFF 0x0001 |
| /* Always use flash light mode */ |
| #define V4L2_STROBE_CAP_ON 0x0002 |
| /* Flashlight works automatic */ |
| #define V4L2_STROBE_CAP_AUTO 0x0004 |
| /* Red-eye reduction */ |
| #define V4L2_STROBE_CAP_REDEYE 0x0008 |
| /* Slow sync */ |
| #define V4L2_STROBE_CAP_SLOWSYNC 0x0010 |
| /* Front curtain */ |
| #define V4L2_STROBE_CAP_FRONT_CURTAIN 0x0020 |
| /* Rear curtain */ |
| #define V4L2_STROBE_CAP_REAR_CURTAIN 0x0040 |
| /* keep turned on until turning off */ |
| #define V4L2_STROBE_CAP_PERMANENT 0x0080 |
| /* use external strobe */ |
| #define V4L2_STROBE_CAP_EXTERNAL 0x0100 |
| |
| /* Set mode and Get status */ |
| struct v4l2_strobe { |
| /* off/on/charge:0/1/2 */ |
| enum v4l2_strobe_control control; |
| /* supported strobe capabilities */ |
| __u32 capabilities; |
| enum v4l2_strobe_conf mode; |
| enum v4l2_strobe_status status; /* read only */ |
| /* default is 0 and range of value varies from each models */ |
| __u32 flash_ev; |
| __u32 reserved[4]; |
| }; |
| |
| #define VIDIOC_S_STROBE _IOWR('V', BASE_VIDIOC_PRIVATE+3, struct v4l2_strobe) |
| #define VIDIOC_G_STROBE _IOR('V', BASE_VIDIOC_PRIVATE+4, struct v4l2_strobe) |
| |
| /* Object recognition and collateral actions */ |
| enum v4l2_recog_mode { |
| V4L2_RECOGNITION_MODE_OFF = 0, |
| V4L2_RECOGNITION_MODE_ON = 1, |
| V4L2_RECOGNITION_MODE_LOCK = 2, |
| }; |
| |
| enum v4l2_recog_action { |
| V4L2_RECOGNITION_ACTION_NONE = 0, /* only recognition */ |
| V4L2_RECOGNITION_ACTION_BLINK = 1, /* Capture on blinking */ |
| V4L2_RECOGNITION_ACTION_SMILE = 2, /* Capture on smiling */ |
| }; |
| |
| enum v4l2_recog_pattern { |
| V4L2_RECOG_PATTERN_FACE = 0, /* Face */ |
| V4L2_RECOG_PATTERN_HUMAN = 1, /* Human */ |
| V4L2_RECOG_PATTERN_CHAR = 2, /* Character */ |
| }; |
| |
| struct v4l2_recog_rect { |
| enum v4l2_recog_pattern p; /* detected pattern */ |
| struct v4l2_rect o; /* detected area */ |
| __u32 reserved[4]; |
| }; |
| |
| struct v4l2_recog_data { |
| __u8 detect_cnt; /* detected object counter */ |
| struct v4l2_rect o; /* detected area */ |
| __u32 reserved[4]; |
| }; |
| |
| struct v4l2_recognition { |
| enum v4l2_recog_mode mode; |
| |
| /* Which pattern to detect */ |
| enum v4l2_recog_pattern pattern; |
| |
| /* How many object to detect */ |
| __u8 obj_num; |
| |
| /* select detected object */ |
| __u32 detect_idx; |
| |
| /* read only :Get object coordination */ |
| struct v4l2_recog_data data; |
| |
| enum v4l2_recog_action action; |
| __u32 reserved[4]; |
| }; |
| |
| #define VIDIOC_S_RECOGNITION _IOWR('V', BASE_VIDIOC_PRIVATE+5, struct v4l2_recognition) |
| #define VIDIOC_G_RECOGNITION _IOR('V', BASE_VIDIOC_PRIVATE+6, struct v4l2_recognition) |
| |
| /* We use this struct as the v4l2_streamparm raw_data for |
| * VIDIOC_G_PARM and VIDIOC_S_PARM |
| */ |
| struct sec_cam_parm { |
| struct v4l2_captureparm capture; |
| int contrast; |
| int effects; |
| int brightness; |
| int flash_mode; |
| int focus_mode; |
| int iso; |
| int metering; |
| int saturation; |
| int scene_mode; |
| int sharpness; |
| int white_balance; |
| int fps; |
| int zoom; |
| }; |
| |
| enum preview_frame_size { |
| PREVIEW_SIZE_QCIF = 0, /*176x144*/ |
| PREVIEW_SIZE_QVGA, /*320x240*/ |
| PREVIEW_SIZE_CIF, /*352x288*/ |
| PREVIEW_SIZE_VGA, /* 640x480 */ |
| PREVIEW_SIZE_4CIF, /*704 x576*/ |
| PREVIEW_SIZE_D1, /* 720x480 */ |
| PREVIEW_SIZE_WVGA, /* 800x480 */ |
| PREVIEW_SIZE_SVGA, /* 800x600 */ |
| PREVIEW_SIZE_WSVGA, /* 1024x600 */ |
| PREVIEW_SIZE_XGA, /* 1024x768 */ |
| PREVIEW_SIZE_1MP, /* 1280x960 */ |
| PREVIEW_SIZE_W1MP, /* 1600x960 */ |
| PREVIEW_SIZE_2MP, /* UXGA - 1600x1200 */ |
| PREVIEW_SIZE_W2MP, /* 2048x1232, 2.4MP */ |
| PREVIEW_SIZE_3MP, /*2048x1536*/ |
| PREVIEW_SIZE_5MP, /* 2560x1920 */ |
| PREVIEW_SIZE_MAX, |
| }; |
| |
| enum capture_frame_size { |
| CAPTURE_SIZE_VGA = 0, /* 640x480 */ |
| CAPTURE_SIZE_WVGA, /* 800x480 */ |
| CAPTURE_SIZE_SVGA, /* 800x600 */ |
| CAPTURE_SIZE_D1, /* 720x480 */ |
| CAPTURE_SIZE_WSVGA, /* 1024x600 */ |
| CAPTURE_SIZE_XGA, /* 1024x768 */ |
| CAPTURE_SIZE_1MP, /* 1280x960 */ |
| CAPTURE_SIZE_W1MP, /* 1600x960 */ |
| CAPTURE_SIZE_2MP, /* UXGA - 1600x1200 */ |
| CAPTURE_SIZE_W2MP, /* 2048x1232, 2.4MP */ |
| CAPTURE_SIZE_3MP, /*2048x1536*/ |
| CAPTURE_SIZE_5MP, /* 2560x1920 */ |
| CAPTURE_SIZE_MAX, |
| |
| }; |
| |
| enum auto_focus_result{ |
| CAMERA_AF_STATUS_FOCUSED = 0, |
| CAMERA_AF_STATUS_FAILED, |
| CAMERA_AF_STATUS_SEARCHING, |
| CAMERA_AF_STATUS_CANCELLED, |
| }; |
| |
| enum CameraMode { |
| INIT_MODE = 0, |
| CAMERA_PREVIEW_MODE, |
| CAMCORDER_PREVIEW_MODE, |
| PICTURE_MODE |
| }; |
| |
| |
| |
| /* |
| * needed to remove padding with unicam interface |
| */ |
| struct v4l2_jpeg_packet_info { |
| int padded; /* if non zero specifies no of bytes added */ |
| int packet_size; /*packet size/offset where padded bytes are inserted */ |
| }; |
| |
| #define VIDIOC_JPEG_G_PACKET_INFO _IOR('V', BASE_VIDIOC_PRIVATE+7, struct v4l2_jpeg_packet_info) |
| |
| |
| struct v4l2_sensor_optical_info { |
| struct v4l2_fract hor_angle; /* horizontal view angle */ |
| struct v4l2_fract ver_angle; /* vertical view angle */ |
| |
| /* focus distance |
| * element 0 -near focus distance in CM, |
| * element 1 -optimal focus distance in CM, |
| * element 2 - far focus distance in CM, |
| * -1 for for infinity */ |
| int focus_distance[3]; |
| |
| /* |
| * focal length in mm |
| */ |
| struct v4l2_fract focal_length; |
| }; |
| |
| #define VIDIOC_SENSOR_G_OPTICAL_INFO _IOR('V', BASE_VIDIOC_PRIVATE+8, struct v4l2_sensor_optical_info) |
| struct v4l2_frame_info { |
| int exposure; |
| int an_gain; |
| int focus; |
| int flash_mode; |
| struct timespec timestamp; |
| }; |
| |
| #define VIDIOC_SENSOR_G_FRAME_INFO \ |
| _IOWR('V', BASE_VIDIOC_PRIVATE+9, struct v4l2_frame_info) |
| #define VIDIOC_SENSOR_S_FRAME_INFO \ |
| _IOWR('V', BASE_VIDIOC_PRIVATE+10, struct v4l2_frame_info) |
| #define VIDIOC_SENSOR_FRAME_IRQ \ |
| _IOWR('V', BASE_VIDIOC_PRIVATE+11, __u32) |
| #endif /*#if !defined(CONFIG_SOC_MAIN_CAMERA) || !defined(CONFIG_SOC_SUB_CAMERA) */ |
| |
| #endif /* __LINUX_VIDEODEV2_BRCM_H */ |