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

title: MSM Display Port Controller

maintainers:
  - Kuogee Hsieh <quic_khsieh@quicinc.com>
  - Abhinav Kumar <quic_abhinavk@quicinc.com>

description: |
  Device tree bindings for DisplayPort host controller for MSM targets
  that are compatible with VESA DisplayPort interface specification.

properties:
  compatible:
    oneOf:
      - enum:
          - qcom,glymur-dp
          - qcom,sa8775p-dp
          - qcom,sc7180-dp
          - qcom,sc7280-dp
          - qcom,sc7280-edp
          - qcom,sc8180x-dp
          - qcom,sc8180x-edp
          - qcom,sc8280xp-dp
          - qcom,sc8280xp-edp
          - qcom,sdm845-dp
          - qcom,sm8350-dp
          - qcom,sm8650-dp
          - qcom,x1e80100-dp

      - items:
          - enum:
              - qcom,qcs8300-dp
          - const: qcom,sa8775p-dp

      - items:
          - enum:
              - qcom,sm6350-dp
          - const: qcom,sc7180-dp

      # deprecated entry for compatibility with old DT
      - items:
          - enum:
              - qcom,sm6350-dp
          - const: qcom,sm8350-dp
        deprecated: true

      - items:
          - enum:
              - qcom,sar2130p-dp
              - qcom,sm7150-dp
              - qcom,sm8150-dp
              - qcom,sm8250-dp
              - qcom,sm8450-dp
              - qcom,sm8550-dp
          - const: qcom,sm8350-dp

      - items:
          - enum:
              - qcom,sm6150-dp
          - const: qcom,sm8150-dp
          - const: qcom,sm8350-dp

      - items:
          - enum:
              - qcom,sm8750-dp
          - const: qcom,sm8650-dp

  reg:
    minItems: 4
    items:
      - description: ahb register block
      - description: aux register block
      - description: link register block
      - description: p0 register block
      - description: p1 register block
      - description: p2 register block
      - description: p3 register block
      - description: mst2link register block
      - description: mst3link register block

  interrupts:
    maxItems: 1

  clocks:
    minItems: 5
    items:
      - description: AHB clock to enable register access
      - description: Display Port AUX clock
      - description: Display Port Link clock
      - description: Link interface clock between DP and PHY
      - description: Display Port stream 0 Pixel clock
      - description: Display Port stream 1 Pixel clock
      - description: Display Port stream 2 Pixel clock
      - description: Display Port stream 3 Pixel clock

  clock-names:
    minItems: 5
    items:
      - const: core_iface
      - const: core_aux
      - const: ctrl_link
      - const: ctrl_link_iface
      - const: stream_pixel
      - const: stream_1_pixel
      - const: stream_2_pixel
      - const: stream_3_pixel

  phys:
    maxItems: 1

  phy-names:
    items:
      - const: dp

  operating-points-v2: true

  opp-table:
    type: object

  power-domains:
    maxItems: 1

  aux-bus:
    $ref: /schemas/display/dp-aux-bus.yaml#

  data-lanes:
    $ref: /schemas/types.yaml#/definitions/uint32-array
    deprecated: true
    minItems: 1
    maxItems: 4
    items:
      maximum: 3

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

  vdda-0p9-supply:
    deprecated: true
  vdda-1p2-supply:
    deprecated: true

  ports:
    $ref: /schemas/graph.yaml#/properties/ports
    properties:
      port@0:
        $ref: /schemas/graph.yaml#/properties/port
        description: Input endpoint of the controller

      port@1:
        $ref: /schemas/graph.yaml#/$defs/port-base
        unevaluatedProperties: false
        description: Output endpoint of the controller
        properties:
          endpoint:
            $ref: /schemas/media/video-interfaces.yaml#
            unevaluatedProperties: false
            properties:
              data-lanes:
                minItems: 1
                maxItems: 4
                items:
                  enum: [ 0, 1, 2, 3 ]

              link-frequencies:
                minItems: 1
                maxItems: 4
                items:
                  enum: [ 1620000000, 2700000000, 5400000000, 8100000000 ]

    required:
      - port@0
      - port@1

required:
  - compatible
  - reg
  - interrupts
  - clocks
  - clock-names
  - phys
  - phy-names
  - power-domains
  - ports

