mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-11 12:28:41 +08:00
4e71ed9853
Now that the schema tools can extract type information for all properties (in order to decode dtb files), finding properties missing any type definition is fairly trivial though not yet automated. Fix the various property schemas which are missing a type. Most of these tend to be device specific properties which don't have a vendor prefix. A vendor prefix is how we normally ensure a type is defined. Signed-off-by: Rob Herring <robh@kernel.org> Acked-by: Sam Ravnborg <sam@ravnborg.org> # for everything in .../bindings/display/ Acked-by: Mark Brown <broonie@kernel.org> Acked-by: Peter Rosin <peda@axentia.se> Acked-by: Bartosz Golaszewski <brgl@bgdev.pl> Acked-by: Sebastian Reichel <sebastian.reichel@collabora.com> Link: https://lore.kernel.org/r/20220519211411.2200720-1-robh@kernel.org
215 lines
6.8 KiB
YAML
215 lines
6.8 KiB
YAML
# 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
|
|
$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
|
|
|
|
...
|