-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
dt-bindings: display: add panel-timing.yaml
Add meta-schema variant of panel-timing and reference it from panel-common.yaml. Part of this came form other files with other licenses - original commits: commit cc3f414 ("video: add of helper for display timings/videomode") commit 86f4656 ("dt-bindings: display: display-timing: Add property to configure sync drive edge") commit 9cad9c9 ("Documentation: DocBook DRM framework documentation") The original authors acked the license change to: (GPL-2.0-only OR BSD-2-Clause) v2: - Got OK from original authors for re-license Huge thanks for the quick replies! - Typo fixes (Oleksandr) - Drop -array variant when not needed (Maxime) - Replace oneOf:... with enum (Maxime) - Drop type from clock-frequency (Rob) - Drop "|" when not needed (Rob) v3: - Added comment to acks that are only for the license change - Add yaml document terminator "..." - Updated description (removed reference to native-mode) Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> [license change] Acked-by: Peter Ujfalusi <peter.ujfalusi@ti.com> [license change] Acked-by: Steffen Trumtrar <s.trumtrar@pengutronix.de> [license change] Acked-by: Philipp Zabel <p.zabel@pengutronix.de> [license change] Reviewed-by: Rob Herring <robh@kernel.org> Acked-by: Maxime Ripard <mripard@kernel.org> Cc: Thierry Reding <thierry.reding@gmail.com> Cc: Oleksandr Suvorov <oleksandr.suvorov@toradex.com> Cc: Maxime Ripard <mripard@kernel.org> Cc: devicetree@vger.kernel.org Link: https://patchwork.freedesktop.org/patch/msgid/20200216181513.28109-2-sam@ravnborg.org
- Loading branch information
Sam Ravnborg
committed
Feb 29, 2020
1 parent
899f24e
commit 3aa31ce
Showing
2 changed files
with
230 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
227 changes: 227 additions & 0 deletions
227
Documentation/devicetree/bindings/display/panel/panel-timing.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,227 @@ | ||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) | ||
%YAML 1.2 | ||
--- | ||
$id: http://devicetree.org/schemas/display/panel/panel-timing.yaml# | ||
$schema: http://devicetree.org/meta-schemas/core.yaml# | ||
|
||
title: panel timing bindings | ||
|
||
maintainers: | ||
- Thierry Reding <thierry.reding@gmail.com> | ||
- Sam Ravnborg <sam@ravnborg.org> | ||
|
||
description: | | ||
There are different ways of describing the timing data of a panel. The | ||
devicetree representation corresponds to the one commonly found in datasheets | ||
for panels. | ||
The parameters are defined as seen in the following illustration. | ||
+----------+-------------------------------------+----------+-------+ | ||
| | ^ | | | | ||
| | |vback_porch | | | | ||
| | v | | | | ||
+----------#######################################----------+-------+ | ||
| # ^ # | | | ||
| # | # | | | ||
| hback # | # hfront | hsync | | ||
| porch # | hactive # porch | len | | ||
|<-------->#<-------+--------------------------->#<-------->|<----->| | ||
| # | # | | | ||
| # |vactive # | | | ||
| # | # | | | ||
| # v # | | | ||
+----------#######################################----------+-------+ | ||
| | ^ | | | | ||
| | |vfront_porch | | | | ||
| | v | | | | ||
+----------+-------------------------------------+----------+-------+ | ||
| | ^ | | | | ||
| | |vsync_len | | | | ||
| | v | | | | ||
+----------+-------------------------------------+----------+-------+ | ||
The following is the panel timings shown with time on the x-axis. | ||
This matches the timing diagrams often found in data sheets. | ||
Active Front Sync Back | ||
Region Porch Porch | ||
<-----------------------><----------------><-------------><--------------> | ||
//////////////////////| | ||
////////////////////// | | ||
////////////////////// |.................. ................ | ||
_______________ | ||
Timing can be specified either as a typical value or as a tuple | ||
of min, typ, max values. | ||
properties: | ||
|
||
clock-frequency: | ||
description: Panel clock in Hz | ||
|
||
hactive: | ||
$ref: /schemas/types.yaml#/definitions/uint32 | ||
description: Horizontal panel resolution in pixels | ||
|
||
vactive: | ||
$ref: /schemas/types.yaml#/definitions/uint32 | ||
description: Vertical panel resolution in pixels | ||
|
||
hfront-porch: | ||
description: Horizontal front porch panel timing | ||
oneOf: | ||
- allOf: | ||
- $ref: /schemas/types.yaml#/definitions/uint32 | ||
- maxItems: 1 | ||
items: | ||
description: typical number of pixels | ||
- allOf: | ||
- $ref: /schemas/types.yaml#/definitions/uint32-array | ||
- minItems: 3 | ||
maxItems: 3 | ||
items: | ||
description: min, typ, max number of pixels | ||
|
||
hback-porch: | ||
description: Horizontal back porch timing | ||
oneOf: | ||
- allOf: | ||
- $ref: /schemas/types.yaml#/definitions/uint32 | ||
- maxItems: 1 | ||
items: | ||
description: typical number of pixels | ||
- allOf: | ||
- $ref: /schemas/types.yaml#/definitions/uint32-array | ||
- minItems: 3 | ||
maxItems: 3 | ||
items: | ||
description: min, typ, max number of pixels | ||
|
||
hsync-len: | ||
description: Horizontal sync length panel timing | ||
oneOf: | ||
- allOf: | ||
- $ref: /schemas/types.yaml#/definitions/uint32 | ||
- maxItems: 1 | ||
items: | ||
description: typical number of pixels | ||
- allOf: | ||
- $ref: /schemas/types.yaml#/definitions/uint32-array | ||
- minItems: 3 | ||
maxItems: 3 | ||
items: | ||
description: min, typ, max number of pixels | ||
|
||
vfront-porch: | ||
description: Vertical front porch panel timing | ||
oneOf: | ||
- allOf: | ||
- $ref: /schemas/types.yaml#/definitions/uint32 | ||
- maxItems: 1 | ||
items: | ||
description: typical number of lines | ||
- allOf: | ||
- $ref: /schemas/types.yaml#/definitions/uint32-array | ||
- minItems: 3 | ||
maxItems: 3 | ||
items: | ||
description: min, typ, max number of lines | ||
|
||
vback-porch: | ||
description: Vertical back porch panel timing | ||
oneOf: | ||
- allOf: | ||
- $ref: /schemas/types.yaml#/definitions/uint32 | ||
- maxItems: 1 | ||
items: | ||
description: typical number of lines | ||
- allOf: | ||
- $ref: /schemas/types.yaml#/definitions/uint32-array | ||
- minItems: 3 | ||
maxItems: 3 | ||
items: | ||
description: min, typ, max number of lines | ||
|
||
vsync-len: | ||
description: Vertical sync length panel timing | ||
oneOf: | ||
- allOf: | ||
- $ref: /schemas/types.yaml#/definitions/uint32 | ||
- maxItems: 1 | ||
items: | ||
description: typical number of lines | ||
- allOf: | ||
- $ref: /schemas/types.yaml#/definitions/uint32-array | ||
- minItems: 3 | ||
maxItems: 3 | ||
items: | ||
description: min, typ, max number of lines | ||
|
||
hsync-active: | ||
description: | | ||
Horizontal sync pulse. | ||
0 selects active low, 1 selects active high. | ||
If omitted then it is not used by the hardware | ||
enum: [0, 1] | ||
|
||
vsync-active: | ||
description: | | ||
Vertical sync pulse. | ||
0 selects active low, 1 selects active high. | ||
If omitted then it is not used by the hardware | ||
enum: [0, 1] | ||
|
||
de-active: | ||
description: | | ||
Data enable. | ||
0 selects active low, 1 selects active high. | ||
If omitted then it is not used by the hardware | ||
enum: [0, 1] | ||
|
||
pixelclk-active: | ||
description: | | ||
Data driving on rising or falling edge. | ||
Use 0 to drive pixel data on falling edge and | ||
sample data on rising edge. | ||
Use 1 to drive pixel data on rising edge and | ||
sample data on falling edge | ||
enum: [0, 1] | ||
|
||
syncclk-active: | ||
description: | | ||
Drive sync on rising or sample sync on falling edge. | ||
If not specified then the setup is as specified by pixelclk-active. | ||
Use 0 to drive sync on falling edge and | ||
sample sync on rising edge of pixel clock. | ||
Use 1 to drive sync on rising edge and | ||
sample sync on falling edge of pixel clock | ||
enum: [0, 1] | ||
|
||
interlaced: | ||
type: boolean | ||
description: Enable interlaced mode | ||
|
||
doublescan: | ||
type: boolean | ||
description: Enable double scan mode | ||
|
||
doubleclk: | ||
type: boolean | ||
description: Enable double clock mode | ||
|
||
required: | ||
- clock-frequency | ||
- hactive | ||
- vactive | ||
- hfront-porch | ||
- hback-porch | ||
- hsync-len | ||
- vfront-porch | ||
- vback-porch | ||
- vsync-len | ||
|
||
additionalProperties: false | ||
|
||
... |