# 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).

  vcc-supply:
    description: A 1.8V power supply (see regulator/regulator.yaml).

  interrupts:
    maxItems: 1

  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:
        description: Video port for LVDS Channel-A output (panel or bridge).
        $ref: '#/$defs/lvds-port'

      port@3:
        description: Video port for LVDS Channel-B output (panel or bridge).
        $ref: '#/$defs/lvds-port'

    required:
      - port@0
      - port@2

required:
  - compatible
  - reg
  - ports

$defs:
  lvds-port:
    $ref: /schemas/graph.yaml#/$defs/port-base
    unevaluatedProperties: false

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

        properties:
          ti,lvds-termination-ohms:
            description: The value of near end differential termination in ohms.
            enum: [100, 200]
            default: 200

          ti,lvds-vod-swing-clock-microvolt:
            description: LVDS diferential output voltage <min max> for clock
              lanes in microvolts.
            maxItems: 2

          ti,lvds-vod-swing-data-microvolt:
            description: LVDS diferential output voltage <min max> for data
              lanes in microvolts.
            maxItems: 2

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>;
            vcc-supply = <&reg_sn65dsi83_1v8>;

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