display-timing.txt 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. display-timing bindings
  2. =======================
  3. display-timings node
  4. --------------------
  5. required properties:
  6. - none
  7. optional properties:
  8. - native-mode: The native mode for the display, in case multiple modes are
  9. provided. When omitted, assume the first node is the native.
  10. timing subnode
  11. --------------
  12. required properties:
  13. - hactive, vactive: display resolution
  14. - hfront-porch, hback-porch, hsync-len: horizontal display timing parameters
  15. in pixels
  16. vfront-porch, vback-porch, vsync-len: vertical display timing parameters in
  17. lines
  18. - clock-frequency: display clock in Hz
  19. optional properties:
  20. - hsync-active: hsync pulse is active low/high/ignored
  21. - vsync-active: vsync pulse is active low/high/ignored
  22. - de-active: data-enable pulse is active low/high/ignored
  23. - pixelclk-active: with
  24. - active high = drive pixel data on rising edge/
  25. sample data on falling edge
  26. - active low = drive pixel data on falling edge/
  27. sample data on rising edge
  28. - ignored = ignored
  29. - syncclk-active: with
  30. - active high = drive sync on rising edge/
  31. sample sync on falling edge of pixel
  32. clock
  33. - active low = drive sync on falling edge/
  34. sample sync on rising edge of pixel
  35. clock
  36. - omitted = same configuration as pixelclk-active
  37. - interlaced (bool): boolean to enable interlaced mode
  38. - doublescan (bool): boolean to enable doublescan mode
  39. - doubleclk (bool): boolean to enable doubleclock mode
  40. All the optional properties that are not bool follow the following logic:
  41. <1>: high active
  42. <0>: low active
  43. omitted: not used on hardware
  44. There are different ways of describing the capabilities of a display. The
  45. devicetree representation corresponds to the one commonly found in datasheets
  46. for displays. If a display supports multiple signal timings, the native-mode
  47. can be specified.
  48. The parameters are defined as:
  49. +----------+-------------------------------------+----------+-------+
  50. | | ^ | | |
  51. | | |vback_porch | | |
  52. | | v | | |
  53. +----------#######################################----------+-------+
  54. | # ^ # | |
  55. | # | # | |
  56. | hback # | # hfront | hsync |
  57. | porch # | hactive # porch | len |
  58. |<-------->#<-------+--------------------------->#<-------->|<----->|
  59. | # | # | |
  60. | # |vactive # | |
  61. | # | # | |
  62. | # v # | |
  63. +----------#######################################----------+-------+
  64. | | ^ | | |
  65. | | |vfront_porch | | |
  66. | | v | | |
  67. +----------+-------------------------------------+----------+-------+
  68. | | ^ | | |
  69. | | |vsync_len | | |
  70. | | v | | |
  71. +----------+-------------------------------------+----------+-------+
  72. Note: In addition to being used as subnode(s) of display-timings, the timing
  73. subnode may also be used on its own. This is appropriate if only one mode
  74. need be conveyed. In this case, the node should be named 'panel-timing'.
  75. Example:
  76. display-timings {
  77. native-mode = <&timing0>;
  78. timing0: 1080p24 {
  79. /* 1920x1080p24 */
  80. clock-frequency = <52000000>;
  81. hactive = <1920>;
  82. vactive = <1080>;
  83. hfront-porch = <25>;
  84. hback-porch = <25>;
  85. hsync-len = <25>;
  86. vback-porch = <2>;
  87. vfront-porch = <2>;
  88. vsync-len = <2>;
  89. hsync-active = <1>;
  90. };
  91. };
  92. Every required property also supports the use of ranges, so the commonly used
  93. datasheet description with minimum, typical and maximum values can be used.
  94. Example:
  95. timing1: timing {
  96. /* 1920x1080p24 */
  97. clock-frequency = <148500000>;
  98. hactive = <1920>;
  99. vactive = <1080>;
  100. hsync-len = <0 44 60>;
  101. hfront-porch = <80 88 95>;
  102. hback-porch = <100 148 160>;
  103. vfront-porch = <0 4 6>;
  104. vback-porch = <0 36 50>;
  105. vsync-len = <0 5 6>;
  106. };