xref: /openbmc/linux/Documentation/devicetree/bindings/display/msm/qcom,mdp5.yaml (revision c900529f3d9161bfde5cca0754f83b4d3c3e0220)
1*440b075bSKrzysztof 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
285c719967SDmitry Baryshkov              - qcom,msm8953-mdp5
295c719967SDmitry Baryshkov              - qcom,msm8974-mdp5
305c719967SDmitry Baryshkov              - qcom,msm8976-mdp5
315c719967SDmitry Baryshkov              - qcom,msm8994-mdp5
325c719967SDmitry Baryshkov              - qcom,msm8996-mdp5
335c719967SDmitry Baryshkov              - qcom,sdm630-mdp5
345c719967SDmitry Baryshkov              - qcom,sdm660-mdp5
355c719967SDmitry Baryshkov          - const: qcom,mdp5
36385c8ac7SDmitry Baryshkov
37798cc8f0SDmitry Baryshkov  $nodename:
38798cc8f0SDmitry Baryshkov    pattern: '^display-controller@[0-9a-f]+$'
39798cc8f0SDmitry Baryshkov
40385c8ac7SDmitry Baryshkov  reg:
41385c8ac7SDmitry Baryshkov    maxItems: 1
42385c8ac7SDmitry Baryshkov
43385c8ac7SDmitry Baryshkov  reg-names:
44385c8ac7SDmitry Baryshkov    items:
45385c8ac7SDmitry Baryshkov      - const: mdp_phys
46385c8ac7SDmitry Baryshkov
47385c8ac7SDmitry Baryshkov  interrupts:
48385c8ac7SDmitry Baryshkov    maxItems: 1
49385c8ac7SDmitry Baryshkov
50385c8ac7SDmitry Baryshkov  clocks:
51385c8ac7SDmitry Baryshkov    minItems: 4
52385c8ac7SDmitry Baryshkov    maxItems: 7
53385c8ac7SDmitry Baryshkov
54385c8ac7SDmitry Baryshkov  clock-names:
55385c8ac7SDmitry Baryshkov    oneOf:
56385c8ac7SDmitry Baryshkov      - minItems: 4
57385c8ac7SDmitry Baryshkov        items:
58385c8ac7SDmitry Baryshkov          - const: iface
59385c8ac7SDmitry Baryshkov          - const: bus
60385c8ac7SDmitry Baryshkov          - const: core
61385c8ac7SDmitry Baryshkov          - const: vsync
62385c8ac7SDmitry Baryshkov          - const: lut
63385c8ac7SDmitry Baryshkov          - const: tbu
64385c8ac7SDmitry Baryshkov          - const: tbu_rt
65385c8ac7SDmitry Baryshkov        # MSM8996 has additional iommu clock
66385c8ac7SDmitry Baryshkov      - items:
67385c8ac7SDmitry Baryshkov          - const: iface
68385c8ac7SDmitry Baryshkov          - const: bus
69385c8ac7SDmitry Baryshkov          - const: core
70385c8ac7SDmitry Baryshkov          - const: iommu
71385c8ac7SDmitry Baryshkov          - const: vsync
72385c8ac7SDmitry Baryshkov
73385c8ac7SDmitry Baryshkov  interconnects:
74385c8ac7SDmitry Baryshkov    minItems: 1
75385c8ac7SDmitry Baryshkov    items:
76385c8ac7SDmitry Baryshkov      - description: Interconnect path from mdp0 (or a single mdp) port to the data bus
77385c8ac7SDmitry Baryshkov      - description: Interconnect path from mdp1 port to the data bus
78385c8ac7SDmitry Baryshkov      - description: Interconnect path from rotator port to the data bus
79385c8ac7SDmitry Baryshkov
80385c8ac7SDmitry Baryshkov  interconnect-names:
81385c8ac7SDmitry Baryshkov    minItems: 1
82385c8ac7SDmitry Baryshkov    items:
83385c8ac7SDmitry Baryshkov      - const: mdp0-mem
84385c8ac7SDmitry Baryshkov      - const: mdp1-mem
85385c8ac7SDmitry Baryshkov      - const: rotator-mem
86385c8ac7SDmitry Baryshkov
87385c8ac7SDmitry Baryshkov  iommus:
88385c8ac7SDmitry Baryshkov    items:
89385c8ac7SDmitry Baryshkov      - description: apps SMMU with the Stream-ID mask for Hard-Fail port0
90385c8ac7SDmitry Baryshkov
91385c8ac7SDmitry Baryshkov  power-domains:
92385c8ac7SDmitry Baryshkov    maxItems: 1
93385c8ac7SDmitry Baryshkov
94385c8ac7SDmitry Baryshkov  operating-points-v2: true
95385c8ac7SDmitry Baryshkov  opp-table:
96385c8ac7SDmitry Baryshkov    type: object
97385c8ac7SDmitry Baryshkov
98385c8ac7SDmitry Baryshkov  ports:
99385c8ac7SDmitry Baryshkov    $ref: /schemas/graph.yaml#/properties/ports
100385c8ac7SDmitry Baryshkov    description: >
101385c8ac7SDmitry Baryshkov      Contains the list of output ports from DPU device. These ports
102385c8ac7SDmitry Baryshkov      connect to interfaces that are external to the DPU hardware,
103385c8ac7SDmitry Baryshkov      such as DSI, DP etc. MDP5 devices support up to 4 ports:
104385c8ac7SDmitry Baryshkov      one or two DSI ports, HDMI and eDP.
105385c8ac7SDmitry Baryshkov
106385c8ac7SDmitry Baryshkov    patternProperties:
107385c8ac7SDmitry Baryshkov      "^port@[0-3]+$":
108385c8ac7SDmitry Baryshkov        $ref: /schemas/graph.yaml#/properties/port
109385c8ac7SDmitry Baryshkov
110385c8ac7SDmitry Baryshkov    # at least one port is required
111385c8ac7SDmitry Baryshkov    required:
112385c8ac7SDmitry Baryshkov      - port@0
113385c8ac7SDmitry Baryshkov
114385c8ac7SDmitry Baryshkovrequired:
115385c8ac7SDmitry Baryshkov  - compatible
116385c8ac7SDmitry Baryshkov  - reg
117385c8ac7SDmitry Baryshkov  - reg-names
118385c8ac7SDmitry Baryshkov  - clocks
119385c8ac7SDmitry Baryshkov  - clock-names
120385c8ac7SDmitry Baryshkov  - ports
121385c8ac7SDmitry Baryshkov
122385c8ac7SDmitry BaryshkovadditionalProperties: false
123385c8ac7SDmitry Baryshkov
124385c8ac7SDmitry Baryshkovexamples:
125385c8ac7SDmitry Baryshkov  - |
126385c8ac7SDmitry Baryshkov    #include <dt-bindings/clock/qcom,gcc-msm8916.h>
127385c8ac7SDmitry Baryshkov    #include <dt-bindings/interrupt-controller/arm-gic.h>
128385c8ac7SDmitry Baryshkov    display-controller@1a01000 {
129385c8ac7SDmitry Baryshkov        compatible = "qcom,mdp5";
130385c8ac7SDmitry Baryshkov        reg = <0x1a01000 0x90000>;
131385c8ac7SDmitry Baryshkov        reg-names = "mdp_phys";
132385c8ac7SDmitry Baryshkov
133385c8ac7SDmitry Baryshkov        interrupt-parent = <&mdss>;
134385c8ac7SDmitry Baryshkov        interrupts = <0>;
135385c8ac7SDmitry Baryshkov
136385c8ac7SDmitry Baryshkov        clocks = <&gcc GCC_MDSS_AHB_CLK>,
137385c8ac7SDmitry Baryshkov                 <&gcc GCC_MDSS_AXI_CLK>,
138385c8ac7SDmitry Baryshkov                 <&gcc GCC_MDSS_MDP_CLK>,
139385c8ac7SDmitry Baryshkov                 <&gcc GCC_MDSS_VSYNC_CLK>;
140385c8ac7SDmitry Baryshkov        clock-names = "iface",
141385c8ac7SDmitry Baryshkov                      "bus",
142385c8ac7SDmitry Baryshkov                      "core",
143385c8ac7SDmitry Baryshkov                      "vsync";
144385c8ac7SDmitry Baryshkov
145385c8ac7SDmitry Baryshkov        ports {
146385c8ac7SDmitry Baryshkov            #address-cells = <1>;
147385c8ac7SDmitry Baryshkov            #size-cells = <0>;
148385c8ac7SDmitry Baryshkov
149385c8ac7SDmitry Baryshkov            port@0 {
150385c8ac7SDmitry Baryshkov                reg = <0>;
151385c8ac7SDmitry Baryshkov                endpoint {
152385c8ac7SDmitry Baryshkov                    remote-endpoint = <&dsi0_in>;
153385c8ac7SDmitry Baryshkov                };
154385c8ac7SDmitry Baryshkov            };
155385c8ac7SDmitry Baryshkov        };
156385c8ac7SDmitry Baryshkov    };
157385c8ac7SDmitry Baryshkov...
158