Back to home page

OSCL-LXR

 
 

    


0001 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
0002 %YAML 1.2
0003 ---
0004 $id: http://devicetree.org/schemas/display/panel/panel-timing.yaml#
0005 $schema: http://devicetree.org/meta-schemas/core.yaml#
0006 
0007 title: panel timing bindings
0008 
0009 maintainers:
0010   - Thierry Reding <thierry.reding@gmail.com>
0011   - Sam Ravnborg <sam@ravnborg.org>
0012 
0013 description: |
0014   There are different ways of describing the timing data of a panel. The
0015   devicetree representation corresponds to the one commonly found in datasheets
0016   for panels.
0017 
0018   The parameters are defined as seen in the following illustration.
0019 
0020   +----------+-------------------------------------+----------+-------+
0021   |          |        ^                            |          |       |
0022   |          |        |vback_porch                 |          |       |
0023   |          |        v                            |          |       |
0024   +----------#######################################----------+-------+
0025   |          #        ^                            #          |       |
0026   |          #        |                            #          |       |
0027   |  hback   #        |                            #  hfront  | hsync |
0028   |   porch  #        |       hactive              #  porch   |  len  |
0029   |<-------->#<-------+--------------------------->#<-------->|<----->|
0030   |          #        |                            #          |       |
0031   |          #        |vactive                     #          |       |
0032   |          #        |                            #          |       |
0033   |          #        v                            #          |       |
0034   +----------#######################################----------+-------+
0035   |          |        ^                            |          |       |
0036   |          |        |vfront_porch                |          |       |
0037   |          |        v                            |          |       |
0038   +----------+-------------------------------------+----------+-------+
0039   |          |        ^                            |          |       |
0040   |          |        |vsync_len                   |          |       |
0041   |          |        v                            |          |       |
0042   +----------+-------------------------------------+----------+-------+
0043 
0044 
0045   The following is the panel timings shown with time on the x-axis.
0046   This matches the timing diagrams often found in data sheets.
0047 
0048               Active                 Front           Sync           Back
0049               Region                 Porch                          Porch
0050   <-----------------------><----------------><-------------><-------------->
0051     //////////////////////|
0052    ////////////////////// |
0053   //////////////////////  |..................               ................
0054                                              _______________
0055 
0056   Timing can be specified either as a typical value or as a tuple
0057   of min, typ, max values.
0058 
0059 properties:
0060 
0061   clock-frequency:
0062     description: Panel clock in Hz
0063 
0064   hactive:
0065     $ref: /schemas/types.yaml#/definitions/uint32
0066     description: Horizontal panel resolution in pixels
0067 
0068   vactive:
0069     $ref: /schemas/types.yaml#/definitions/uint32
0070     description: Vertical panel resolution in pixels
0071 
0072   hfront-porch:
0073     description: Horizontal front porch panel timing
0074     $ref: /schemas/types.yaml#/definitions/uint32-array
0075     oneOf:
0076       - maxItems: 1
0077         items:
0078           description: typical number of pixels
0079       - minItems: 3
0080         maxItems: 3
0081         items:
0082           description: min, typ, max number of pixels
0083 
0084   hback-porch:
0085     description: Horizontal back porch timing
0086     $ref: /schemas/types.yaml#/definitions/uint32-array
0087     oneOf:
0088       - maxItems: 1
0089         items:
0090           description: typical number of pixels
0091       - minItems: 3
0092         maxItems: 3
0093         items:
0094           description: min, typ, max number of pixels
0095 
0096   hsync-len:
0097     description: Horizontal sync length panel timing
0098     $ref: /schemas/types.yaml#/definitions/uint32-array
0099     oneOf:
0100       - maxItems: 1
0101         items:
0102           description: typical number of pixels
0103       - minItems: 3
0104         maxItems: 3
0105         items:
0106           description: min, typ, max number of pixels
0107 
0108   vfront-porch:
0109     description: Vertical front porch panel timing
0110     $ref: /schemas/types.yaml#/definitions/uint32-array
0111     oneOf:
0112       - maxItems: 1
0113         items:
0114           description: typical number of lines
0115       - minItems: 3
0116         maxItems: 3
0117         items:
0118           description: min, typ, max number of lines
0119 
0120   vback-porch:
0121     description: Vertical back porch panel timing
0122     $ref: /schemas/types.yaml#/definitions/uint32-array
0123     oneOf:
0124       - maxItems: 1
0125         items:
0126           description: typical number of lines
0127       - minItems: 3
0128         maxItems: 3
0129         items:
0130           description: min, typ, max number of lines
0131 
0132   vsync-len:
0133     description: Vertical sync length panel timing
0134     $ref: /schemas/types.yaml#/definitions/uint32-array
0135     oneOf:
0136       - maxItems: 1
0137         items:
0138           description: typical number of lines
0139       - minItems: 3
0140         maxItems: 3
0141         items:
0142           description: min, typ, max number of lines
0143 
0144   hsync-active:
0145     description: |
0146       Horizontal sync pulse.
0147       0 selects active low, 1 selects active high.
0148       If omitted then it is not used by the hardware
0149     $ref: /schemas/types.yaml#/definitions/uint32
0150     enum: [0, 1]
0151 
0152   vsync-active:
0153     description: |
0154       Vertical sync pulse.
0155       0 selects active low, 1 selects active high.
0156       If omitted then it is not used by the hardware
0157     $ref: /schemas/types.yaml#/definitions/uint32
0158     enum: [0, 1]
0159 
0160   de-active:
0161     description: |
0162       Data enable.
0163       0 selects active low, 1 selects active high.
0164       If omitted then it is not used by the hardware
0165     $ref: /schemas/types.yaml#/definitions/uint32
0166     enum: [0, 1]
0167 
0168   pixelclk-active:
0169     description: |
0170       Data driving on rising or falling edge.
0171       Use 0 to drive pixel data on falling edge and
0172       sample data on rising edge.
0173       Use 1 to drive pixel data on rising edge and
0174       sample data on falling edge
0175     $ref: /schemas/types.yaml#/definitions/uint32
0176     enum: [0, 1]
0177 
0178   syncclk-active:
0179     description: |
0180       Drive sync on rising or sample sync on falling edge.
0181       If not specified then the setup is as specified by pixelclk-active.
0182       Use 0 to drive sync on falling edge and
0183       sample sync on rising edge of pixel clock.
0184       Use 1 to drive sync on rising edge and
0185       sample sync on falling edge of pixel clock
0186     $ref: /schemas/types.yaml#/definitions/uint32
0187     enum: [0, 1]
0188 
0189   interlaced:
0190     type: boolean
0191     description: Enable interlaced mode
0192 
0193   doublescan:
0194     type: boolean
0195     description: Enable double scan mode
0196 
0197   doubleclk:
0198     type: boolean
0199     description: Enable double clock mode
0200 
0201 required:
0202   - clock-frequency
0203   - hactive
0204   - vactive
0205   - hfront-porch
0206   - hback-porch
0207   - hsync-len
0208   - vfront-porch
0209   - vback-porch
0210   - vsync-len
0211 
0212 additionalProperties: false
0213 
0214 ...