@@ -611,6 +611,12 @@ const char * const *v4l2_ctrl_get_menu(u32 id)
"Cyclic",
NULL,
};
+ static const char * const camera_trigger_mode[] = {
+ "Continuous",
+ "Internal",
+ "External",
+ NULL,
+ };
switch (id) {
case V4L2_CID_MPEG_AUDIO_SAMPLING_FREQ:
@@ -750,6 +756,8 @@ const char * const *v4l2_ctrl_get_menu(u32 id)
return camera_orientation;
case V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD_TYPE:
return intra_refresh_period_type;
+ case V4L2_CID_CAMERA_TRIGGER_MODE:
+ return camera_trigger_mode;
default:
return NULL;
}
@@ -1086,6 +1094,8 @@ const char *v4l2_ctrl_get_name(u32 id)
case V4L2_CID_CAMERA_ORIENTATION: return "Camera Orientation";
case V4L2_CID_CAMERA_SENSOR_ROTATION: return "Camera Sensor Rotation";
case V4L2_CID_HDR_SENSOR_MODE: return "HDR Sensor Mode";
+ case V4L2_CID_CAMERA_TRIGGER: return "Camera Trigger";
+ case V4L2_CID_CAMERA_TRIGGER_MODE: return "Camera Trigger Mode";
/* FM Radio Modulator controls */
/* Keep the order of the 'case's the same as in v4l2-controls.h! */
@@ -1342,6 +1352,7 @@ void v4l2_ctrl_fill(u32 id, const char **name, enum v4l2_ctrl_type *type,
case V4L2_CID_AUTO_FOCUS_START:
case V4L2_CID_AUTO_FOCUS_STOP:
case V4L2_CID_DO_WHITE_BALANCE:
+ case V4L2_CID_CAMERA_TRIGGER:
*type = V4L2_CTRL_TYPE_BUTTON;
*flags |= V4L2_CTRL_FLAG_WRITE_ONLY |
V4L2_CTRL_FLAG_EXECUTE_ON_WRITE;
@@ -1420,6 +1431,7 @@ void v4l2_ctrl_fill(u32 id, const char **name, enum v4l2_ctrl_type *type,
case V4L2_CID_CAMERA_ORIENTATION:
case V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD_TYPE:
case V4L2_CID_HDR_SENSOR_MODE:
+ case V4L2_CID_CAMERA_TRIGGER_MODE:
*type = V4L2_CTRL_TYPE_MENU;
break;
case V4L2_CID_LINK_FREQ:
Add V4L2_CID_CAMERA_TRIGGER_MODE as a menu item control to set trigger mode. Also proposed some standard modes. Another item is V4L2_CID_CAMERA_TRIGGER as a button to send trigger in V4L2_TRIGGER_MODE_INTERNAL mode. Signed-off-by: Volodymyr Kharuk <vkh@melexis.com> --- drivers/media/v4l2-core/v4l2-ctrls-defs.c | 12 ++++++++++++ 1 file changed, 12 insertions(+)