
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 <peter.ujfalusi@ti.com> CC: Rob Herring <robh+dt@kernel.org> CC: Mark Rutland <mark.rutland@arm.com> CC: devicetree@vger.kernel.org Acked-by: Rob Herring <robh@kernel.org> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
119 lines
4.2 KiB
Plaintext
119 lines
4.2 KiB
Plaintext
display-timing bindings
|
|
=======================
|
|
|
|
display-timings node
|
|
--------------------
|
|
|
|
required properties:
|
|
- none
|
|
|
|
optional properties:
|
|
- native-mode: The native mode for the display, in case multiple modes are
|
|
provided. When omitted, assume the first node is the native.
|
|
|
|
timing subnode
|
|
--------------
|
|
|
|
required properties:
|
|
- hactive, vactive: display resolution
|
|
- hfront-porch, hback-porch, hsync-len: horizontal display timing parameters
|
|
in pixels
|
|
vfront-porch, vback-porch, vsync-len: vertical display timing parameters in
|
|
lines
|
|
- clock-frequency: display clock in Hz
|
|
|
|
optional properties:
|
|
- hsync-active: hsync pulse is active low/high/ignored
|
|
- vsync-active: vsync pulse is active low/high/ignored
|
|
- de-active: data-enable pulse is active low/high/ignored
|
|
- pixelclk-active: with
|
|
- active high = drive pixel data on rising edge/
|
|
sample data on falling edge
|
|
- 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
|
|
|
|
All the optional properties that are not bool follow the following logic:
|
|
<1>: high active
|
|
<0>: low active
|
|
omitted: not used on hardware
|
|
|
|
There are different ways of describing the capabilities of a display. The
|
|
devicetree representation corresponds to the one commonly found in datasheets
|
|
for displays. If a display supports multiple signal timings, the native-mode
|
|
can be specified.
|
|
|
|
The parameters are defined as:
|
|
|
|
+----------+-------------------------------------+----------+-------+
|
|
| | ↑ | | |
|
|
| | |vback_porch | | |
|
|
| | ↓ | | |
|
|
+----------#######################################----------+-------+
|
|
| # ↑ # | |
|
|
| # | # | |
|
|
| hback # | # hfront | hsync |
|
|
| porch # | hactive # porch | len |
|
|
|<-------->#<-------+--------------------------->#<-------->|<----->|
|
|
| # | # | |
|
|
| # |vactive # | |
|
|
| # | # | |
|
|
| # ↓ # | |
|
|
+----------#######################################----------+-------+
|
|
| | ↑ | | |
|
|
| | |vfront_porch | | |
|
|
| | ↓ | | |
|
|
+----------+-------------------------------------+----------+-------+
|
|
| | ↑ | | |
|
|
| | |vsync_len | | |
|
|
| | ↓ | | |
|
|
+----------+-------------------------------------+----------+-------+
|
|
|
|
Example:
|
|
|
|
display-timings {
|
|
native-mode = <&timing0>;
|
|
timing0: 1080p24 {
|
|
/* 1920x1080p24 */
|
|
clock-frequency = <52000000>;
|
|
hactive = <1920>;
|
|
vactive = <1080>;
|
|
hfront-porch = <25>;
|
|
hback-porch = <25>;
|
|
hsync-len = <25>;
|
|
vback-porch = <2>;
|
|
vfront-porch = <2>;
|
|
vsync-len = <2>;
|
|
hsync-active = <1>;
|
|
};
|
|
};
|
|
|
|
Every required property also supports the use of ranges, so the commonly used
|
|
datasheet description with minimum, typical and maximum values can be used.
|
|
|
|
Example:
|
|
|
|
timing1: timing {
|
|
/* 1920x1080p24 */
|
|
clock-frequency = <148500000>;
|
|
hactive = <1920>;
|
|
vactive = <1080>;
|
|
hsync-len = <0 44 60>;
|
|
hfront-porch = <80 88 95>;
|
|
hback-porch = <100 148 160>;
|
|
vfront-porch = <0 4 6>;
|
|
vback-porch = <0 36 50>;
|
|
vsync-len = <0 5 6>;
|
|
};
|