About Kernel Documentation Linux Kernel Contact Linux Resources Linux Blog

Documentation / devicetree / bindings / video / display-timing.txt


Based on kernel version 4.3. Page generated on 2015-11-02 12:47 EST.

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	 - interlaced (bool): boolean to enable interlaced mode
36	 - doublescan (bool): boolean to enable doublescan mode
37	 - doubleclk (bool): boolean to enable doubleclock mode
38	
39	All 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	
44	There are different ways of describing the capabilities of a display. The
45	devicetree representation corresponds to the one commonly found in datasheets
46	for displays. If a display supports multiple signal timings, the native-mode
47	can be specified.
48	
49	The 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	
75	Example:
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	
94	Every required property also supports the use of ranges, so the commonly used
95	datasheet description with minimum, typical and maximum values can be used.
96	
97	Example:
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		};
Hide Line Numbers


About Kernel Documentation Linux Kernel Contact Linux Resources Linux Blog