diff options
author | Vivek Veenam <vveenam@codeaurora.org> | 2016-06-24 11:49:16 +0530 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2016-09-11 23:22:40 -0700 |
commit | 1dc1147122c7370f924bec6758b3dc425cbd4701 (patch) | |
tree | afbefb8b7a5a92a5bf6297acbb3de4cf0810ecd0 /include | |
parent | 911e592fdc0d6c8f63ea2aec181122a5621d4cee (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.h | 10 | ||||
-rw-r--r-- | include/uapi/media/msm_cam_sensor.h | 9 | ||||
-rw-r--r-- | include/uapi/media/msm_camsensor_sdk.h | 11 | ||||
-rw-r--r-- | include/uapi/media/msmb_camera.h | 3 |
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 |