# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/display/bridge/ti,sn65dsi83.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: SN65DSI83 and SN65DSI84 DSI to LVDS bridge chip

maintainers:
  - Marek Vasut <marex@denx.de>

description: |
  Texas Instruments SN65DSI83 1x Single-link MIPI DSI
  to 1x Single-link LVDS
  https://www.ti.com/lit/gpn/sn65dsi83
  Texas Instruments SN65DSI84 1x Single-link MIPI DSI
  to 1x Dual-link or 2x Single-link LVDS
  https://www.ti.com/lit/gpn/sn65dsi84

properties:
  compatible:
    enum:
      - ti,sn65dsi83
      - ti,sn65dsi84

  reg:
    enum:
      - 0x2c
      - 0x2d

  enable-gpios:
    maxItems: 1
    description: GPIO specifier for bridge_en pin (active high).

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

    properties:
      port@0:
        $ref: /schemas/graph.yaml#/$defs/port-base
        unevaluatedProperties: false
        description: Video port for MIPI DSI Channel-A input

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

            properties:
              data-lanes:
                description: array of physical DSI data lane indexes.
                minItems: 1
                items:
                  - const: 1
                  - const: 2
                  - const: 3
                  - const: 4

      port@1:
        $ref: /schemas/graph.yaml#/$defs/port-base
        unevaluatedProperties: false
        description: Video port for MIPI DSI Channel-B input

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

            properties:
              data-lanes:
                description: array of physical DSI data lane indexes.
                minItems: 1
                items:
                  - const: 1
                  - const: 2
                  - const: 3
                  - const: 4

      port@2:
        $ref: /schemas/graph.yaml#/properties/port
        description: Video port for LVDS Channel-A output (panel or bridge).

      port@3:
        $ref: /schemas/graph.yaml#/properties/port
        description: Video port for LVDS Channel-B output (panel or bridge).

    required:
      - port@0
      - port@2

required:
  - compatible
  - reg
  - enable-gpios
  - ports

allOf:
  - if:
      properties:
        compatible:
          contains:
            const: ti,sn65dsi83
    then:
      properties:
        ports:
          properties:
            port@1: false
            port@3: false

  - if:
      properties:
        compatible:
          contains:
            const: ti,sn65dsi84
    then:
      properties:
        ports:
          properties:
            port@1: false

additionalProperties: false

examples:
  - |
    #include <dt-bindings/gpio/gpio.h>

    i2c {
        #address-cells = <1>;
        #size-cells = <0>;

        bridge@2d {
            compatible = "ti,sn65dsi83";
            reg = <0x2d>;

            enable-gpios = <&gpio2 1 GPIO_ACTIVE_HIGH>;

            ports {
                #address-cells = <1>;
                #size-cells = <0>;

                port@0 {
                    reg = <0>;

                    endpoint {
                        remote-endpoint = <&dsi0_out>;
                        data-lanes = <1 2 3 4>;
                    };
                };

                port@2 {
                    reg = <2>;

                    endpoint {
                        remote-endpoint = <&panel_in_lvds>;
                    };
                };
            };
        };
    };
