1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/display/panel/panel-timing.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: panel timing bindings
8
9maintainers:
10  - Thierry Reding <thierry.reding@gmail.com>
11  - Sam Ravnborg <sam@ravnborg.org>
12
13description: |
14  There are different ways of describing the timing data of a panel. The
15  devicetree representation corresponds to the one commonly found in datasheets
16  for panels.
17
18  The parameters are defined as seen in the following illustration.
19
20  +----------+-------------------------------------+----------+-------+
21  |          |        ^                            |          |       |
22  |          |        |vback_porch                 |          |       |
23  |          |        v                            |          |       |
24  +----------#######################################----------+-------+
25  |          #        ^                            #          |       |
26  |          #        |                            #          |       |
27  |  hback   #        |                            #  hfront  | hsync |
28  |   porch  #        |       hactive              #  porch   |  len  |
29  |<-------->#<-------+--------------------------->#<-------->|<----->|
30  |          #        |                            #          |       |
31  |          #        |vactive                     #          |       |
32  |          #        |                            #          |       |
33  |          #        v                            #          |       |
34  +----------#######################################----------+-------+
35  |          |        ^                            |          |       |
36  |          |        |vfront_porch                |          |       |
37  |          |        v                            |          |       |
38  +----------+-------------------------------------+----------+-------+
39  |          |        ^                            |          |       |
40  |          |        |vsync_len                   |          |       |
41  |          |        v                            |          |       |
42  +----------+-------------------------------------+----------+-------+
43
44
45  The following is the panel timings shown with time on the x-axis.
46  This matches the timing diagrams often found in data sheets.
47
48              Active                 Front           Sync           Back
49              Region                 Porch                          Porch
50  <-----------------------><----------------><-------------><-------------->
51    //////////////////////|
52   ////////////////////// |
53  //////////////////////  |..................               ................
54                                             _______________
55
56  Timing can be specified either as a typical value or as a tuple
57  of min, typ, max values.
58
59properties:
60
61  clock-frequency:
62    description: Panel clock in Hz
63
64  hactive:
65    $ref: /schemas/types.yaml#/definitions/uint32
66    description: Horizontal panel resolution in pixels
67
68  vactive:
69    $ref: /schemas/types.yaml#/definitions/uint32
70    description: Vertical panel resolution in pixels
71
72  hfront-porch:
73    description: Horizontal front porch panel timing
74    oneOf:
75      - $ref: /schemas/types.yaml#/definitions/uint32
76        maxItems: 1
77        items:
78          description: typical number of pixels
79      - $ref: /schemas/types.yaml#/definitions/uint32-array
80        minItems: 3
81        maxItems: 3
82        items:
83          description: min, typ, max number of pixels
84
85  hback-porch:
86    description: Horizontal back porch timing
87    oneOf:
88      - $ref: /schemas/types.yaml#/definitions/uint32
89        maxItems: 1
90        items:
91          description: typical number of pixels
92      - $ref: /schemas/types.yaml#/definitions/uint32-array
93        minItems: 3
94        maxItems: 3
95        items:
96          description: min, typ, max number of pixels
97
98  hsync-len:
99    description: Horizontal sync length panel timing
100    oneOf:
101      - $ref: /schemas/types.yaml#/definitions/uint32
102        maxItems: 1
103        items:
104          description: typical number of pixels
105      - $ref: /schemas/types.yaml#/definitions/uint32-array
106        minItems: 3
107        maxItems: 3
108        items:
109          description: min, typ, max number of pixels
110
111  vfront-porch:
112    description: Vertical front porch panel timing
113    oneOf:
114      - $ref: /schemas/types.yaml#/definitions/uint32
115        maxItems: 1
116        items:
117          description: typical number of lines
118      - $ref: /schemas/types.yaml#/definitions/uint32-array
119        minItems: 3
120        maxItems: 3
121        items:
122          description: min, typ, max number of lines
123
124  vback-porch:
125    description: Vertical back porch panel timing
126    oneOf:
127      - $ref: /schemas/types.yaml#/definitions/uint32
128        maxItems: 1
129        items:
130          description: typical number of lines
131      - $ref: /schemas/types.yaml#/definitions/uint32-array
132        minItems: 3
133        maxItems: 3
134        items:
135          description: min, typ, max number of lines
136
137  vsync-len:
138    description: Vertical sync length panel timing
139    oneOf:
140      - $ref: /schemas/types.yaml#/definitions/uint32
141        maxItems: 1
142        items:
143          description: typical number of lines
144      - $ref: /schemas/types.yaml#/definitions/uint32-array
145        minItems: 3
146        maxItems: 3
147        items:
148          description: min, typ, max number of lines
149
150  hsync-active:
151    description: |
152      Horizontal sync pulse.
153      0 selects active low, 1 selects active high.
154      If omitted then it is not used by the hardware
155    enum: [0, 1]
156
157  vsync-active:
158    description: |
159      Vertical sync pulse.
160      0 selects active low, 1 selects active high.
161      If omitted then it is not used by the hardware
162    enum: [0, 1]
163
164  de-active:
165    description: |
166      Data enable.
167      0 selects active low, 1 selects active high.
168      If omitted then it is not used by the hardware
169    enum: [0, 1]
170
171  pixelclk-active:
172    description: |
173      Data driving on rising or falling edge.
174      Use 0 to drive pixel data on falling edge and
175      sample data on rising edge.
176      Use 1 to drive pixel data on rising edge and
177      sample data on falling edge
178    enum: [0, 1]
179
180  syncclk-active:
181    description: |
182      Drive sync on rising or sample sync on falling edge.
183      If not specified then the setup is as specified by pixelclk-active.
184      Use 0 to drive sync on falling edge and
185      sample sync on rising edge of pixel clock.
186      Use 1 to drive sync on rising edge and
187      sample sync on falling edge of pixel clock
188    enum: [0, 1]
189
190  interlaced:
191    type: boolean
192    description: Enable interlaced mode
193
194  doublescan:
195    type: boolean
196    description: Enable double scan mode
197
198  doubleclk:
199    type: boolean
200    description: Enable double clock mode
201
202required:
203  - clock-frequency
204  - hactive
205  - vactive
206  - hfront-porch
207  - hback-porch
208  - hsync-len
209  - vfront-porch
210  - vback-porch
211  - vsync-len
212
213additionalProperties: false
214
215...
216