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