From: Peter Ujfalusi <hidden> Date: 2016-09-22 10:36:00
Hi,
Changes since v1:
- separated the code changes from the omap/drm videomode conversion patches
- the DT bindings document is now explicitly states that the drive edge is
referring to the pixel clock
Since we have several panels under omapdrm/displays/ where the data drive edge
is set to be different then the sync drive edge, the first three patch will add
support to select the sync drive edge via DT.
I was not able to locate the datasheet for all the panels and because the
different edge was used in omapdrm and omapfb for a long time without complains
from users - and they were written this way - I think it is a valid that we can
have panels requiring different edge for data and sync to be driven.
This series will add support for the sync drive edge setting and the omapdrm's
videmode conversion series depends on this change. It is also planned that the
omapdrm is going to move to use the drm/panel in the future and to be able to
convert the panel drivers we will need this feature.
Regards,
Peter
---
Peter Ujfalusi (3):
dt-bindings: display: display-timing: Add property to configure sync
drive edge
video: display_timing: Add flags to select the edge when the sync is
driven
video: of: display_timing: Add support for syncclk-active property
.../devicetree/bindings/display/panel/display-timing.txt | 8 ++++++++
drivers/video/of_display_timing.c | 9 +++++++++
include/video/display_timing.h | 4 ++++
3 files changed, 21 insertions(+)
--
2.10.0
From: Peter Ujfalusi <hidden> Date: 2016-09-22 10:35:57
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 <redacted>
CC: Rob Herring <robh+dt@kernel.org>
CC: Mark Rutland <mark.rutland@arm.com>
CC: devicetree@vger.kernel.org
---
drivers/video/of_display_timing.c | 9 +++++++++
1 file changed, 9 insertions(+)
From: Peter Ujfalusi <hidden> Date: 2016-09-22 10:36:03
There are display panels which demands that the sync signal is driven on
different edge than the pixel data.
With the syncclk-active property we can specify the clk edge to be used to
drive the sync signal. When the property is missing it indicates that the
sync is driven on the same edge as the pixel data.
Signed-off-by: Peter Ujfalusi <redacted>
CC: Rob Herring <robh+dt@kernel.org>
CC: Mark Rutland <mark.rutland@arm.com>
CC: devicetree@vger.kernel.org
---
.../devicetree/bindings/display/panel/display-timing.txt | 8 ++++++++
1 file changed, 8 insertions(+)
@@ -32,6 +32,14 @@ optional properties: - active low = drive pixel data on falling edge/ sample data on rising edge - ignored = ignored+ - syncclk-active: with+ - active high = drive sync on rising edge/+ sample sync on falling edge of pixel+ clock+ - active low = drive sync on falling edge/+ sample sync on rising edge of pixel+ clock+ - omitted = same configuration as pixelclk-active - interlaced (bool): boolean to enable interlaced mode - doublescan (bool): boolean to enable doublescan mode - doubleclk (bool): boolean to enable doubleclock mode
From: Peter Ujfalusi <hidden> Date: 2016-09-22 10:36:36
The sync can be - and for some panels it must be - driven on different edge
then the data.
Signed-off-by: Peter Ujfalusi <redacted>
CC: Rob Herring <robh+dt@kernel.org>
CC: Mark Rutland <mark.rutland@arm.com>
CC: devicetree@vger.kernel.org
---
include/video/display_timing.h | 4 ++++
1 file changed, 4 insertions(+)
From: Rob Herring <robh@kernel.org> Date: 2016-09-23 20:02:02
On Thu, Sep 22, 2016 at 01:35:24PM +0300, Peter Ujfalusi wrote:
There are display panels which demands that the sync signal is driven on
different edge than the pixel data.
With the syncclk-active property we can specify the clk edge to be used to
drive the sync signal. When the property is missing it indicates that the
sync is driven on the same edge as the pixel data.
Signed-off-by: Peter Ujfalusi <redacted>
CC: Rob Herring <robh+dt@kernel.org>
CC: Mark Rutland <mark.rutland@arm.com>
CC: devicetree@vger.kernel.org
---
.../devicetree/bindings/display/panel/display-timing.txt | 8 ++++++++
1 file changed, 8 insertions(+)
From: Tomi Valkeinen <hidden> Date: 2016-09-29 10:54:15
On 22/09/16 13:35, Peter Ujfalusi wrote:
quoted hunk
There are display panels which demands that the sync signal is driven on
different edge than the pixel data.
With the syncclk-active property we can specify the clk edge to be used to
drive the sync signal. When the property is missing it indicates that the
sync is driven on the same edge as the pixel data.
Signed-off-by: Peter Ujfalusi <redacted>
CC: Rob Herring <robh+dt@kernel.org>
CC: Mark Rutland <mark.rutland@arm.com>
CC: devicetree@vger.kernel.org
---
.../devicetree/bindings/display/panel/display-timing.txt | 8 ++++++++
1 file changed, 8 insertions(+)
@@ -32,6 +32,14 @@ optional properties: - active low = drive pixel data on falling edge/ sample data on rising edge - ignored = ignored+ - syncclk-active: with+ - active high = drive sync on rising edge/+ sample sync on falling edge of pixel+ clock+ - active low = drive sync on falling edge/+ sample sync on rising edge of pixel+ clock+ - omitted = same configuration as pixelclk-active
I wonder if the "sample sync on..." should be left out here. It makes
sense for the pixel data, but for sync... Do the panels "sample" it, or
do they trigger on rising/falling edge?
Well, maybe that's a bit on the nitpick side, so:
Reviewed-by: Tomi Valkeinen <redacted>
Tomi
From: Tomi Valkeinen <hidden> Date: 2016-09-29 10:55:57
On 22/09/16 13:35, Peter Ujfalusi wrote:
quoted hunk
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 <redacted>
CC: Rob Herring <robh+dt@kernel.org>
CC: Mark Rutland <mark.rutland@arm.com>
CC: devicetree@vger.kernel.org
---
drivers/video/of_display_timing.c | 9 +++++++++
1 file changed, 9 insertions(+)