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

title: ITE it66121 HDMI bridge

maintainers:
  - Phong LE <ple@baylibre.com>
  - Neil Armstrong <neil.armstrong@linaro.org>

description: |
  The IT66121 is a high-performance and low-power single channel HDMI
  transmitter, fully compliant with HDMI 1.3a, HDCP 1.2 and backward compatible
  to DVI 1.0 specifications.

properties:
  compatible:
    enum:
      - ite,it66121
      - ite,it6610

  reg:
    maxItems: 1

  reset-gpios:
    maxItems: 1
    description: GPIO connected to active low reset

  vrf12-supply:
    description: Regulator for 1.2V analog core power.

  vcn33-supply:
    description: Regulator for 3.3V digital core power.

  vcn18-supply:
    description: Regulator for 1.8V IO core power.

  interrupts:
    maxItems: 1

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

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

    properties:
      port@0:
        $ref: /schemas/graph.yaml#/$defs/port-base
        unevaluatedProperties: false
        description: DPI input port.

        properties:
          endpoint:
            $ref: /schemas/graph.yaml#/$defs/endpoint-base
            unevaluatedProperties: false

            properties:
              bus-width:
                description:
                  Endpoint bus width.
                enum:
                  - 12  # 12 data lines connected and dual-edge mode
                  - 24  # 24 data lines connected and single-edge mode
                default: 24

      port@1:
        $ref: /schemas/graph.yaml#/properties/port
        description: HDMI Connector port.

    required:
      - port@0
      - port@1

required:
  - compatible
  - reg
  - reset-gpios
  - vrf12-supply
  - vcn33-supply
  - vcn18-supply
  - interrupts
  - ports

additionalProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/irq.h>
    #include <dt-bindings/gpio/gpio.h>
    i2c {
        #address-cells = <1>;
        #size-cells = <0>;

        it66121hdmitx: hdmitx@4c {
            compatible = "ite,it66121";
            pinctrl-names = "default";
            pinctrl-0 = <&ite_pins_default>;
            vcn33-supply = <&mt6358_vcn33_wifi_reg>;
            vcn18-supply = <&mt6358_vcn18_reg>;
            vrf12-supply = <&mt6358_vrf12_reg>;
            reset-gpios = <&pio 160 GPIO_ACTIVE_LOW>;
            interrupt-parent = <&pio>;
            interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
            reg = <0x4c>;

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

                port@0 {
                    reg = <0>;
                    it66121_in: endpoint {
                        bus-width = <12>;
                        remote-endpoint = <&display_out>;
                    };
                };

                port@1 {
                    reg = <1>;
                    hdmi_conn_out: endpoint {
                        remote-endpoint = <&hdmi_conn_in>;
                    };
                };
            };
        };
    };
