# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/display/samsung/samsung,exynos5-dp.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Samsung Exynos5250/Exynos5420 SoC Display Port

maintainers:
  - Inki Dae <inki.dae@samsung.com>
  - Seung-Woo Kim <sw0312.kim@samsung.com>
  - Kyungmin Park <kyungmin.park@samsung.com>
  - Krzysztof Kozlowski <krzk@kernel.org>

properties:
  compatible:
    const: samsung,exynos5-dp

  reg:
    maxItems: 1

  clocks:
    maxItems: 1

  clock-names:
    items:
      - const: dp

  display-timings:
    $ref: /schemas/display/panel/display-timings.yaml#

  interrupts:
    maxItems: 1

  hpd-gpios:
    description:
      Hotplug detect GPIO.
      Indicates which GPIO should be used for hotplug detection

  phys:
    maxItems: 1

  phy-names:
    items:
      - const: dp

  power-domains:
    maxItems: 1

  interlaced:
    type: boolean
    deprecated: true
    description:
      Interlace scan mode. Progressive if defined, interlaced if not defined.

  vsync-active-high:
    type: boolean
    deprecated: true
    description:
      VSYNC polarity configuration. High if defined, low if not defined

  hsync-active-high:
    type: boolean
    deprecated: true
    description:
      HSYNC polarity configuration. High if defined, low if not defined

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

    properties:
      port:
        $ref: /schemas/graph.yaml#/properties/port
        description:
          Port node with one endpoint connected to a dp-connector node.

    required:
      - port

  samsung,hpd-gpios:
    maxItems: 1
    deprecated: true

  samsung,ycbcr-coeff:
    $ref: /schemas/types.yaml#/definitions/uint32
    deprecated: true
    description:
      Deprecated prop that can parsed from drm_display_mode.

  samsung,dynamic-range:
    $ref: /schemas/types.yaml#/definitions/uint32
    deprecated: true
    description:
      Deprecated prop that can parsed from drm_display_mode.

  samsung,color-space:
    $ref: /schemas/types.yaml#/definitions/uint32
    deprecated: true
    description:
      Deprecated prop that can parsed from drm_display_info.

  samsung,color-depth:
    $ref: /schemas/types.yaml#/definitions/uint32
    deprecated: true
    description:
      Deprecated prop that can parsed from drm_display_info.

  samsung,link-rate:
    $ref: /schemas/types.yaml#/definitions/uint32
    deprecated: true
    description:
      Deprecated prop that can reading from monitor by dpcd method.

  samsung,lane-count:
    $ref: /schemas/types.yaml#/definitions/uint32
    deprecated: true
    description:
      Deprecated prop that can reading from monitor by dpcd method.

required:
  - compatible
  - reg
  - clocks
  - clock-names
  - interrupts
  - phys
  - phy-names

additionalProperties: false

examples:
  - |
    #include <dt-bindings/clock/exynos5250.h>
    #include <dt-bindings/gpio/gpio.h>
    #include <dt-bindings/interrupt-controller/arm-gic.h>

    dp-controller@145b0000 {
        compatible = "samsung,exynos5-dp";
        reg = <0x145b0000 0x1000>;
        clocks = <&clock CLK_DP>;
        clock-names = "dp";
        interrupts = <10 3>;
        interrupt-parent = <&combiner>;
        phys = <&dp_phy>;
        phy-names = "dp";
        pinctrl-0 = <&dp_hpd>;
        pinctrl-names = "default";
        power-domains = <&pd_disp1>;

        samsung,color-space = <0>;
        samsung,color-depth = <1>;
        samsung,link-rate = <0x0a>;
        samsung,lane-count = <2>;
        hpd-gpios = <&gpx0 7 GPIO_ACTIVE_HIGH>;

        ports {
            port {
                dp_out: endpoint {
                    remote-endpoint = <&bridge_in>;
                };
            };
        };
    };
