Hans,
Thanks for looking into this...
1) I want to use v4l2_i2c_new_probed_subdev_addr() to load and probe the
the v4l2 sub-device from my vpfe capture driver. Currently the api's
available doesn't allow setting platform data in the client before the
sub-device's probe is called. I see that there is discussion about adding
i2c_board_info as an argument to the api. I would need this to allow
loading of sub-device from vpfe capture. I have seen patches sent by
Eduardo Valentin Guennadi Liakhovetski addressing the issue. Do you
have any suggestions for use in my vpfe capture driver?
As you have probably seen by now I've made changes to the v4l2 core that
make it easy to use an i2c_board_info struct when creating a subdev. So as
far as I can tell that solves this issue completely.
The code is in my v4l-dvb-subdev tree.
[MK] Yes. I have been following this and will resolve this.
2) I need a common structure (preferably in i2c-subdev.h for defining and
using bus (interface) parameters in the bridge (vpfe capture) and sub
device (tvp514x or mt9t031) drivers. This will allow bridge driver to
read these values from platform data and set the same in the vpfe capture
driver and sub device drivers. Since bus parameters such as interface
type (BT.656, BT.1120, Raw Bayer image data etc), polarity of various
signals etc are used across bridge and sub-devices, it make sense to add
it to i2c-subdev.h. Here is what I have come up with. If this support is
not already planned, I would like to sent a patch for the same.
It makes sense to define a struct in v4l2-subdev.h and a core ops to set it
(s_bus).
However, I would pack it differently:
struct v4l2_subdev_bus {
enum v4l2_subdev_bus_type type;
u8 width;
unsigned pol_vsync:1;
unsigned pol_hsync:1;
unsigned pol_field:1;
unsigned pol_pclock:1;
};
[MK] Looks good to me. So is it up to the bridge and sub device to determine
how they interpret the values of pol_xxx fields? Since same sub-device might
work across multiple sub device, it is worth documenting them as given in my
RFC. I would like to add one more field for data polarity :-
unsigned pol_data:1;
Will you take care of this yourself or expecting me to send a patch for the
same?
Regards,
Murali
It's more concise this way.
Regards,
Hans
+/*
+ * Some Sub-devices are connected to the bridge device through a bus
+ * that carries the clock, vsync, hsync and data. Some interfaces
+ * such as BT.656 carries the sync embedded in the data where as others
+ * have seperate line carrying the sync signals. This structure is
+ * used by bridge driver to set the desired bus parameters in the sub
+ * device to work with it.
+ */
+enum v4l2_subdev_bus_type {
+/* BT.656 interface. Embedded syncs */
+V4L2_SUBDEV_BUS_BT_656,
+/* BT.1120 interface. Embedded syncs */
+V4L2_SUBDEV_BUS_BT_1120,
+/* 8 bit YCbCr muxed bus, separate sync and field id signals */
+V4L2_SUBDEV_BUS_YCBCR_8,
+/* 16 bit YCbCr bus, separate sync and field id signals */
+V4L2_SUBDEV_BUS_YCBCR_16,
+/* Raw Bayer data bus, 8 - 16 bit wide, sync signals */
+V4L2_SUBDEV_BUS_RAW_BAYER
+};
+
+/* Raw bayer data bus width */
+enum v4l2_subdev_raw_bayer_data_width {
+V4L2_SUBDEV_RAW_BAYER_DATA_8BIT,
+V4L2_SUBDEV_RAW_BAYER_DATA_9BIT,
+V4L2_SUBDEV_RAW_BAYER_DATA_10BIT,
+V4L2_SUBDEV_RAW_BAYER_DATA_11BIT,
+V4L2_SUBDEV_RAW_BAYER_DATA_12BIT,
+V4L2_SUBDEV_RAW_BAYER_DATA_13BIT,
+V4L2_SUBDEV_RAW_BAYER_DATA_14BIT,
+V4L2_SUBDEV_RAW_BAYER_DATA_15BIT,
+V4L2_SUBDEV_RAW_BAYER_DATA_16BIT
+};
+
+struct v4l2_subdev_bus_params {
+/* bus type */
+enum v4l2_subdev_bus_type type;
+/* data size for raw bayer data bus */
+enum v4l2_subdev_raw_bayer_data_width width;
+/* polarity of vsync. 0 - active low, 1 - active high */
+u8 vsync_pol;
+/* polarity of hsync. 0 - active low, 1 - active low */
+u8 hsync_pol;
+/* polarity of field id, 0 - low to high, 1 - high to low */
+u8 fid_pol;
+/* polarity of data. 0 - active low, 1 - active high */
+u8 data_pol;
+/* pclk polarity. 0 - sample at falling edge, 1 - sample at rising
edge
*/ + u8 pclk_pol;
+};
+
Murali Karicheri
email: m-kariche...@ti.com
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
--
Hans Verkuil - video4linux developer - sponsored by TANDBERG Telecom
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at