Merge tag 'asm-generic' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm...
[sfrench/cifs-2.6.git] / Documentation / devicetree / bindings / display / panel / display-timing.txt
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         };