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

title: Lontium LT9611(UXC) 2 Port MIPI to HDMI Bridge

maintainers:
  - Vinod Koul <vkoul@kernel.org>

description: |
  The LT9611 and LT9611UXC are bridge devices which convert DSI to HDMI

properties:
  compatible:
    enum:
      - lontium,lt9611
      - lontium,lt9611uxc

  reg:
    maxItems: 1

  "#sound-dai-cells":
    const: 1

  interrupts:
    maxItems: 1

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

  vdd-supply:
    description: Regulator for 1.8V MIPI phy power.

  vcc-supply:
    description: Regulator for 3.3V IO power.

  ports:
    type: object

    properties:
      "#address-cells":
        const: 1

      "#size-cells":
        const: 0

      port@0:
        type: object
        description: |
          Primary MIPI port-1 for MIPI input

        properties:
          reg:
            const: 0

        patternProperties:
          "^endpoint(@[0-9])$":
            type: object
            additionalProperties: false

            properties:
              remote-endpoint:
                $ref: /schemas/types.yaml#/definitions/phandle

        required:
          - reg

      port@1:
        type: object
        description: |
          Additional MIPI port-2 for MIPI input, used in combination
          with primary MIPI port-1 to drive higher resolution displays

        properties:
          reg:
            const: 1

        patternProperties:
          "^endpoint(@[0-9])$":
            type: object
            additionalProperties: false

            properties:
              remote-endpoint:
                $ref: /schemas/types.yaml#/definitions/phandle

        required:
          - reg

      port@2:
        type: object
        description: |
          HDMI port for HDMI output

        properties:
          reg:
            const: 2

        patternProperties:
          "^endpoint(@[0-9])$":
            type: object
            additionalProperties: false

            properties:
              remote-endpoint:
                $ref: /schemas/types.yaml#/definitions/phandle

        required:
          - reg

    required:
      - "#address-cells"
      - "#size-cells"
      - port@0
      - port@2

required:
  - compatible
  - reg
  - interrupts
  - vdd-supply
  - vcc-supply
  - ports

additionalProperties: false

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

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

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

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

        vdd-supply = <&lt9611_1v8>;
        vcc-supply = <&lt9611_3v3>;

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

          port@0 {
            reg = <0>;
            lt9611_a: endpoint {
              remote-endpoint = <&dsi0_out>;
            };
          };

          port@1 {
            reg = <1>;
            lt9611_b: endpoint {
              remote-endpoint = <&dsi1_out>;
            };
          };

          port@2 {
            reg = <2>;
            lt9611_out: endpoint {
              remote-endpoint = <&hdmi_con>;
            };
          };
        };
      };
    };

...
