2023-08-30 17:31:07 +02:00
|
|
|
# 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
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
2023-10-24 12:59:35 +02:00
|
|
|
+-------+----------+-------------------------------------+----------+
|
|
|
|
| | | ^ | |
|
|
|
|
| | | |vsync_len | |
|
|
|
|
| | | v | |
|
|
|
|
+-------+----------+-------------------------------------+----------+
|
|
|
|
| | | ^ | |
|
|
|
|
| | | |vback_porch | |
|
|
|
|
| | | v | |
|
|
|
|
+-------+----------#######################################----------+
|
|
|
|
| | # ^ # |
|
|
|
|
| | # | # |
|
|
|
|
| hsync | hback # | # hfront |
|
|
|
|
| len | porch # | hactive # porch |
|
|
|
|
|<----->|<-------->#<-------+--------------------------->#<-------->|
|
|
|
|
| | # | # |
|
|
|
|
| | # |vactive # |
|
|
|
|
| | # | # |
|
|
|
|
| | # v # |
|
|
|
|
+-------+----------#######################################----------+
|
|
|
|
| | | ^ | |
|
|
|
|
| | | |vfront_porch | |
|
|
|
|
| | | v | |
|
|
|
|
+-------+----------+-------------------------------------+----------+
|
2023-08-30 17:31:07 +02:00
|
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
$ref: /schemas/types.yaml#/definitions/uint32-array
|
|
|
|
oneOf:
|
|
|
|
- maxItems: 1
|
|
|
|
items:
|
|
|
|
description: typical number of pixels
|
|
|
|
- minItems: 3
|
|
|
|
maxItems: 3
|
|
|
|
items:
|
|
|
|
description: min, typ, max number of pixels
|
|
|
|
|
|
|
|
hback-porch:
|
|
|
|
description: Horizontal back porch timing
|
|
|
|
$ref: /schemas/types.yaml#/definitions/uint32-array
|
|
|
|
oneOf:
|
|
|
|
- maxItems: 1
|
|
|
|
items:
|
|
|
|
description: typical number of pixels
|
|
|
|
- minItems: 3
|
|
|
|
maxItems: 3
|
|
|
|
items:
|
|
|
|
description: min, typ, max number of pixels
|
|
|
|
|
|
|
|
hsync-len:
|
|
|
|
description: Horizontal sync length panel timing
|
|
|
|
$ref: /schemas/types.yaml#/definitions/uint32-array
|
|
|
|
oneOf:
|
|
|
|
- maxItems: 1
|
|
|
|
items:
|
|
|
|
description: typical number of pixels
|
|
|
|
- minItems: 3
|
|
|
|
maxItems: 3
|
|
|
|
items:
|
|
|
|
description: min, typ, max number of pixels
|
|
|
|
|
|
|
|
vfront-porch:
|
|
|
|
description: Vertical front porch panel timing
|
|
|
|
$ref: /schemas/types.yaml#/definitions/uint32-array
|
|
|
|
oneOf:
|
|
|
|
- maxItems: 1
|
|
|
|
items:
|
|
|
|
description: typical number of lines
|
|
|
|
- minItems: 3
|
|
|
|
maxItems: 3
|
|
|
|
items:
|
|
|
|
description: min, typ, max number of lines
|
|
|
|
|
|
|
|
vback-porch:
|
|
|
|
description: Vertical back porch panel timing
|
|
|
|
$ref: /schemas/types.yaml#/definitions/uint32-array
|
|
|
|
oneOf:
|
|
|
|
- maxItems: 1
|
|
|
|
items:
|
|
|
|
description: typical number of lines
|
|
|
|
- minItems: 3
|
|
|
|
maxItems: 3
|
|
|
|
items:
|
|
|
|
description: min, typ, max number of lines
|
|
|
|
|
|
|
|
vsync-len:
|
|
|
|
description: Vertical sync length panel timing
|
|
|
|
$ref: /schemas/types.yaml#/definitions/uint32-array
|
|
|
|
oneOf:
|
|
|
|
- maxItems: 1
|
|
|
|
items:
|
|
|
|
description: typical number of lines
|
|
|
|
- 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
|
|
|
|
$ref: /schemas/types.yaml#/definitions/uint32
|
|
|
|
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
|
|
|
|
$ref: /schemas/types.yaml#/definitions/uint32
|
|
|
|
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
|
|
|
|
$ref: /schemas/types.yaml#/definitions/uint32
|
|
|
|
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
|
|
|
|
$ref: /schemas/types.yaml#/definitions/uint32
|
|
|
|
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
|
|
|
|
$ref: /schemas/types.yaml#/definitions/uint32
|
|
|
|
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
|
|
|
|
|
|
|
|
...
|