lvds-codec.yaml 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  1. # SPDX-License-Identifier: GPL-2.0
  2. %YAML 1.2
  3. ---
  4. $id: http://devicetree.org/schemas/display/bridge/lvds-codec.yaml#
  5. $schema: http://devicetree.org/meta-schemas/core.yaml#
  6. title: Transparent LVDS encoders and decoders
  7. maintainers:
  8. - Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
  9. description: |
  10. This binding supports transparent LVDS encoders and decoders that don't
  11. require any configuration.
  12. LVDS is a physical layer specification defined in ANSI/TIA/EIA-644-A. Multiple
  13. incompatible data link layers have been used over time to transmit image data
  14. to LVDS panels. This binding targets devices compatible with the following
  15. specifications only.
  16. [JEIDA] "Digital Interface Standards for Monitor", JEIDA-59-1999, February
  17. 1999 (Version 1.0), Japan Electronic Industry Development Association (JEIDA)
  18. [LDI] "Open LVDS Display Interface", May 1999 (Version 0.95), National
  19. Semiconductor
  20. [VESA] "VESA Notebook Panel Standard", October 2007 (Version 1.0), Video
  21. Electronics Standards Association (VESA)
  22. Those devices have been marketed under the FPD-Link and FlatLink brand names
  23. among others.
  24. properties:
  25. compatible:
  26. oneOf:
  27. - items:
  28. - enum:
  29. - ti,ds90c185 # For the TI DS90C185 FPD-Link Serializer
  30. - ti,ds90c187 # For the TI DS90C187 FPD-Link Serializer
  31. - ti,sn75lvds83 # For the TI SN75LVDS83 FlatLink transmitter
  32. - const: lvds-encoder # Generic LVDS encoder compatible fallback
  33. - items:
  34. - enum:
  35. - ti,ds90cf364a # For the DS90CF364A FPD-Link LVDS Receiver
  36. - ti,ds90cf384a # For the DS90CF384A FPD-Link LVDS Receiver
  37. - ti,sn65lvds94 # For the SN65DS94 LVDS serdes
  38. - const: lvds-decoder # Generic LVDS decoders compatible fallback
  39. - enum:
  40. - thine,thc63lvdm83d # For the THC63LVDM83D LVDS serializer
  41. ports:
  42. $ref: /schemas/graph.yaml#/properties/ports
  43. properties:
  44. port@0:
  45. $ref: /schemas/graph.yaml#/$defs/port-base
  46. unevaluatedProperties: false
  47. description: |
  48. For LVDS encoders, port 0 is the parallel input
  49. For LVDS decoders, port 0 is the LVDS input
  50. properties:
  51. endpoint:
  52. $ref: /schemas/media/video-interfaces.yaml#
  53. unevaluatedProperties: false
  54. properties:
  55. data-mapping:
  56. enum:
  57. - jeida-18
  58. - jeida-24
  59. - vesa-24
  60. description: |
  61. The color signals mapping order. See details in
  62. Documentation/devicetree/bindings/display/lvds.yaml
  63. port@1:
  64. $ref: /schemas/graph.yaml#/properties/port
  65. description: |
  66. For LVDS encoders, port 1 is the LVDS output
  67. For LVDS decoders, port 1 is the parallel output
  68. required:
  69. - port@0
  70. - port@1
  71. pclk-sample:
  72. description:
  73. Data sampling on rising or falling edge.
  74. enum:
  75. - 0 # Falling edge
  76. - 1 # Rising edge
  77. default: 0
  78. powerdown-gpios:
  79. description:
  80. The GPIO used to control the power down line of this device.
  81. maxItems: 1
  82. power-supply: true
  83. allOf:
  84. - if:
  85. not:
  86. properties:
  87. compatible:
  88. contains:
  89. const: lvds-decoder
  90. then:
  91. properties:
  92. ports:
  93. properties:
  94. port@0:
  95. properties:
  96. endpoint:
  97. properties:
  98. data-mapping: false
  99. - if:
  100. not:
  101. properties:
  102. compatible:
  103. contains:
  104. const: lvds-encoder
  105. then:
  106. properties:
  107. pclk-sample: false
  108. required:
  109. - compatible
  110. - ports
  111. additionalProperties: false
  112. examples:
  113. - |
  114. lvds-encoder {
  115. compatible = "ti,ds90c185", "lvds-encoder";
  116. ports {
  117. #address-cells = <1>;
  118. #size-cells = <0>;
  119. port@0 {
  120. reg = <0>;
  121. lvds_enc_in: endpoint {
  122. remote-endpoint = <&display_out_rgb>;
  123. };
  124. };
  125. port@1 {
  126. reg = <1>;
  127. lvds_enc_out: endpoint {
  128. remote-endpoint = <&lvds_panel_in>;
  129. };
  130. };
  131. };
  132. };
  133. - |
  134. lvds-decoder {
  135. compatible = "ti,ds90cf384a", "lvds-decoder";
  136. ports {
  137. #address-cells = <1>;
  138. #size-cells = <0>;
  139. port@0 {
  140. reg = <0>;
  141. lvds_dec_in: endpoint {
  142. remote-endpoint = <&display_out_lvds>;
  143. };
  144. };
  145. port@1 {
  146. reg = <1>;
  147. lvds_dec_out: endpoint {
  148. remote-endpoint = <&rgb_panel_in>;
  149. };
  150. };
  151. };
  152. };
  153. ...