xref: /openbmc/linux/Documentation/devicetree/bindings/display/panel/panel-timing.yaml (revision 1ac731c529cd4d6adbce134754b51ff7d822b145)
13aa31cedSSam Ravnborg# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
23aa31cedSSam Ravnborg%YAML 1.2
33aa31cedSSam Ravnborg---
43aa31cedSSam Ravnborg$id: http://devicetree.org/schemas/display/panel/panel-timing.yaml#
53aa31cedSSam Ravnborg$schema: http://devicetree.org/meta-schemas/core.yaml#
63aa31cedSSam Ravnborg
784e85359SKrzysztof Kozlowskititle: panel timing
83aa31cedSSam Ravnborg
93aa31cedSSam Ravnborgmaintainers:
103aa31cedSSam Ravnborg  - Thierry Reding <thierry.reding@gmail.com>
113aa31cedSSam Ravnborg  - Sam Ravnborg <sam@ravnborg.org>
123aa31cedSSam Ravnborg
133aa31cedSSam Ravnborgdescription: |
143aa31cedSSam Ravnborg  There are different ways of describing the timing data of a panel. The
153aa31cedSSam Ravnborg  devicetree representation corresponds to the one commonly found in datasheets
163aa31cedSSam Ravnborg  for panels.
173aa31cedSSam Ravnborg
183aa31cedSSam Ravnborg  The parameters are defined as seen in the following illustration.
193aa31cedSSam Ravnborg
20*3e66f493SMarek Vasut  +-------+----------+-------------------------------------+----------+
21*3e66f493SMarek Vasut  |       |          |        ^                            |          |
22*3e66f493SMarek Vasut  |       |          |        |vsync_len                   |          |
23*3e66f493SMarek Vasut  |       |          |        v                            |          |
24*3e66f493SMarek Vasut  +-------+----------+-------------------------------------+----------+
25*3e66f493SMarek Vasut  |       |          |        ^                            |          |
26*3e66f493SMarek Vasut  |       |          |        |vback_porch                 |          |
27*3e66f493SMarek Vasut  |       |          |        v                            |          |
28*3e66f493SMarek Vasut  +-------+----------#######################################----------+
29*3e66f493SMarek Vasut  |       |          #        ^                            #          |
30*3e66f493SMarek Vasut  |       |          #        |                            #          |
31*3e66f493SMarek Vasut  | hsync |  hback   #        |                            #  hfront  |
32*3e66f493SMarek Vasut  |  len  |   porch  #        |       hactive              #  porch   |
33*3e66f493SMarek Vasut  |<----->|<-------->#<-------+--------------------------->#<-------->|
34*3e66f493SMarek Vasut  |       |          #        |                            #          |
35*3e66f493SMarek Vasut  |       |          #        |vactive                     #          |
36*3e66f493SMarek Vasut  |       |          #        |                            #          |
37*3e66f493SMarek Vasut  |       |          #        v                            #          |
38*3e66f493SMarek Vasut  +-------+----------#######################################----------+
39*3e66f493SMarek Vasut  |       |          |        ^                            |          |
40*3e66f493SMarek Vasut  |       |          |        |vfront_porch                |          |
41*3e66f493SMarek Vasut  |       |          |        v                            |          |
42*3e66f493SMarek Vasut  +-------+----------+-------------------------------------+----------+
433aa31cedSSam Ravnborg
443aa31cedSSam Ravnborg
453aa31cedSSam Ravnborg  The following is the panel timings shown with time on the x-axis.
463aa31cedSSam Ravnborg  This matches the timing diagrams often found in data sheets.
473aa31cedSSam Ravnborg
483aa31cedSSam Ravnborg              Active                 Front           Sync           Back
493aa31cedSSam Ravnborg              Region                 Porch                          Porch
503aa31cedSSam Ravnborg  <-----------------------><----------------><-------------><-------------->
513aa31cedSSam Ravnborg    //////////////////////|
523aa31cedSSam Ravnborg   ////////////////////// |
533aa31cedSSam Ravnborg  //////////////////////  |..................               ................
543aa31cedSSam Ravnborg                                             _______________
553aa31cedSSam Ravnborg
563aa31cedSSam Ravnborg  Timing can be specified either as a typical value or as a tuple
573aa31cedSSam Ravnborg  of min, typ, max values.
583aa31cedSSam Ravnborg
593aa31cedSSam Ravnborgproperties:
603aa31cedSSam Ravnborg
613aa31cedSSam Ravnborg  clock-frequency:
623aa31cedSSam Ravnborg    description: Panel clock in Hz
633aa31cedSSam Ravnborg
643aa31cedSSam Ravnborg  hactive:
653aa31cedSSam Ravnborg    $ref: /schemas/types.yaml#/definitions/uint32
663aa31cedSSam Ravnborg    description: Horizontal panel resolution in pixels
673aa31cedSSam Ravnborg
683aa31cedSSam Ravnborg  vactive:
693aa31cedSSam Ravnborg    $ref: /schemas/types.yaml#/definitions/uint32
703aa31cedSSam Ravnborg    description: Vertical panel resolution in pixels
713aa31cedSSam Ravnborg
723aa31cedSSam Ravnborg  hfront-porch:
733aa31cedSSam Ravnborg    description: Horizontal front porch panel timing
74652980b1SRob Herring    $ref: /schemas/types.yaml#/definitions/uint32-array
753aa31cedSSam Ravnborg    oneOf:
76652980b1SRob Herring      - maxItems: 1
773aa31cedSSam Ravnborg        items:
783aa31cedSSam Ravnborg          description: typical number of pixels
79652980b1SRob Herring      - minItems: 3
803aa31cedSSam Ravnborg        maxItems: 3
813aa31cedSSam Ravnborg        items:
823aa31cedSSam Ravnborg          description: min, typ, max number of pixels
833aa31cedSSam Ravnborg
843aa31cedSSam Ravnborg  hback-porch:
853aa31cedSSam Ravnborg    description: Horizontal back porch timing
86652980b1SRob Herring    $ref: /schemas/types.yaml#/definitions/uint32-array
873aa31cedSSam Ravnborg    oneOf:
88652980b1SRob Herring      - maxItems: 1
893aa31cedSSam Ravnborg        items:
903aa31cedSSam Ravnborg          description: typical number of pixels
91652980b1SRob Herring      - minItems: 3
923aa31cedSSam Ravnborg        maxItems: 3
933aa31cedSSam Ravnborg        items:
943aa31cedSSam Ravnborg          description: min, typ, max number of pixels
953aa31cedSSam Ravnborg
963aa31cedSSam Ravnborg  hsync-len:
973aa31cedSSam Ravnborg    description: Horizontal sync length panel timing
98652980b1SRob Herring    $ref: /schemas/types.yaml#/definitions/uint32-array
993aa31cedSSam Ravnborg    oneOf:
100652980b1SRob Herring      - maxItems: 1
1013aa31cedSSam Ravnborg        items:
1023aa31cedSSam Ravnborg          description: typical number of pixels
103652980b1SRob Herring      - minItems: 3
1043aa31cedSSam Ravnborg        maxItems: 3
1053aa31cedSSam Ravnborg        items:
1063aa31cedSSam Ravnborg          description: min, typ, max number of pixels
1073aa31cedSSam Ravnborg
1083aa31cedSSam Ravnborg  vfront-porch:
1093aa31cedSSam Ravnborg    description: Vertical front porch panel timing
110652980b1SRob Herring    $ref: /schemas/types.yaml#/definitions/uint32-array
1113aa31cedSSam Ravnborg    oneOf:
112652980b1SRob Herring      - maxItems: 1
1133aa31cedSSam Ravnborg        items:
1143aa31cedSSam Ravnborg          description: typical number of lines
115652980b1SRob Herring      - minItems: 3
1163aa31cedSSam Ravnborg        maxItems: 3
1173aa31cedSSam Ravnborg        items:
1183aa31cedSSam Ravnborg          description: min, typ, max number of lines
1193aa31cedSSam Ravnborg
1203aa31cedSSam Ravnborg  vback-porch:
1213aa31cedSSam Ravnborg    description: Vertical back porch panel timing
122652980b1SRob Herring    $ref: /schemas/types.yaml#/definitions/uint32-array
1233aa31cedSSam Ravnborg    oneOf:
124652980b1SRob Herring      - maxItems: 1
1253aa31cedSSam Ravnborg        items:
1263aa31cedSSam Ravnborg          description: typical number of lines
127652980b1SRob Herring      - minItems: 3
1283aa31cedSSam Ravnborg        maxItems: 3
1293aa31cedSSam Ravnborg        items:
1303aa31cedSSam Ravnborg          description: min, typ, max number of lines
1313aa31cedSSam Ravnborg
1323aa31cedSSam Ravnborg  vsync-len:
1333aa31cedSSam Ravnborg    description: Vertical sync length panel timing
134652980b1SRob Herring    $ref: /schemas/types.yaml#/definitions/uint32-array
1353aa31cedSSam Ravnborg    oneOf:
136652980b1SRob Herring      - maxItems: 1
1373aa31cedSSam Ravnborg        items:
1383aa31cedSSam Ravnborg          description: typical number of lines
139652980b1SRob Herring      - minItems: 3
1403aa31cedSSam Ravnborg        maxItems: 3
1413aa31cedSSam Ravnborg        items:
1423aa31cedSSam Ravnborg          description: min, typ, max number of lines
1433aa31cedSSam Ravnborg
1443aa31cedSSam Ravnborg  hsync-active:
1453aa31cedSSam Ravnborg    description: |
1463aa31cedSSam Ravnborg      Horizontal sync pulse.
1473aa31cedSSam Ravnborg      0 selects active low, 1 selects active high.
1483aa31cedSSam Ravnborg      If omitted then it is not used by the hardware
1494e71ed98SRob Herring    $ref: /schemas/types.yaml#/definitions/uint32
1503aa31cedSSam Ravnborg    enum: [0, 1]
1513aa31cedSSam Ravnborg
1523aa31cedSSam Ravnborg  vsync-active:
1533aa31cedSSam Ravnborg    description: |
1543aa31cedSSam Ravnborg      Vertical sync pulse.
1553aa31cedSSam Ravnborg      0 selects active low, 1 selects active high.
1563aa31cedSSam Ravnborg      If omitted then it is not used by the hardware
1574e71ed98SRob Herring    $ref: /schemas/types.yaml#/definitions/uint32
1583aa31cedSSam Ravnborg    enum: [0, 1]
1593aa31cedSSam Ravnborg
1603aa31cedSSam Ravnborg  de-active:
1613aa31cedSSam Ravnborg    description: |
1623aa31cedSSam Ravnborg      Data enable.
1633aa31cedSSam Ravnborg      0 selects active low, 1 selects active high.
1643aa31cedSSam Ravnborg      If omitted then it is not used by the hardware
1654e71ed98SRob Herring    $ref: /schemas/types.yaml#/definitions/uint32
1663aa31cedSSam Ravnborg    enum: [0, 1]
1673aa31cedSSam Ravnborg
1683aa31cedSSam Ravnborg  pixelclk-active:
1693aa31cedSSam Ravnborg    description: |
1703aa31cedSSam Ravnborg      Data driving on rising or falling edge.
1713aa31cedSSam Ravnborg      Use 0 to drive pixel data on falling edge and
1723aa31cedSSam Ravnborg      sample data on rising edge.
1733aa31cedSSam Ravnborg      Use 1 to drive pixel data on rising edge and
1743aa31cedSSam Ravnborg      sample data on falling edge
1754e71ed98SRob Herring    $ref: /schemas/types.yaml#/definitions/uint32
1763aa31cedSSam Ravnborg    enum: [0, 1]
1773aa31cedSSam Ravnborg
1783aa31cedSSam Ravnborg  syncclk-active:
1793aa31cedSSam Ravnborg    description: |
1803aa31cedSSam Ravnborg      Drive sync on rising or sample sync on falling edge.
1813aa31cedSSam Ravnborg      If not specified then the setup is as specified by pixelclk-active.
1823aa31cedSSam Ravnborg      Use 0 to drive sync on falling edge and
1833aa31cedSSam Ravnborg      sample sync on rising edge of pixel clock.
1843aa31cedSSam Ravnborg      Use 1 to drive sync on rising edge and
1853aa31cedSSam Ravnborg      sample sync on falling edge of pixel clock
1864e71ed98SRob Herring    $ref: /schemas/types.yaml#/definitions/uint32
1873aa31cedSSam Ravnborg    enum: [0, 1]
1883aa31cedSSam Ravnborg
1893aa31cedSSam Ravnborg  interlaced:
1903aa31cedSSam Ravnborg    type: boolean
1913aa31cedSSam Ravnborg    description: Enable interlaced mode
1923aa31cedSSam Ravnborg
1933aa31cedSSam Ravnborg  doublescan:
1943aa31cedSSam Ravnborg    type: boolean
1953aa31cedSSam Ravnborg    description: Enable double scan mode
1963aa31cedSSam Ravnborg
1973aa31cedSSam Ravnborg  doubleclk:
1983aa31cedSSam Ravnborg    type: boolean
1993aa31cedSSam Ravnborg    description: Enable double clock mode
2003aa31cedSSam Ravnborg
2013aa31cedSSam Ravnborgrequired:
2023aa31cedSSam Ravnborg  - clock-frequency
2033aa31cedSSam Ravnborg  - hactive
2043aa31cedSSam Ravnborg  - vactive
2053aa31cedSSam Ravnborg  - hfront-porch
2063aa31cedSSam Ravnborg  - hback-porch
2073aa31cedSSam Ravnborg  - hsync-len
2083aa31cedSSam Ravnborg  - vfront-porch
2093aa31cedSSam Ravnborg  - vback-porch
2103aa31cedSSam Ravnborg  - vsync-len
2113aa31cedSSam Ravnborg
2123aa31cedSSam RavnborgadditionalProperties: false
2133aa31cedSSam Ravnborg
2143aa31cedSSam Ravnborg...
215