Configure the DISPLAY_FLAGS_SYNC_POSEDGE/NEGEDGE flags according to the
binding document.
If the syncclk-active is present in DT, configure the flags accordingly, if
it is omitted it means that the SYNC edge is following the pixdata
configuration.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi at ti.com>
CC: Rob Herring <robh+dt at kernel.org>
CC: Mark Rutland <mark.rutland at arm.com>
CC: devicetree at vger.kernel.org
---
 drivers/video/of_display_timing.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/drivers/video/of_display_timing.c 
b/drivers/video/of_display_timing.c
index 8a1076beecd3..db992c684f09 100644
--- a/drivers/video/of_display_timing.c
+++ b/drivers/video/of_display_timing.c
@@ -88,6 +88,15 @@ static int of_parse_display_timing(const struct device_node 
*np,
                dt->flags |= val ? DISPLAY_FLAGS_PIXDATA_POSEDGE :
                                DISPLAY_FLAGS_PIXDATA_NEGEDGE;

+       if (!of_property_read_u32(np, "syncclk-active", &val))
+               dt->flags |= val ? DISPLAY_FLAGS_SYNC_POSEDGE :
+                               DISPLAY_FLAGS_SYNC_NEGEDGE;
+       else if (dt->flags & (DISPLAY_FLAGS_PIXDATA_POSEDGE |
+                             DISPLAY_FLAGS_PIXDATA_NEGEDGE))
+               dt->flags |= dt->flags & DISPLAY_FLAGS_PIXDATA_POSEDGE ?
+                               DISPLAY_FLAGS_SYNC_POSEDGE :
+                               DISPLAY_FLAGS_SYNC_NEGEDGE;
+
        if (of_property_read_bool(np, "interlaced"))
                dt->flags |= DISPLAY_FLAGS_INTERLACED;
        if (of_property_read_bool(np, "doublescan"))
-- 
2.9.3

Reply via email to