summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorVivek Veenam <vveenam@codeaurora.org>2016-06-24 11:49:16 +0530
committerGerrit - the friendly Code Review server <code-review@localhost>2016-09-11 23:22:40 -0700
commit1dc1147122c7370f924bec6758b3dc425cbd4701 (patch)
treeafbefb8b7a5a92a5bf6297acbb3de4cf0810ecd0 /include
parent911e592fdc0d6c8f63ea2aec181122a5621d4cee (diff)
msm: camera: Add a driver to control IR LED device
This driver is able to control a IR LED device. The interface to user space is: CFG_IR_LED_INIT CFG_IR_LED_OFF CFG_IR_LED_ON with intensity field CFG_IR_LED_RELEASE. Change-Id: I2e04fa47efd1454bb487eca67bd9ceaeab3e9edf Signed-off-by: Vivek Veenam <vveenam@codeaurora.org>
Diffstat (limited to 'include')
-rw-r--r--include/media/msm_cam_sensor.h10
-rw-r--r--include/uapi/media/msm_cam_sensor.h9
-rw-r--r--include/uapi/media/msm_camsensor_sdk.h11
-rw-r--r--include/uapi/media/msmb_camera.h3
4 files changed, 32 insertions, 1 deletions
diff --git a/include/media/msm_cam_sensor.h b/include/media/msm_cam_sensor.h
index fb650ab2693f..57cddbde7d0d 100644
--- a/include/media/msm_cam_sensor.h
+++ b/include/media/msm_cam_sensor.h
@@ -2,6 +2,7 @@
#define __LINUX_MSM_CAM_SENSOR_H
#include <uapi/media/msm_cam_sensor.h>
+#include <uapi/media/msm_camsensor_sdk.h>
#include <linux/compat.h>
@@ -72,6 +73,12 @@ struct csid_cfg_data32 {
} cfg;
};
+struct msm_ir_led_cfg_data_t32 {
+ enum msm_ir_led_cfg_type_t cfg_type;
+ int32_t pwm_duty_on_ns;
+ int32_t pwm_period_ns;
+};
+
struct eeprom_read_t32 {
compat_uptr_t dbuffer;
uint32_t num_bytes;
@@ -258,6 +265,9 @@ struct msm_flash_cfg_data_t32 {
#define VIDIOC_MSM_FLASH_CFG32 \
_IOWR('V', BASE_VIDIOC_PRIVATE + 13, struct msm_flash_cfg_data_t32)
+
+#define VIDIOC_MSM_IR_LED_CFG32 \
+ _IOWR('V', BASE_VIDIOC_PRIVATE + 14, struct msm_ir_led_cfg_data_t32)
#endif
#endif
diff --git a/include/uapi/media/msm_cam_sensor.h b/include/uapi/media/msm_cam_sensor.h
index 2c7ada5d02cf..c4ee5a119cc1 100644
--- a/include/uapi/media/msm_cam_sensor.h
+++ b/include/uapi/media/msm_cam_sensor.h
@@ -289,6 +289,12 @@ struct msm_eeprom_info_t {
struct msm_eeprom_memory_map_array *mem_map_array;
};
+struct msm_ir_led_cfg_data_t {
+ enum msm_ir_led_cfg_type_t cfg_type;
+ int32_t pwm_duty_on_ns;
+ int32_t pwm_period_ns;
+};
+
struct msm_eeprom_cfg_data {
enum eeprom_cfg_type_t cfgtype;
uint8_t is_supported;
@@ -598,5 +604,8 @@ struct sensor_init_cfg_data {
#define VIDIOC_MSM_FLASH_QUERY_DATA \
_IOWR('V', BASE_VIDIOC_PRIVATE + 15, struct msm_flash_query_data_t)
+#define VIDIOC_MSM_IR_LED_CFG \
+ _IOWR('V', BASE_VIDIOC_PRIVATE + 15, struct msm_ir_led_cfg_data_t)
+
#endif
diff --git a/include/uapi/media/msm_camsensor_sdk.h b/include/uapi/media/msm_camsensor_sdk.h
index 01e52b6f7b44..fb33c871f784 100644
--- a/include/uapi/media/msm_camsensor_sdk.h
+++ b/include/uapi/media/msm_camsensor_sdk.h
@@ -182,6 +182,17 @@ enum msm_flash_cfg_type_t {
CFG_FLASH_HIGH,
};
+enum msm_ir_led_cfg_type_t {
+ CFG_IR_LED_INIT = 0,
+ CFG_IR_LED_RELEASE,
+ CFG_IR_LED_OFF,
+ CFG_IR_LED_ON,
+};
+#define CFG_IR_LED_INIT CFG_IR_LED_INIT
+#define CFG_IR_LED_RELEASE CFG_IR_LED_RELEASE
+#define CFG_IR_LED_OFF CFG_IR_LED_OFF
+#define CFG_IR_LED_ON CFG_IR_LED_ON
+
enum msm_sensor_output_format_t {
MSM_SENSOR_BAYER,
MSM_SENSOR_YCBCR,
diff --git a/include/uapi/media/msmb_camera.h b/include/uapi/media/msmb_camera.h
index fe70daa772df..cd8e065318bb 100644
--- a/include/uapi/media/msmb_camera.h
+++ b/include/uapi/media/msmb_camera.h
@@ -48,7 +48,8 @@
#define MSM_CAMERA_SUBDEV_SENSOR_INIT 14
#define MSM_CAMERA_SUBDEV_OIS 15
#define MSM_CAMERA_SUBDEV_FLASH 16
-#define MSM_CAMERA_SUBDEV_EXT 17
+#define MSM_CAMERA_SUBDEV_IR_LED 17
+#define MSM_CAMERA_SUBDEV_EXT 18
#define MSM_MAX_CAMERA_SENSORS 5