| # 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: |
| - $ref: /schemas/types.yaml#/definitions/uint32 |
| maxItems: 1 |
| items: |
| description: typical number of pixels |
| - $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: |
| - $ref: /schemas/types.yaml#/definitions/uint32 |
| maxItems: 1 |
| items: |
| description: typical number of pixels |
| - $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: |
| - $ref: /schemas/types.yaml#/definitions/uint32 |
| maxItems: 1 |
| items: |
| description: typical number of pixels |
| - $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: |
| - $ref: /schemas/types.yaml#/definitions/uint32 |
| maxItems: 1 |
| items: |
| description: typical number of lines |
| - $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: |
| - $ref: /schemas/types.yaml#/definitions/uint32 |
| maxItems: 1 |
| items: |
| description: typical number of lines |
| - $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: |
| - $ref: /schemas/types.yaml#/definitions/uint32 |
| maxItems: 1 |
| items: |
| description: typical number of lines |
| - $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 |
| |
| ... |