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

title: Lontium LT9211 DSI/LVDS/DPI to DSI/LVDS/DPI bridge.

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

description: |
  The LT9211 are bridge devices which convert Single/Dual-Link DSI/LVDS
  or Single DPI to Single/Dual-Link DSI/LVDS or Single DPI.

properties:
  compatible:
    enum:
      - lontium,lt9211

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  reset-gpios:
    maxItems: 1
    description: GPIO connected to active high RESET pin.

  vccio-supply:
    description: Regulator for 1.8V IO power.

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

    properties:
      port@0:
        $ref: /schemas/graph.yaml#/properties/port
        description:
          Primary MIPI DSI port-1 for MIPI input or
          LVDS port-1 for LVDS input or DPI input.

      port@1:
        $ref: /schemas/graph.yaml#/properties/port
        description:
          Additional MIPI port-2 for MIPI input or LVDS port-2
          for LVDS input. Used in combination with primary
          port-1 to drive higher resolution displays

      port@2:
        $ref: /schemas/graph.yaml#/properties/port
        description:
          Primary MIPI DSI port-1 for MIPI output or
          LVDS port-1 for LVDS output or DPI output.

      port@3:
        $ref: /schemas/graph.yaml#/properties/port
        description:
          Additional MIPI port-2 for MIPI output or LVDS port-2
          for LVDS output. Used in combination with primary
          port-1 to drive higher resolution displays.

    required:
      - port@0
      - port@2

required:
  - compatible
  - reg
  - vccio-supply
  - ports

additionalProperties: false

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

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

      hdmi-bridge@3b {
        compatible = "lontium,lt9211";
        reg = <0x3b>;

        reset-gpios = <&tlmm 128 GPIO_ACTIVE_HIGH>;
        interrupts-extended = <&tlmm 84 IRQ_TYPE_EDGE_FALLING>;

        vccio-supply = <&lt9211_1v8>;

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

          port@0 {
            reg = <0>;

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

          port@2 {
            reg = <2>;

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

...
