# 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
        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>;
          };
        };
      };
    };

...
