]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - Bindings/display/panel/panel-timing.yaml
Import DTS from Linux 5.8
[FreeBSD/FreeBSD.git] / Bindings / display / panel / panel-timing.yaml
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
7 title: panel timing bindings
8
9 maintainers:
10   - Thierry Reding <thierry.reding@gmail.com>
11   - Sam Ravnborg <sam@ravnborg.org>
12
13 description: |
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
59 properties:
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
202 required:
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
213 additionalProperties: false
214
215 ...