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  |          |        ↓                            |          |       |
63  +----------#######################################----------+-------+
64  |          #        ↑                            #          |       |
65  |          #        |                            #          |       |
66  |  hback   #        |                            #  hfront  | hsync |
67  |   porch  #        |       hactive              #  porch   |  len  |
68  |<-------->#<-------+--------------------------->#<-------->|<----->|
69  |          #        |                            #          |       |
70  |          #        |vactive                     #          |       |
71  |          #        |                            #          |       |
72  |          #        ↓                            #          |       |
73  +----------#######################################----------+-------+
74  |          |        ↑                            |          |       |
75  |          |        |vfront_porch                |          |       |
76  |          |        ↓                            |          |       |
77  +----------+-------------------------------------+----------+-------+
78  |          |        ↑                            |          |       |
79  |          |        |vsync_len                   |          |       |
80  |          |        ↓                            |          |       |
81  +----------+-------------------------------------+----------+-------+
82
83Example:
84
85	display-timings {
86		native-mode = <&timing0>;
87		timing0: 1080p24 {
88			/* 1920x1080p24 */
89			clock-frequency = <52000000>;
90			hactive = <1920>;
91			vactive = <1080>;
92			hfront-porch = <25>;
93			hback-porch = <25>;
94			hsync-len = <25>;
95			vback-porch = <2>;
96			vfront-porch = <2>;
97			vsync-len = <2>;
98			hsync-active = <1>;
99		};
100	};
101
102Every required property also supports the use of ranges, so the commonly used
103datasheet description with minimum, typical and maximum values can be used.
104
105Example:
106
107	timing1: timing {
108		/* 1920x1080p24 */
109		clock-frequency = <148500000>;
110		hactive = <1920>;
111		vactive = <1080>;
112		hsync-len = <0 44 60>;
113		hfront-porch = <80 88 95>;
114		hback-porch = <100 148 160>;
115		vfront-porch = <0 4 6>;
116		vback-porch = <0 36 50>;
117		vsync-len = <0 5 6>;
118	};
119