V4L/DVB (6217): V4L: Int if: Add BT.656 interface support
authorSakari Ailus <sakari.ailus@nokia.com>
Thu, 30 Aug 2007 12:20:39 +0000 (09:20 -0300)
committerMauro Carvalho Chehab <mchehab@infradead.org>
Wed, 10 Oct 2007 01:14:39 +0000 (22:14 -0300)
This patch adds BT.656 interface settings for [gs]_ifparm.

Signed-off-by: Sakari Ailus <sakari.ailus@nokia.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
include/media/v4l2-int-device.h

index 861978deb3bfb59c9214ca660402e0b90b8b7095..4e07707bd5eac1d597396dfa3cae91774d67ed8e 100644 (file)
@@ -99,11 +99,61 @@ int v4l2_int_ioctl_1(struct v4l2_int_device *d, int cmd, void *arg);
 
 /* Slave interface type. */
 enum v4l2_if_type {
+       /*
+        * Parallel 8-, 10- or 12-bit interface, used by for example
+        * on certain image sensors.
+        */
+       V4L2_IF_TYPE_BT656,
+};
+
+enum v4l2_if_type_bt656_mode {
+       /*
+        * Modes without Bt synchronisation codes. Separate
+        * synchronisation signal lines are used.
+        */
+       V4L2_IF_TYPE_BT656_MODE_NOBT_8BIT,
+       V4L2_IF_TYPE_BT656_MODE_NOBT_10BIT,
+       V4L2_IF_TYPE_BT656_MODE_NOBT_12BIT,
+       /*
+        * Use Bt synchronisation codes. The vertical and horizontal
+        * synchronisation is done based on synchronisation codes.
+        */
+       V4L2_IF_TYPE_BT656_MODE_BT_8BIT,
+       V4L2_IF_TYPE_BT656_MODE_BT_10BIT,
+};
+
+struct v4l2_if_type_bt656 {
+       /*
+        * 0: Frame begins when vsync is high.
+        * 1: Frame begins when vsync changes from low to high.
+        */
+       unsigned frame_start_on_rising_vs:1;
+       /* Use Bt synchronisation codes for sync correction. */
+       unsigned bt_sync_correct:1;
+       /* Swap every two adjacent image data elements. */
+       unsigned swap:1;
+       /* Inverted latch clock polarity from slave. */
+       unsigned latch_clk_inv:1;
+       /* Hs polarity. 0 is active high, 1 active low. */
+       unsigned nobt_hs_inv:1;
+       /* Vs polarity. 0 is active high, 1 active low. */
+       unsigned nobt_vs_inv:1;
+       enum v4l2_if_type_bt656_mode mode;
+       /* Minimum accepted bus clock for slave (in Hz). */
+       u32 clock_min;
+       /* Maximum accepted bus clock for slave. */
+       u32 clock_max;
+       /*
+        * Current wish of the slave. May only change in response to
+        * ioctls that affect image capture.
+        */
+       u32 clock_curr;
 };
 
 struct v4l2_ifparm {
        enum v4l2_if_type if_type;
        union {
+               struct v4l2_if_type_bt656 bt656;
        } u;
 };