treewide: remove redundant IS_ERR() before error code check
[linux/fpc-iii.git] / Documentation / devicetree / bindings / display / panel / display-timing.txt
blob78222ced187436503382c0241f39a438af842c16
1 display-timing bindings
2 =======================
4 display-timings node
5 --------------------
7 required properties:
8  - none
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.
14 timing subnode
15 --------------
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
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
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
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.
57 The parameters are defined as:
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   +----------+-------------------------------------+----------+-------+
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'.
88 Example:
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         };
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.
110 Example:
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         };