summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/linux/videodev2.h11
-rw-r--r--include/media/v4l2-common.h8
2 files changed, 17 insertions, 2 deletions
diff --git a/include/linux/videodev2.h b/include/linux/videodev2.h
index 65a165f918c9..e3ab047f90ef 100644
--- a/include/linux/videodev2.h
+++ b/include/linux/videodev2.h
@@ -1306,10 +1306,17 @@ struct v4l2_streamparm
*/
/* VIDIOC_DBG_G_REGISTER and VIDIOC_DBG_S_REGISTER */
+
+#define V4L2_CHIP_MATCH_ALWAYS 0 /* Match always (match_chip is not used) */
+#define V4L2_CHIP_MATCH_HOST 1 /* Match against chip ID on host (0 for the host) */
+#define V4L2_CHIP_MATCH_I2C_DRIVER 2 /* Match against I2C driver ID */
+#define V4L2_CHIP_MATCH_I2C_ADDR 3 /* Match against I2C 7-bit address */
+
struct v4l2_register {
+ __u32 match_type; /* Match type */
+ __u32 match_chip; /* Match this chip, meaning determined by match_type */
__u64 reg;
- __u32 i2c_id; /* I2C driver ID of the I2C chip, or 0 for the host */
- __u32 val;
+ __u64 val;
};
/*
diff --git a/include/media/v4l2-common.h b/include/media/v4l2-common.h
index 244e440edb53..6eaeec98ed89 100644
--- a/include/media/v4l2-common.h
+++ b/include/media/v4l2-common.h
@@ -94,6 +94,14 @@ u32 v4l2_ctrl_next(const u32 * const *ctrl_classes, u32 id);
/* ------------------------------------------------------------------------- */
+/* Register/chip ident helper function */
+
+struct i2c_client; /* forward reference */
+int v4l2_chip_match_i2c_client(struct i2c_client *c, u32 id_type, u32 chip_id);
+int v4l2_chip_match_host(u32 id_type, u32 chip_id);
+
+/* ------------------------------------------------------------------------- */
+
/* Internal ioctls */
/* VIDIOC_INT_DECODE_VBI_LINE */