# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
# Copyright 2019 Analogix Semiconductor, Inc.
%YAML 1.2
---
$id: "http://devicetree.org/schemas/display/bridge/analogix,anx7625.yaml#"
$schema: "http://devicetree.org/meta-schemas/core.yaml#"

title: Analogix ANX7625 SlimPort (4K Mobile HD Transmitter)

maintainers:
  - Xin Ji <xji@analogixsemi.com>

description: |
  The ANX7625 is an ultra-low power 4K Mobile HD Transmitter
  designed for portable devices.

properties:
  compatible:
    items:
      - const: analogix,anx7625

  reg:
    maxItems: 1

  interrupts:
    description: used for interrupt pin B8.
    maxItems: 1

  enable-gpios:
    description: used for power on chip control, POWER_EN pin D2.
    maxItems: 1

  reset-gpios:
    description: used for reset chip control, RESET_N pin B7.
    maxItems: 1

  vdd10-supply:
    description: Regulator that provides the supply 1.0V power.

  vdd18-supply:
    description: Regulator that provides the supply 1.8V power.

  vdd33-supply:
    description: Regulator that provides the supply 3.3V power.

  analogix,lane0-swing:
    $ref: /schemas/types.yaml#/definitions/uint32-array
    maxItems: 20
    description:
      an array of swing register setting for DP tx lane0 PHY, please don't
      add this property, or contact vendor.

  analogix,lane1-swing:
    $ref: /schemas/types.yaml#/definitions/uint32-array
    maxItems: 20
    description:
      an array of swing register setting for DP tx lane1 PHY, please don't
      add this property, or contact vendor.

  analogix,hdcp-support:
    type: boolean
    description: indicate the DP tx HDCP support or not.

  ports:
    type: object

    properties:
      port@0:
        type: object
        description:
          Video port for MIPI input.

        properties:
          endpoint:
            type: object
            additionalProperties: false

            # Properties described in
            # Documentation/devicetree/bindings/media/video-interfaces.txt
            properties:
              remote-endpoint: true
              bus-type: true
              data-lanes: true

            required:
              - remote-endpoint

        required:
          - endpoint


      port@1:
        type: object
        description:
          Video port for panel or connector.

        properties:
          endpoint:
            type: object
            additionalProperties: false

            # Properties described in
            # Documentation/devicetree/bindings/media/video-interfaces.txt
            properties:
              remote-endpoint: true

            required:
              - remote-endpoint

    required:
        - port@0
        - port@1

required:
  - compatible
  - reg
  - vdd10-supply
  - vdd18-supply
  - vdd33-supply
  - ports

additionalProperties: false

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

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

        encoder@58 {
            compatible = "analogix,anx7625";
            reg = <0x58>;
            enable-gpios = <&pio 45 GPIO_ACTIVE_HIGH>;
            reset-gpios = <&pio 73 GPIO_ACTIVE_HIGH>;
            vdd10-supply = <&pp1000_mipibrdg>;
            vdd18-supply = <&pp1800_mipibrdg>;
            vdd33-supply = <&pp3300_mipibrdg>;

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

                mipi2dp_bridge_in: port@0 {
                    reg = <0>;
                    anx7625_in: endpoint {
                        remote-endpoint = <&mipi_dsi>;
                        bus-type = <5>;
                        data-lanes = <0 1 2 3>;
                    };
                };

                mipi2dp_bridge_out: port@1 {
                    reg = <1>;
                    anx7625_out: endpoint {
                        remote-endpoint = <&panel_in>;
                    };
                };
            };
        };
    };
