summaryrefslogtreecommitdiff
path: root/Documentation/devicetree/bindings/display/msm/qcom,mdp5.yaml
blob: 91c774f106ceb117fc763392fd653263be86551d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/display/msm/qcom,mdp5.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Qualcomm Adreno/Snapdragon Mobile Display controller (MDP5)

description:
  MDP5 display controller found in SoCs like MSM8974, APQ8084, MSM8916, MSM8994
  and MSM8996.

maintainers:
  - Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
  - Rob Clark <robdclark@gmail.com>

properties:
  compatible:
    oneOf:
      - const: qcom,mdp5
        deprecated: true
      - items:
          - enum:
              - qcom,apq8084-mdp5
              - qcom,msm8226-mdp5
              - qcom,msm8916-mdp5
              - qcom,msm8917-mdp5
              - qcom,msm8953-mdp5
              - qcom,msm8974-mdp5
              - qcom,msm8976-mdp5
              - qcom,msm8994-mdp5
              - qcom,msm8996-mdp5
              - qcom,sdm630-mdp5
              - qcom,sdm660-mdp5
          - const: qcom,mdp5

  $nodename:
    pattern: '^display-controller@[0-9a-f]+$'

  reg:
    maxItems: 1

  reg-names:
    items:
      - const: mdp_phys

  interrupts:
    maxItems: 1

  clocks:
    minItems: 4
    maxItems: 7

  clock-names:
    oneOf:
      - minItems: 4
        items:
          - const: iface
          - const: bus
          - const: core
          - const: vsync
          - const: lut
          - const: tbu
          - const: tbu_rt
        # MSM8996 has additional iommu clock
      - items:
          - const: iface
          - const: bus
          - const: core
          - const: iommu
          - const: vsync

  interconnects:
    minItems: 1
    items:
      - description: Interconnect path from mdp0 (or a single mdp) port to the data bus
      - description: Interconnect path from mdp1 port to the data bus
      - description: Interconnect path from rotator port to the data bus

  interconnect-names:
    minItems: 1
    items:
      - const: mdp0-mem
      - const: mdp1-mem
      - const: rotator-mem

  iommus:
    items:
      - description: apps SMMU with the Stream-ID mask for Hard-Fail port0

  power-domains:
    maxItems: 1

  operating-points-v2: true
  opp-table:
    type: object

  ports:
    $ref: /schemas/graph.yaml#/properties/ports
    description: >
      Contains the list of output ports from DPU device. These ports
      connect to interfaces that are external to the DPU hardware,
      such as DSI, DP etc. MDP5 devices support up to 4 ports:
      one or two DSI ports, HDMI and eDP.

    patternProperties:
      "^port@[0-3]+$":
        $ref: /schemas/graph.yaml#/properties/port

    # at least one port is required
    required:
      - port@0

required:
  - compatible
  - reg
  - reg-names
  - clocks
  - clock-names
  - ports

additionalProperties: false

examples:
  - |
    #include <dt-bindings/clock/qcom,gcc-msm8916.h>
    #include <dt-bindings/interrupt-controller/arm-gic.h>
    display-controller@1a01000 {
        compatible = "qcom,mdp5";
        reg = <0x1a01000 0x90000>;
        reg-names = "mdp_phys";

        interrupt-parent = <&mdss>;
        interrupts = <0>;

        clocks = <&gcc GCC_MDSS_AHB_CLK>,
                 <&gcc GCC_MDSS_AXI_CLK>,
                 <&gcc GCC_MDSS_MDP_CLK>,
                 <&gcc GCC_MDSS_VSYNC_CLK>;
        clock-names = "iface",
                      "bus",
                      "core",
                      "vsync";

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

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