summaryrefslogtreecommitdiff
path: root/include/media/nvc.h
diff options
context:
space:
mode:
authorErik Lilliebjerg <elilliebjerg@nvidia.com>2012-03-20 03:56:00 -0700
committerRohan Somvanshi <rsomvanshi@nvidia.com>2012-03-22 03:58:52 -0700
commitea168e22b7c0b2ca0f6c74f15aa3714f6a72b82f (patch)
tree5a2daf6a37a5a14c2f4c68b961a2420d7938d3bc /include/media/nvc.h
parentf8de79d91f59794f07797672998897e6576b9161 (diff)
media: common camera headers
- Add support for ISP focus Bug 852480 Change-Id: Ibd4c983d80a5021a88b46033c51c26d1b8120e62 Signed-off-by: Erik Lilliebjerg <elilliebjerg@nvidia.com> Reviewed-on: http://git-master/r/91203 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
Diffstat (limited to 'include/media/nvc.h')
-rw-r--r--include/media/nvc.h166
1 files changed, 128 insertions, 38 deletions
diff --git a/include/media/nvc.h b/include/media/nvc.h
index 7fd4bf2da6ac..9b24b0ea019e 100644
--- a/include/media/nvc.h
+++ b/include/media/nvc.h
@@ -20,50 +20,79 @@
#include <linux/ioctl.h>
+#define NVC_INT2FLOAT_DIVISOR_1K 1000
+#define NVC_INT2FLOAT_DIVISOR_1M 1000000
+#define NVC_INT2FLOAT_DIVISOR 1000
+
struct nvc_param {
int param;
__u32 sizeofvalue;
void *p_value;
} __packed;
-#define NVC_PARAM_EXPOSURE 0
-#define NVC_PARAM_GAIN 1
-#define NVC_PARAM_FRAMERATE 2
-#define NVC_PARAM_MAX_FRAMERATE 3
-#define NVC_PARAM_INPUT_CLOCK 4
-#define NVC_PARAM_LOCUS 5
-#define NVC_PARAM_FLASH_CAPS 6
-#define NVC_PARAM_FLASH_LEVEL 7
-#define NVC_PARAM_FLASH_PIN_STATE 8
-#define NVC_PARAM_TORCH_CAPS 9
-#define NVC_PARAM_TORCH_LEVEL 10
-#define NVC_PARAM_FOCAL_LEN 11
-#define NVC_PARAM_MAX_APERTURE 12
-#define NVC_PARAM_FNUMBER 13
-#define NVC_PARAM_EXPOSURE_LIMITS 14
-#define NVC_PARAM_GAIN_LIMITS 15
-#define NVC_PARAM_FRAMERATE_LIMITS 16
-#define NVC_PARAM_FRAME_RATES 17
-#define NVC_PARAM_EXP_LATCH_TIME 19
-#define NVC_PARAM_REGION_USED 20
-#define NVC_PARAM_SELF_TEST 23
-#define NVC_PARAM_STS 24
-#define NVC_PARAM_TESTMODE 25
-#define NVC_PARAM_EXPECTED_VALUES 26
-#define NVC_PARAM_RESET 27
-#define NVC_PARAM_OPTIMIZE_RES 28
-#define NVC_PARAM_LINES_PER_SEC 30
-#define NVC_PARAM_CAPS 31
-#define NVC_PARAM_STEREO_CAP 33
-#define NVC_PARAM_FOCUS_STEREO 34
-#define NVC_PARAM_STEREO 35
-#define NVC_PARAM_INHERENT_GAIN 36
-#define NVC_PARAM_VIEW_ANGLE_H 37
-#define NVC_PARAM_VIEW_ANGLE_V 38
-#define NVC_PARAM_DEV_ID 46
-#define NVC_PARAM_TEST_PATTERN 0x10000002
-#define NVC_PARAM_SENSOR_TYPE 0x10000006
-#define NVC_PARAM_I2C 1001
+enum nvc_params {
+ NVC_PARAM_EXPOSURE = 0,
+ NVC_PARAM_GAIN,
+ NVC_PARAM_FRAMERATE,
+ NVC_PARAM_MAX_FRAMERATE,
+ NVC_PARAM_INPUT_CLOCK,
+ NVC_PARAM_LOCUS,
+ NVC_PARAM_FLASH_CAPS,
+ NVC_PARAM_FLASH_LEVEL,
+ NVC_PARAM_FLASH_PIN_STATE,
+ NVC_PARAM_TORCH_CAPS,
+ NVC_PARAM_TORCH_LEVEL,
+ NVC_PARAM_FOCAL_LEN,
+ NVC_PARAM_MAX_APERTURE,
+ NVC_PARAM_FNUMBER,
+ NVC_PARAM_EXPOSURE_LIMITS,
+ NVC_PARAM_GAIN_LIMITS,
+ NVC_PARAM_FRAMERATE_LIMITS,
+ NVC_PARAM_FRAME_RATES,
+ NVC_PARAM_CLOCK_LIMITS,
+ NVC_PARAM_EXP_LATCH_TIME,
+ NVC_PARAM_REGION_USED,
+ NVC_PARAM_CALIBRATION_DATA,
+ NVC_PARAM_CALIBRATION_OVERRIDES,
+ NVC_PARAM_SELF_TEST,
+ NVC_PARAM_STS,
+ NVC_PARAM_TESTMODE,
+ NVC_PARAM_EXPECTED_VALUES,
+ NVC_PARAM_RESET,
+ NVC_PARAM_OPTIMIZE_RES,
+ NVC_PARAM_DETECT_COLOR_TEMP,
+ NVC_PARAM_LINES_PER_SEC,
+ NVC_PARAM_CAPS,
+ NVC_PARAM_CUSTOM_BLOCK_INFO,
+ NVC_PARAM_STEREO_CAP,
+ NVC_PARAM_FOCUS_STEREO,
+ NVC_PARAM_STEREO,
+ NVC_PARAM_INHERENT_GAIN,
+ NVC_PARAM_VIEW_ANGLE_H,
+ NVC_PARAM_VIEW_ANGLE_V,
+ NVC_PARAM_ISP_SETTING,
+ NVC_PARAM_OPERATION_MODE,
+ NVC_PARAM_SUPPORT_ISP,
+ NVC_PARAM_AWB_LOCK,
+ NVC_PARAM_AE_LOCK,
+ NVC_PARAM_RES_CHANGE_WAIT_TIME,
+ NVC_PARAM_FACTORY_CALIBRATION_DATA,
+ NVC_PARAM_DEV_ID,
+ NVC_PARAM_GROUP_HOLD,
+ NVC_PARAM_BEGIN_VENDOR_EXTENSIONS = 0x10000000,
+ NVC_PARAM_CALIBRATION_STATUS,
+ NVC_PARAM_TEST_PATTERN,
+ NVC_PARAM_MODULE_INFO,
+ NVC_PARAM_FLASH_MAX_POWER,
+ NVC_PARAM_DIRECTION,
+ NVC_PARAM_SENSOR_TYPE,
+ NVC_PARAM_DLI_CHECK,
+ NVC_PARAM_PARALLEL_DLI_CHECK,
+ NVC_PARAM_BRACKET_CAPS,
+ NVC_PARAM_NUM,
+ NVC_PARAM_I2C,
+ NVC_PARAM_FORCE32 = 0x7FFFFFFF
+};
/* sync off */
#define NVC_SYNC_OFF 0
@@ -77,10 +106,66 @@ struct nvc_param {
#define NVC_RESET_HARD 0
#define NVC_RESET_SOFT 1
+struct nvc_param_isp {
+ int attr;
+ void *p_data;
+ __u32 data_size;
+} __packed;
+
+struct nvc_isp_focus_param {
+ __s32 min_pos;
+ __s32 max_pos;
+ __s32 hyperfocal;
+ __s32 macro;
+ __s32 powersave;
+} __packed;
+
+struct nvc_isp_focus_pos {
+ __u32 is_auto;
+ __s32 value;
+} __packed;
+
+struct nvc_isp_focus_region {
+ __u32 num_region;
+ __s32 value;
+} __packed;
+
+enum nvc_params_isp {
+ NVC_PARAM_ISP_FOCUS_CAF = 16389,
+ NVC_PARAM_ISP_FOCUS_CAF_PAUSE,
+ NVC_PARAM_ISP_FOCUS_CAF_STS,
+ NVC_PARAM_ISP_FOCUS_POS = 16407,
+ NVC_PARAM_ISP_FOCUS_RANGE,
+ NVC_PARAM_ISP_FOCUS_AF_RGN = 16413,
+ NVC_PARAM_ISP_FOCUS_AF_RGN_MASK,
+ NVC_PARAM_ISP_FOCUS_AF_RGN_STS,
+ NVC_PARAM_ISP_FOCUS_CTRL = 16424,
+ NVC_PARAM_ISP_FOCUS_TRGR,
+ NVC_PARAM_ISP_FOCUS_STS,
+};
+
+#define NVC_PARAM_ISP_FOCUS_STS_BUSY 0
+#define NVC_PARAM_ISP_FOCUS_STS_LOCKD 1
+#define NVC_PARAM_ISP_FOCUS_STS_FAILD 2
+#define NVC_PARAM_ISP_FOCUS_STS_ERR 3
+
+#define NVC_PARAM_ISP_FOCUS_CTRL_ON 0
+#define NVC_PARAM_ISP_FOCUS_CTRL_OFF 1
+#define NVC_PARAM_ISP_FOCUS_CTRL_AUTO 2
+#define NVC_PARAM_ISP_FOCUS_CTRL_ALOCK 3
+
+#define NVC_PARAM_ISP_FOCUS_CAF_CONVRG 1
+#define NVC_PARAM_ISP_FOCUS_CAF_SEARCH 2
+
+#define NVC_PARAM_ISP_FOCUS_POS_INF 0
+
+
#define NVC_IOCTL_PWR_WR _IOW('o', 102, int)
#define NVC_IOCTL_PWR_RD _IOW('o', 103, int)
#define NVC_IOCTL_PARAM_WR _IOW('o', 104, struct nvc_param)
#define NVC_IOCTL_PARAM_RD _IOWR('o', 105, struct nvc_param)
+#define NVC_IOCTL_PARAM_ISP_RD _IOWR('o', 200, struct nvc_param_isp)
+#define NVC_IOCTL_PARAM_ISP_WR _IOWR('o', 201, struct nvc_param_isp)
#ifdef __KERNEL__
@@ -133,6 +218,11 @@ struct nvc_param {
#define NVC_PWR_COMM 5
#define NVC_PWR_ON 6
+struct nvc_regulator_init {
+ unsigned vreg_num;
+ const char *vreg_name;
+};
+
struct nvc_regulator {
bool vreg_flag;
struct regulator *vreg;