blob: e1d4a0b596128b0060bd5df2fa21bd16e542540f [file] [log] [blame]
Simon Glassb24e8642015-04-14 21:03:21 -06001display-timing bindings
2=======================
3
4display-timings node
5--------------------
6
7required properties:
8 - none
9
10optional properties:
11 - native-mode: The native mode for the display, in case multiple modes are
12 provided. When omitted, assume the first node is the native.
13
14timing subnode
15--------------
16
17required properties:
18 - hactive, vactive: display resolution
19 - hfront-porch, hback-porch, hsync-len: horizontal display timing parameters
20 in pixels
21 vfront-porch, vback-porch, vsync-len: vertical display timing parameters in
22 lines
23 - clock-frequency: display clock in Hz
24
25optional properties:
26 - hsync-active: hsync pulse is active low/high/ignored
27 - vsync-active: vsync pulse is active low/high/ignored
28 - de-active: data-enable pulse is active low/high/ignored
29 - pixelclk-active: with
30 - active high = drive pixel data on rising edge/
31 sample data on falling edge
32 - active low = drive pixel data on falling edge/
33 sample data on rising edge
34 - ignored = ignored
35 - interlaced (bool): boolean to enable interlaced mode
36 - doublescan (bool): boolean to enable doublescan mode
37 - doubleclk (bool): boolean to enable doubleclock mode
38
39All the optional properties that are not bool follow the following logic:
40 <1>: high active
41 <0>: low active
42 omitted: not used on hardware
43
44There are different ways of describing the capabilities of a display. The
45devicetree representation corresponds to the one commonly found in datasheets
46for displays. If a display supports multiple signal timings, the native-mode
47can be specified.
48
49The parameters are defined as:
50
51 +----------+-------------------------------------+----------+-------+
52 | | | | |
53 | | |vback_porch | | |
54 | | | | |
55 +----------#######################################----------+-------+
56 | # ↑ # | |
57 | # | # | |
58 | hback # | # hfront | hsync |
59 | porch # | hactive # porch | len |
60 |<-------->#<-------+--------------------------->#<-------->|<----->|
61 | # | # | |
62 | # |vactive # | |
63 | # | # | |
64 | # ↓ # | |
65 +----------#######################################----------+-------+
66 | | | | |
67 | | |vfront_porch | | |
68 | | | | |
69 +----------+-------------------------------------+----------+-------+
70 | | | | |
71 | | |vsync_len | | |
72 | | | | |
73 +----------+-------------------------------------+----------+-------+
74
75Example:
76
77 display-timings {
78 native-mode = <&timing0>;
79 timing0: 1080p24 {
80 /* 1920x1080p24 */
81 clock-frequency = <52000000>;
82 hactive = <1920>;
83 vactive = <1080>;
84 hfront-porch = <25>;
85 hback-porch = <25>;
86 hsync-len = <25>;
87 vback-porch = <2>;
88 vfront-porch = <2>;
89 vsync-len = <2>;
90 hsync-active = <1>;
91 };
92 };
93
94Every required property also supports the use of ranges, so the commonly used
95datasheet description with minimum, typical and maximum values can be used.
96
97Example:
98
99 timing1: timing {
100 /* 1920x1080p24 */
101 clock-frequency = <148500000>;
102 hactive = <1920>;
103 vactive = <1080>;
104 hsync-len = <0 44 60>;
105 hfront-porch = <80 88 95>;
106 hback-porch = <100 148 160>;
107 vfront-porch = <0 4 6>;
108 vback-porch = <0 36 50>;
109 vsync-len = <0 5 6>;
110 };