Merge branch 'misc.compat' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
[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 Example:
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
102 Every required property also supports the use of ranges, so the commonly used
103 datasheet description with minimum, typical and maximum values can be used.
104
105 Example:
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         };