On 17/04/14 13:45, Laurent Pinchart wrote:
Hi Sylwester,
On Thursday 17 April 2014 13:17:41 Sylwester Nawrocki wrote:
On 11/03/14 00:15, Laurent Pinchart wrote:
Add support for the hsync-active, vsync-active and pclk-sample
properties to the DT bindings and control BT.656 mode implicitly.
Signed-off-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx>
---
.../devicetree/bindings/media/i2c/adv7604.txt | 13 +++++++++
drivers/media/i2c/adv7604.c | 31
++++++++++++++++++++-- 2 files changed, 42 insertions(+), 2 deletions(-)
diff --git a/Documentation/devicetree/bindings/media/i2c/adv7604.txt
b/Documentation/devicetree/bindings/media/i2c/adv7604.txt index
0845c50..2b62c06 100644
--- a/Documentation/devicetree/bindings/media/i2c/adv7604.txt
+++ b/Documentation/devicetree/bindings/media/i2c/adv7604.txt
@@ -30,6 +30,19 @@ Optional Properties:
- adi,disable-cable-reset: Boolean property. When set disables the HDMI
receiver automatic reset when the HDMI cable is unplugged.
+Optional Endpoint Properties:
+
+ The following three properties are defined in video-interfaces.txt and
are + valid for source endpoints only.
+
+ - hsync-active: Horizontal synchronization polarity. Defaults to active
low. + - vsync-active: Vertical synchronization polarity. Defaults to
active low. + - pclk-sample: Pixel clock polarity. Defaults to output on
the falling edge. +
+ If none of hsync-active, vsync-active and pclk-sample is specified the
+ endpoint will use embedded BT.656 synchronization.
+
+
Example:
hdmi_receiver@4c {
diff --git a/drivers/media/i2c/adv7604.c b/drivers/media/i2c/adv7604.c
index 95cc911..2a92099 100644
--- a/drivers/media/i2c/adv7604.c
+++ b/drivers/media/i2c/adv7604.c
@@ -41,6 +41,7 @@
#include <media/v4l2-ctrls.h>
#include <media/v4l2-device.h>
#include <media/v4l2-dv-timings.h>
+#include <media/v4l2-of.h>
static int debug;
module_param(debug, int, 0644);
@@ -2643,11 +2644,39 @@ MODULE_DEVICE_TABLE(of, adv7604_of_id);
static int adv7604_parse_dt(struct adv7604_state *state)
{
+ struct v4l2_of_endpoint bus_cfg;
+ struct device_node *endpoint;
struct device_node *np;
+ unsigned int flags;
int ret;
np = state->i2c_clients[ADV7604_PAGE_IO]->dev.of_node;
+ /* Parse the endpoint. */
+ endpoint = v4l2_of_get_next_endpoint(np, NULL);
+ if (!endpoint)
+ return -EINVAL;
Perhaps we should document this binding requires at least one endpoint
node ? I guess there is no point in not having any endpoint node ?
I think that's pretty much implied, otherwise the device will not be connected
to anything and will be unusable. I will document ports node usage though,
that's currently missing in the DT bindings documentation.
Doesn't the v4l2 helper code have standard parsing for the
endpoint sync configurations?
--
Ben Dooks http://www.codethink.co.uk/
Senior Engineer Codethink - Providing Genius
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html