# 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 2 Port MIPI to HDMI Bridge

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

description: |
  The LT9611 is a bridge device which converts DSI to HDMI

properties:
  compatible:
    enum:
      - lontium,lt9611

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

...