allOf:
  # AUX BUS does not exist on DP controllers
  # Audio output also is present only on DP output
  - if:
      properties:
        compatible:
          contains:
            enum:
              - qcom,sc7280-edp
              - qcom,sc8180x-edp
              - qcom,sc8280xp-edp
    then:
      properties:
        "#sound-dai-cells": false
    else:
      if:
        properties:
          compatible:
            contains:
              enum:
                - qcom,glymur-dp
                - qcom,sa8775p-dp
                - qcom,x1e80100-dp
      then:
        $ref: /schemas/sound/dai-common.yaml#
        oneOf:
          - required:
              - aux-bus
          - required:
              - "#sound-dai-cells"
      else:
        properties:
          aux-bus: false
        required:
          - "#sound-dai-cells"

  - if:
      properties:
        compatible:
          contains:
            enum:
              # these platforms support SST only
              - qcom,sc7180-dp
              - qcom,sc7280-dp
              - qcom,sc7280-edp
              - qcom,sc8180x-edp
              - qcom,sc8280xp-edp
    then:
      properties:
        reg:
          minItems: 5
          maxItems: 5
        clocks:
          minItems: 5
          maxItems: 5
        clocks-names:
          minItems: 5
          maxItems: 5

  - if:
      properties:
        compatible:
          contains:
            enum:
              # these platforms support 2 streams MST on some interfaces,
              # others are SST only
              - qcom,glymur-dp
              - qcom,sc8280xp-dp
              - qcom,x1e80100-dp
    then:
      properties:
        reg:
          minItems: 5
          maxItems: 5
        clocks:
          minItems: 5
          maxItems: 6
        clocks-names:
          minItems: 5
          maxItems: 6

  - if:
      properties:
        compatible:
          contains:
            # 2 streams MST
            enum:
              - qcom,sc8180x-dp
              - qcom,sdm845-dp
              - qcom,sm8350-dp
              - qcom,sm8650-dp
    then:
      properties:
        reg:
          minItems: 5
          maxItems: 5
        clocks:
          minItems: 6
          maxItems: 6
        clocks-names:
          minItems: 6
          maxItems: 6

  - if:
      properties:
        compatible:
          contains:
            enum:
              # these platforms support 4 stream MST on first DP,
              # 2 streams MST on the second one.
              - qcom,sa8775p-dp
    then:
      properties:
        reg:
          minItems: 9
          maxItems: 9
        clocks:
          minItems: 6
          maxItems: 8
        clocks-names:
          minItems: 6
          maxItems: 8

unevaluatedProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/arm-gic.h>
    #include <dt-bindings/clock/qcom,dispcc-sc7180.h>
    #include <dt-bindings/power/qcom-rpmpd.h>

    displayport-controller@ae90000 {
        compatible = "qcom,sc7180-dp";
        reg = <0xae90000 0x200>,
              <0xae90200 0x200>,
              <0xae90400 0xc00>,
              <0xae91000 0x400>,
              <0xae91400 0x400>;
        interrupt-parent = <&mdss>;
        interrupts = <12>;
        clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>,
                 <&dispcc DISP_CC_MDSS_DP_AUX_CLK>,
                 <&dispcc DISP_CC_MDSS_DP_LINK_CLK>,
                 <&dispcc DISP_CC_MDSS_DP_LINK_INTF_CLK>,
                 <&dispcc DISP_CC_MDSS_DP_PIXEL_CLK>;
        clock-names = "core_iface", "core_aux",
                      "ctrl_link",
                      "ctrl_link_iface", "stream_pixel";

        assigned-clocks = <&dispcc DISP_CC_MDSS_DP_LINK_CLK_SRC>,
                          <&dispcc DISP_CC_MDSS_DP_PIXEL_CLK_SRC>;

        assigned-clock-parents = <&dp_phy 0>, <&dp_phy 1>;

        phys = <&dp_phy>;
        phy-names = "dp";

        #sound-dai-cells = <0>;

        power-domains = <&rpmhpd SC7180_CX>;

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

            port@0 {
                reg = <0>;
                endpoint {
                    remote-endpoint = <&dpu_intf0_out>;
                };
            };

            port@1 {
                reg = <1>;
                endpoint {
                    remote-endpoint = <&typec>;
                    data-lanes = <0 1>;
                    link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
                };
            };
        };
    };
...
