Documentation / devicetree / bindings / display / bridge / lvds-codec.yaml


Based on kernel version 6.9. Page generated on 2024-05-14 10:02 EST.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/display/bridge/lvds-codec.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Transparent LVDS encoders and decoders

maintainers:
  - Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>

description: |
  This binding supports transparent LVDS encoders and decoders that don't
  require any configuration.
 
  LVDS is a physical layer specification defined in ANSI/TIA/EIA-644-A. Multiple
  incompatible data link layers have been used over time to transmit image data
  to LVDS panels. This binding targets devices compatible with the following
  specifications only.
 
  [JEIDA] "Digital Interface Standards for Monitor", JEIDA-59-1999, February
  1999 (Version 1.0), Japan Electronic Industry Development Association (JEIDA)
  [LDI] "Open LVDS Display Interface", May 1999 (Version 0.95), National
  Semiconductor
  [VESA] "VESA Notebook Panel Standard", October 2007 (Version 1.0), Video
  Electronics Standards Association (VESA)
 
  Those devices have been marketed under the FPD-Link and FlatLink brand names
  among others.

properties:
  compatible:
    oneOf:
      - items:
          - enum:
              - ti,ds90c185   # For the TI DS90C185 FPD-Link Serializer
              - ti,ds90c187   # For the TI DS90C187 FPD-Link Serializer
              - ti,sn75lvds83 # For the TI SN75LVDS83 FlatLink transmitter
          - const: lvds-encoder # Generic LVDS encoder compatible fallback
      - items:
          - enum:
              - ti,ds90cf364a # For the DS90CF364A FPD-Link LVDS Receiver
              - ti,ds90cf384a # For the DS90CF384A FPD-Link LVDS Receiver
          - const: lvds-decoder # Generic LVDS decoders compatible fallback
      - enum:
          - thine,thc63lvdm83d # For the THC63LVDM83D LVDS serializer

  ports:
    $ref: /schemas/graph.yaml#/properties/ports

    properties:
      port@0:
        $ref: /schemas/graph.yaml#/$defs/port-base
        unevaluatedProperties: false
        description: |
          For LVDS encoders, port 0 is the parallel input
          For LVDS decoders, port 0 is the LVDS input

        properties:
          endpoint:
            $ref: /schemas/media/video-interfaces.yaml#
            unevaluatedProperties: false

            properties:
              data-mapping:
                enum:
                  - jeida-18
                  - jeida-24
                  - vesa-24
                description: |
                  The color signals mapping order. See details in
                  Documentation/devicetree/bindings/display/lvds.yaml

      port@1:
        $ref: /schemas/graph.yaml#/properties/port
        description: |
          For LVDS encoders, port 1 is the LVDS output
          For LVDS decoders, port 1 is the parallel output

    required:
      - port@0
      - port@1

  pclk-sample:
    description:
      Data sampling on rising or falling edge.
    enum:
      - 0  # Falling edge
      - 1  # Rising edge
    default: 0

  powerdown-gpios:
    description:
      The GPIO used to control the power down line of this device.
    maxItems: 1

  power-supply: true

allOf:
  - if:
      not:
        properties:
          compatible:
            contains:
              const: lvds-decoder
    then:
      properties:
        ports:
          properties:
            port@0:
              properties:
                endpoint:
                  properties:
                    data-mapping: false

  - if:
      not:
        properties:
          compatible:
            contains:
              const: lvds-encoder
    then:
      properties:
        pclk-sample: false

required:
  - compatible
  - ports

additionalProperties: false
 

examples:
  - |
    lvds-encoder {
      compatible = "ti,ds90c185", "lvds-encoder";
 
      ports {
        #address-cells = <1>;
        #size-cells = <0>;
 
        port@0 {
          reg = <0>;
 
          lvds_enc_in: endpoint {
            remote-endpoint = <&display_out_rgb>;
          };
        };
 
        port@1 {
          reg = <1>;
 
          lvds_enc_out: endpoint {
            remote-endpoint = <&lvds_panel_in>;
          };
        };
      };
    };

  - |
    lvds-decoder {
      compatible = "ti,ds90cf384a", "lvds-decoder";
 
      ports {
        #address-cells = <1>;
        #size-cells = <0>;
 
        port@0 {
          reg = <0>;
 
          lvds_dec_in: endpoint {
            remote-endpoint = <&display_out_lvds>;
          };
        };
 
        port@1 {
          reg = <1>;
 
          lvds_dec_out: endpoint {
            remote-endpoint = <&rgb_panel_in>;
          };
        };
      };
    };

...