xref: /linux/Documentation/devicetree/bindings/display/msm/qcom,mdp5.yaml (revision a1ff5a7d78a036d6c2178ee5acd6ba4946243800)
1440b075bSKrzysztof Kozlowski# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2385c8ac7SDmitry Baryshkov%YAML 1.2
3385c8ac7SDmitry Baryshkov---
4385c8ac7SDmitry Baryshkov$id: http://devicetree.org/schemas/display/msm/qcom,mdp5.yaml#
5385c8ac7SDmitry Baryshkov$schema: http://devicetree.org/meta-schemas/core.yaml#
6385c8ac7SDmitry Baryshkov
7385c8ac7SDmitry Baryshkovtitle: Qualcomm Adreno/Snapdragon Mobile Display controller (MDP5)
8385c8ac7SDmitry Baryshkov
9385c8ac7SDmitry Baryshkovdescription:
10385c8ac7SDmitry Baryshkov  MDP5 display controller found in SoCs like MSM8974, APQ8084, MSM8916, MSM8994
11385c8ac7SDmitry Baryshkov  and MSM8996.
12385c8ac7SDmitry Baryshkov
13385c8ac7SDmitry Baryshkovmaintainers:
14385c8ac7SDmitry Baryshkov  - Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
15385c8ac7SDmitry Baryshkov  - Rob Clark <robdclark@gmail.com>
16385c8ac7SDmitry Baryshkov
17385c8ac7SDmitry Baryshkovproperties:
18385c8ac7SDmitry Baryshkov  compatible:
195c719967SDmitry Baryshkov    oneOf:
205c719967SDmitry Baryshkov      - const: qcom,mdp5
215c719967SDmitry Baryshkov        deprecated: true
225c719967SDmitry Baryshkov      - items:
235c719967SDmitry Baryshkov          - enum:
245c719967SDmitry Baryshkov              - qcom,apq8084-mdp5
25c6e79fd5SLuca Weiss              - qcom,msm8226-mdp5
265c719967SDmitry Baryshkov              - qcom,msm8916-mdp5
275c719967SDmitry Baryshkov              - qcom,msm8917-mdp5
28*c94dc5feSBarnabás Czémán              - qcom,msm8937-mdp5
295c719967SDmitry Baryshkov              - qcom,msm8953-mdp5
305c719967SDmitry Baryshkov              - qcom,msm8974-mdp5
315c719967SDmitry Baryshkov              - qcom,msm8976-mdp5
325c719967SDmitry Baryshkov              - qcom,msm8994-mdp5
335c719967SDmitry Baryshkov              - qcom,msm8996-mdp5
345c719967SDmitry Baryshkov              - qcom,sdm630-mdp5
355c719967SDmitry Baryshkov              - qcom,sdm660-mdp5
365c719967SDmitry Baryshkov          - const: qcom,mdp5
37385c8ac7SDmitry Baryshkov
38798cc8f0SDmitry Baryshkov  $nodename:
39798cc8f0SDmitry Baryshkov    pattern: '^display-controller@[0-9a-f]+$'
40798cc8f0SDmitry Baryshkov
41385c8ac7SDmitry Baryshkov  reg:
42385c8ac7SDmitry Baryshkov    maxItems: 1
43385c8ac7SDmitry Baryshkov
44385c8ac7SDmitry Baryshkov  reg-names:
45385c8ac7SDmitry Baryshkov    items:
46385c8ac7SDmitry Baryshkov      - const: mdp_phys
47385c8ac7SDmitry Baryshkov
48385c8ac7SDmitry Baryshkov  interrupts:
49385c8ac7SDmitry Baryshkov    maxItems: 1
50385c8ac7SDmitry Baryshkov
51385c8ac7SDmitry Baryshkov  clocks:
52385c8ac7SDmitry Baryshkov    minItems: 4
53385c8ac7SDmitry Baryshkov    maxItems: 7
54385c8ac7SDmitry Baryshkov
55385c8ac7SDmitry Baryshkov  clock-names:
56385c8ac7SDmitry Baryshkov    oneOf:
57385c8ac7SDmitry Baryshkov      - minItems: 4
58385c8ac7SDmitry Baryshkov        items:
59385c8ac7SDmitry Baryshkov          - const: iface
60385c8ac7SDmitry Baryshkov          - const: bus
61385c8ac7SDmitry Baryshkov          - const: core
62385c8ac7SDmitry Baryshkov          - const: vsync
63385c8ac7SDmitry Baryshkov          - const: lut
64385c8ac7SDmitry Baryshkov          - const: tbu
65385c8ac7SDmitry Baryshkov          - const: tbu_rt
66385c8ac7SDmitry Baryshkov        # MSM8996 has additional iommu clock
67385c8ac7SDmitry Baryshkov      - items:
68385c8ac7SDmitry Baryshkov          - const: iface
69385c8ac7SDmitry Baryshkov          - const: bus
70385c8ac7SDmitry Baryshkov          - const: core
71385c8ac7SDmitry Baryshkov          - const: iommu
72385c8ac7SDmitry Baryshkov          - const: vsync
73385c8ac7SDmitry Baryshkov
74385c8ac7SDmitry Baryshkov  interconnects:
75385c8ac7SDmitry Baryshkov    minItems: 1
76385c8ac7SDmitry Baryshkov    items:
77385c8ac7SDmitry Baryshkov      - description: Interconnect path from mdp0 (or a single mdp) port to the data bus
78385c8ac7SDmitry Baryshkov      - description: Interconnect path from mdp1 port to the data bus
79385c8ac7SDmitry Baryshkov      - description: Interconnect path from rotator port to the data bus
80385c8ac7SDmitry Baryshkov
81385c8ac7SDmitry Baryshkov  interconnect-names:
82385c8ac7SDmitry Baryshkov    minItems: 1
83385c8ac7SDmitry Baryshkov    items:
84385c8ac7SDmitry Baryshkov      - const: mdp0-mem
85385c8ac7SDmitry Baryshkov      - const: mdp1-mem
86385c8ac7SDmitry Baryshkov      - const: rotator-mem
87385c8ac7SDmitry Baryshkov
88385c8ac7SDmitry Baryshkov  iommus:
89385c8ac7SDmitry Baryshkov    items:
90385c8ac7SDmitry Baryshkov      - description: apps SMMU with the Stream-ID mask for Hard-Fail port0
91385c8ac7SDmitry Baryshkov
92385c8ac7SDmitry Baryshkov  power-domains:
93385c8ac7SDmitry Baryshkov    maxItems: 1
94385c8ac7SDmitry Baryshkov
95385c8ac7SDmitry Baryshkov  operating-points-v2: true
96385c8ac7SDmitry Baryshkov  opp-table:
97385c8ac7SDmitry Baryshkov    type: object
98385c8ac7SDmitry Baryshkov
99385c8ac7SDmitry Baryshkov  ports:
100385c8ac7SDmitry Baryshkov    $ref: /schemas/graph.yaml#/properties/ports
101385c8ac7SDmitry Baryshkov    description: >
102385c8ac7SDmitry Baryshkov      Contains the list of output ports from DPU device. These ports
103385c8ac7SDmitry Baryshkov      connect to interfaces that are external to the DPU hardware,
104385c8ac7SDmitry Baryshkov      such as DSI, DP etc. MDP5 devices support up to 4 ports:
105385c8ac7SDmitry Baryshkov      one or two DSI ports, HDMI and eDP.
106385c8ac7SDmitry Baryshkov
107385c8ac7SDmitry Baryshkov    patternProperties:
108385c8ac7SDmitry Baryshkov      "^port@[0-3]+$":
109385c8ac7SDmitry Baryshkov        $ref: /schemas/graph.yaml#/properties/port
110385c8ac7SDmitry Baryshkov
111385c8ac7SDmitry Baryshkov    # at least one port is required
112385c8ac7SDmitry Baryshkov    required:
113385c8ac7SDmitry Baryshkov      - port@0
114385c8ac7SDmitry Baryshkov
115385c8ac7SDmitry Baryshkovrequired:
116385c8ac7SDmitry Baryshkov  - compatible
117385c8ac7SDmitry Baryshkov  - reg
118385c8ac7SDmitry Baryshkov  - reg-names
119385c8ac7SDmitry Baryshkov  - clocks
120385c8ac7SDmitry Baryshkov  - clock-names
121385c8ac7SDmitry Baryshkov  - ports
122385c8ac7SDmitry Baryshkov
123385c8ac7SDmitry BaryshkovadditionalProperties: false
124385c8ac7SDmitry Baryshkov
125385c8ac7SDmitry Baryshkovexamples:
126385c8ac7SDmitry Baryshkov  - |
127385c8ac7SDmitry Baryshkov    #include <dt-bindings/clock/qcom,gcc-msm8916.h>
128385c8ac7SDmitry Baryshkov    #include <dt-bindings/interrupt-controller/arm-gic.h>
129385c8ac7SDmitry Baryshkov    display-controller@1a01000 {
130385c8ac7SDmitry Baryshkov        compatible = "qcom,mdp5";
131385c8ac7SDmitry Baryshkov        reg = <0x1a01000 0x90000>;
132385c8ac7SDmitry Baryshkov        reg-names = "mdp_phys";
133385c8ac7SDmitry Baryshkov
134385c8ac7SDmitry Baryshkov        interrupt-parent = <&mdss>;
135385c8ac7SDmitry Baryshkov        interrupts = <0>;
136385c8ac7SDmitry Baryshkov
137385c8ac7SDmitry Baryshkov        clocks = <&gcc GCC_MDSS_AHB_CLK>,
138385c8ac7SDmitry Baryshkov                 <&gcc GCC_MDSS_AXI_CLK>,
139385c8ac7SDmitry Baryshkov                 <&gcc GCC_MDSS_MDP_CLK>,
140385c8ac7SDmitry Baryshkov                 <&gcc GCC_MDSS_VSYNC_CLK>;
141385c8ac7SDmitry Baryshkov        clock-names = "iface",
142385c8ac7SDmitry Baryshkov                      "bus",
143385c8ac7SDmitry Baryshkov                      "core",
144385c8ac7SDmitry Baryshkov                      "vsync";
145385c8ac7SDmitry Baryshkov
146385c8ac7SDmitry Baryshkov        ports {
147385c8ac7SDmitry Baryshkov            #address-cells = <1>;
148385c8ac7SDmitry Baryshkov            #size-cells = <0>;
149385c8ac7SDmitry Baryshkov
150385c8ac7SDmitry Baryshkov            port@0 {
151385c8ac7SDmitry Baryshkov                reg = <0>;
152385c8ac7SDmitry Baryshkov                endpoint {
153385c8ac7SDmitry Baryshkov                    remote-endpoint = <&dsi0_in>;
154385c8ac7SDmitry Baryshkov                };
155385c8ac7SDmitry Baryshkov            };
156385c8ac7SDmitry Baryshkov        };
157385c8ac7SDmitry Baryshkov    };
158385c8ac7SDmitry Baryshkov...
159