Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
1display-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 - syncclk-active: with
36 - active high = drive sync on rising edge/
37 sample sync on falling edge of pixel
38 clock
39 - active low = drive sync on falling edge/
40 sample sync on rising edge of pixel
41 clock
42 - omitted = same configuration as pixelclk-active
43 - interlaced (bool): boolean to enable interlaced mode
44 - doublescan (bool): boolean to enable doublescan mode
45 - doubleclk (bool): boolean to enable doubleclock mode
46
47All the optional properties that are not bool follow the following logic:
48 <1>: high active
49 <0>: low active
50 omitted: not used on hardware
51
52There are different ways of describing the capabilities of a display. The
53devicetree representation corresponds to the one commonly found in datasheets
54for displays. If a display supports multiple signal timings, the native-mode
55can be specified.
56
57The parameters are defined as:
58
59 +----------+-------------------------------------+----------+-------+
60 | | ^ | | |
61 | | |vback_porch | | |
62 | | v | | |
63 +----------#######################################----------+-------+
64 | # ^ # | |
65 | # | # | |
66 | hback # | # hfront | hsync |
67 | porch # | hactive # porch | len |
68 |<-------->#<-------+--------------------------->#<-------->|<----->|
69 | # | # | |
70 | # |vactive # | |
71 | # | # | |
72 | # v # | |
73 +----------#######################################----------+-------+
74 | | ^ | | |
75 | | |vfront_porch | | |
76 | | v | | |
77 +----------+-------------------------------------+----------+-------+
78 | | ^ | | |
79 | | |vsync_len | | |
80 | | v | | |
81 +----------+-------------------------------------+----------+-------+
82
83Note: In addition to being used as subnode(s) of display-timings, the timing
84 subnode may also be used on its own. This is appropriate if only one mode
85 need be conveyed. In this case, the node should be named 'panel-timing'.
86
87
88Example:
89
90 display-timings {
91 native-mode = <&timing0>;
92 timing0: 1080p24 {
93 /* 1920x1080p24 */
94 clock-frequency = <52000000>;
95 hactive = <1920>;
96 vactive = <1080>;
97 hfront-porch = <25>;
98 hback-porch = <25>;
99 hsync-len = <25>;
100 vback-porch = <2>;
101 vfront-porch = <2>;
102 vsync-len = <2>;
103 hsync-active = <1>;
104 };
105 };
106
107Every required property also supports the use of ranges, so the commonly used
108datasheet description with minimum, typical and maximum values can be used.
109
110Example:
111
112 timing1: timing {
113 /* 1920x1080p24 */
114 clock-frequency = <148500000>;
115 hactive = <1920>;
116 vactive = <1080>;
117 hsync-len = <0 44 60>;
118 hfront-porch = <80 88 95>;
119 hback-porch = <100 148 160>;
120 vfront-porch = <0 4 6>;
121 vback-porch = <0 36 50>;
122 vsync-len = <0 5 6>;
123 };