.. | .. |
---|
1 | | -display-timing bindings |
---|
2 | | -======================= |
---|
3 | | - |
---|
4 | | -display-timings node |
---|
5 | | --------------------- |
---|
6 | | - |
---|
7 | | -required properties: |
---|
8 | | - - none |
---|
9 | | - |
---|
10 | | -optional 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 | | - |
---|
14 | | -timing subnode |
---|
15 | | --------------- |
---|
16 | | - |
---|
17 | | -required 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 | | - |
---|
25 | | -optional 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 | | - |
---|
47 | | -All 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 | | - |
---|
52 | | -There are different ways of describing the capabilities of a display. The |
---|
53 | | -devicetree representation corresponds to the one commonly found in datasheets |
---|
54 | | -for displays. If a display supports multiple signal timings, the native-mode |
---|
55 | | -can be specified. |
---|
56 | | - |
---|
57 | | -The 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 | | - |
---|
83 | | -Note: 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 | | - |
---|
88 | | -Example: |
---|
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 | | - |
---|
107 | | -Every required property also supports the use of ranges, so the commonly used |
---|
108 | | -datasheet description with minimum, typical and maximum values can be used. |
---|
109 | | - |
---|
110 | | -Example: |
---|
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 | | - }; |
---|
| 1 | +See display-timings.yaml in this directory. |
---|