xref: /freebsd/sys/contrib/device-tree/Bindings/display/msm/dpu-msm8998.yaml (revision 7ef62cebc2f965b0f640263e179276928885e33d)
1c9ccf3a3SEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0-only or BSD-2-Clause
2c9ccf3a3SEmmanuel Vadot%YAML 1.2
3c9ccf3a3SEmmanuel Vadot---
4c9ccf3a3SEmmanuel Vadot$id: http://devicetree.org/schemas/display/msm/dpu-msm8998.yaml#
5c9ccf3a3SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6c9ccf3a3SEmmanuel Vadot
7c9ccf3a3SEmmanuel Vadottitle: Qualcomm Display DPU dt properties for MSM8998 target
8c9ccf3a3SEmmanuel Vadot
9c9ccf3a3SEmmanuel Vadotmaintainers:
10c9ccf3a3SEmmanuel Vadot  - AngeloGioacchino Del Regno <angelogioacchino.delregno@somainline.org>
11c9ccf3a3SEmmanuel Vadot
12c9ccf3a3SEmmanuel Vadotdescription: |
13c9ccf3a3SEmmanuel Vadot  Device tree bindings for MSM Mobile Display Subsystem(MDSS) that encapsulates
14c9ccf3a3SEmmanuel Vadot  sub-blocks like DPU display controller, DSI and DP interfaces etc. Device tree
15c9ccf3a3SEmmanuel Vadot  bindings of MDSS and DPU are mentioned for MSM8998 target.
16c9ccf3a3SEmmanuel Vadot
17c9ccf3a3SEmmanuel Vadotproperties:
18c9ccf3a3SEmmanuel Vadot  compatible:
19c9ccf3a3SEmmanuel Vadot    items:
20c9ccf3a3SEmmanuel Vadot      - const: qcom,msm8998-mdss
21c9ccf3a3SEmmanuel Vadot
22c9ccf3a3SEmmanuel Vadot  reg:
23c9ccf3a3SEmmanuel Vadot    maxItems: 1
24c9ccf3a3SEmmanuel Vadot
25c9ccf3a3SEmmanuel Vadot  reg-names:
26c9ccf3a3SEmmanuel Vadot    const: mdss
27c9ccf3a3SEmmanuel Vadot
28c9ccf3a3SEmmanuel Vadot  power-domains:
29c9ccf3a3SEmmanuel Vadot    maxItems: 1
30c9ccf3a3SEmmanuel Vadot
31c9ccf3a3SEmmanuel Vadot  clocks:
32c9ccf3a3SEmmanuel Vadot    items:
33c9ccf3a3SEmmanuel Vadot      - description: Display AHB clock
34c9ccf3a3SEmmanuel Vadot      - description: Display AXI clock
35c9ccf3a3SEmmanuel Vadot      - description: Display core clock
36c9ccf3a3SEmmanuel Vadot
37c9ccf3a3SEmmanuel Vadot  clock-names:
38c9ccf3a3SEmmanuel Vadot    items:
39c9ccf3a3SEmmanuel Vadot      - const: iface
40c9ccf3a3SEmmanuel Vadot      - const: bus
41c9ccf3a3SEmmanuel Vadot      - const: core
42c9ccf3a3SEmmanuel Vadot
43c9ccf3a3SEmmanuel Vadot  interrupts:
44c9ccf3a3SEmmanuel Vadot    maxItems: 1
45c9ccf3a3SEmmanuel Vadot
46c9ccf3a3SEmmanuel Vadot  interrupt-controller: true
47c9ccf3a3SEmmanuel Vadot
48c9ccf3a3SEmmanuel Vadot  "#address-cells": true
49c9ccf3a3SEmmanuel Vadot
50c9ccf3a3SEmmanuel Vadot  "#size-cells": true
51c9ccf3a3SEmmanuel Vadot
52c9ccf3a3SEmmanuel Vadot  "#interrupt-cells":
53c9ccf3a3SEmmanuel Vadot    const: 1
54c9ccf3a3SEmmanuel Vadot
55c9ccf3a3SEmmanuel Vadot  iommus:
56c9ccf3a3SEmmanuel Vadot    items:
57c9ccf3a3SEmmanuel Vadot      - description: Phandle to apps_smmu node with SID mask for Hard-Fail port0
58c9ccf3a3SEmmanuel Vadot
59c9ccf3a3SEmmanuel Vadot  ranges: true
60c9ccf3a3SEmmanuel Vadot
61c9ccf3a3SEmmanuel VadotpatternProperties:
62c9ccf3a3SEmmanuel Vadot  "^display-controller@[0-9a-f]+$":
63c9ccf3a3SEmmanuel Vadot    type: object
64c9ccf3a3SEmmanuel Vadot    description: Node containing the properties of DPU.
65*7ef62cebSEmmanuel Vadot    additionalProperties: false
66c9ccf3a3SEmmanuel Vadot
67c9ccf3a3SEmmanuel Vadot    properties:
68c9ccf3a3SEmmanuel Vadot      compatible:
69c9ccf3a3SEmmanuel Vadot        items:
70c9ccf3a3SEmmanuel Vadot          - const: qcom,msm8998-dpu
71c9ccf3a3SEmmanuel Vadot
72c9ccf3a3SEmmanuel Vadot      reg:
73c9ccf3a3SEmmanuel Vadot        items:
74c9ccf3a3SEmmanuel Vadot          - description: Address offset and size for mdp register set
75c9ccf3a3SEmmanuel Vadot          - description: Address offset and size for regdma register set
76c9ccf3a3SEmmanuel Vadot          - description: Address offset and size for vbif register set
77c9ccf3a3SEmmanuel Vadot          - description: Address offset and size for non-realtime vbif register set
78c9ccf3a3SEmmanuel Vadot
79c9ccf3a3SEmmanuel Vadot      reg-names:
80c9ccf3a3SEmmanuel Vadot        items:
81c9ccf3a3SEmmanuel Vadot          - const: mdp
82c9ccf3a3SEmmanuel Vadot          - const: regdma
83c9ccf3a3SEmmanuel Vadot          - const: vbif
84c9ccf3a3SEmmanuel Vadot          - const: vbif_nrt
85c9ccf3a3SEmmanuel Vadot
86c9ccf3a3SEmmanuel Vadot      clocks:
87c9ccf3a3SEmmanuel Vadot        items:
88c9ccf3a3SEmmanuel Vadot          - description: Display ahb clock
89c9ccf3a3SEmmanuel Vadot          - description: Display axi clock
90c9ccf3a3SEmmanuel Vadot          - description: Display mem-noc clock
91c9ccf3a3SEmmanuel Vadot          - description: Display core clock
92c9ccf3a3SEmmanuel Vadot          - description: Display vsync clock
93c9ccf3a3SEmmanuel Vadot
94c9ccf3a3SEmmanuel Vadot      clock-names:
95c9ccf3a3SEmmanuel Vadot        items:
96c9ccf3a3SEmmanuel Vadot          - const: iface
97c9ccf3a3SEmmanuel Vadot          - const: bus
98c9ccf3a3SEmmanuel Vadot          - const: mnoc
99c9ccf3a3SEmmanuel Vadot          - const: core
100c9ccf3a3SEmmanuel Vadot          - const: vsync
101c9ccf3a3SEmmanuel Vadot
102c9ccf3a3SEmmanuel Vadot      interrupts:
103c9ccf3a3SEmmanuel Vadot        maxItems: 1
104c9ccf3a3SEmmanuel Vadot
105c9ccf3a3SEmmanuel Vadot      power-domains:
106c9ccf3a3SEmmanuel Vadot        maxItems: 1
107c9ccf3a3SEmmanuel Vadot
108c9ccf3a3SEmmanuel Vadot      operating-points-v2: true
109*7ef62cebSEmmanuel Vadot      opp-table:
110*7ef62cebSEmmanuel Vadot        type: object
111*7ef62cebSEmmanuel Vadot
112c9ccf3a3SEmmanuel Vadot      ports:
113c9ccf3a3SEmmanuel Vadot        $ref: /schemas/graph.yaml#/properties/ports
114c9ccf3a3SEmmanuel Vadot        description: |
115c9ccf3a3SEmmanuel Vadot          Contains the list of output ports from DPU device. These ports
116c9ccf3a3SEmmanuel Vadot          connect to interfaces that are external to the DPU hardware,
117c9ccf3a3SEmmanuel Vadot          such as DSI, DP etc. Each output port contains an endpoint that
118c9ccf3a3SEmmanuel Vadot          describes how it is connected to an external interface.
119c9ccf3a3SEmmanuel Vadot
120c9ccf3a3SEmmanuel Vadot        properties:
121c9ccf3a3SEmmanuel Vadot          port@0:
122c9ccf3a3SEmmanuel Vadot            $ref: /schemas/graph.yaml#/properties/port
123c9ccf3a3SEmmanuel Vadot            description: DPU_INTF1 (DSI1)
124c9ccf3a3SEmmanuel Vadot
125c9ccf3a3SEmmanuel Vadot          port@1:
126c9ccf3a3SEmmanuel Vadot            $ref: /schemas/graph.yaml#/properties/port
127c9ccf3a3SEmmanuel Vadot            description: DPU_INTF2 (DSI2)
128c9ccf3a3SEmmanuel Vadot
129c9ccf3a3SEmmanuel Vadot        required:
130c9ccf3a3SEmmanuel Vadot          - port@0
131c9ccf3a3SEmmanuel Vadot          - port@1
132c9ccf3a3SEmmanuel Vadot
133c9ccf3a3SEmmanuel Vadot    required:
134c9ccf3a3SEmmanuel Vadot      - compatible
135c9ccf3a3SEmmanuel Vadot      - reg
136c9ccf3a3SEmmanuel Vadot      - reg-names
137c9ccf3a3SEmmanuel Vadot      - clocks
138c9ccf3a3SEmmanuel Vadot      - interrupts
139c9ccf3a3SEmmanuel Vadot      - power-domains
140c9ccf3a3SEmmanuel Vadot      - operating-points-v2
141c9ccf3a3SEmmanuel Vadot      - ports
142c9ccf3a3SEmmanuel Vadot
143c9ccf3a3SEmmanuel Vadotrequired:
144c9ccf3a3SEmmanuel Vadot  - compatible
145c9ccf3a3SEmmanuel Vadot  - reg
146c9ccf3a3SEmmanuel Vadot  - reg-names
147c9ccf3a3SEmmanuel Vadot  - power-domains
148c9ccf3a3SEmmanuel Vadot  - clocks
149c9ccf3a3SEmmanuel Vadot  - interrupts
150c9ccf3a3SEmmanuel Vadot  - interrupt-controller
151c9ccf3a3SEmmanuel Vadot  - iommus
152c9ccf3a3SEmmanuel Vadot  - ranges
153c9ccf3a3SEmmanuel Vadot
154c9ccf3a3SEmmanuel VadotadditionalProperties: false
155c9ccf3a3SEmmanuel Vadot
156c9ccf3a3SEmmanuel Vadotexamples:
157c9ccf3a3SEmmanuel Vadot  - |
158c9ccf3a3SEmmanuel Vadot    #include <dt-bindings/clock/qcom,mmcc-msm8998.h>
159c9ccf3a3SEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
160c9ccf3a3SEmmanuel Vadot    #include <dt-bindings/power/qcom-rpmpd.h>
161c9ccf3a3SEmmanuel Vadot
162c9ccf3a3SEmmanuel Vadot    mdss: display-subsystem@c900000 {
163c9ccf3a3SEmmanuel Vadot        compatible = "qcom,msm8998-mdss";
164c9ccf3a3SEmmanuel Vadot        reg = <0x0c900000 0x1000>;
165c9ccf3a3SEmmanuel Vadot        reg-names = "mdss";
166c9ccf3a3SEmmanuel Vadot
167c9ccf3a3SEmmanuel Vadot        clocks = <&mmcc MDSS_AHB_CLK>,
168c9ccf3a3SEmmanuel Vadot                 <&mmcc MDSS_AXI_CLK>,
169c9ccf3a3SEmmanuel Vadot                 <&mmcc MDSS_MDP_CLK>;
170c9ccf3a3SEmmanuel Vadot        clock-names = "iface", "bus", "core";
171c9ccf3a3SEmmanuel Vadot
172c9ccf3a3SEmmanuel Vadot        #address-cells = <1>;
173c9ccf3a3SEmmanuel Vadot        #interrupt-cells = <1>;
174c9ccf3a3SEmmanuel Vadot        #size-cells = <1>;
175c9ccf3a3SEmmanuel Vadot
176c9ccf3a3SEmmanuel Vadot        interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
177c9ccf3a3SEmmanuel Vadot        interrupt-controller;
178c9ccf3a3SEmmanuel Vadot        iommus = <&mmss_smmu 0>;
179c9ccf3a3SEmmanuel Vadot
180c9ccf3a3SEmmanuel Vadot        power-domains = <&mmcc MDSS_GDSC>;
181c9ccf3a3SEmmanuel Vadot        ranges;
182c9ccf3a3SEmmanuel Vadot
183c9ccf3a3SEmmanuel Vadot        display-controller@c901000 {
184c9ccf3a3SEmmanuel Vadot            compatible = "qcom,msm8998-dpu";
185c9ccf3a3SEmmanuel Vadot            reg = <0x0c901000 0x8f000>,
186c9ccf3a3SEmmanuel Vadot                  <0x0c9a8e00 0xf0>,
187c9ccf3a3SEmmanuel Vadot                  <0x0c9b0000 0x2008>,
188c9ccf3a3SEmmanuel Vadot                  <0x0c9b8000 0x1040>;
189c9ccf3a3SEmmanuel Vadot            reg-names = "mdp", "regdma", "vbif", "vbif_nrt";
190c9ccf3a3SEmmanuel Vadot
191c9ccf3a3SEmmanuel Vadot            clocks = <&mmcc MDSS_AHB_CLK>,
192c9ccf3a3SEmmanuel Vadot                     <&mmcc MDSS_AXI_CLK>,
193c9ccf3a3SEmmanuel Vadot                     <&mmcc MNOC_AHB_CLK>,
194c9ccf3a3SEmmanuel Vadot                     <&mmcc MDSS_MDP_CLK>,
195c9ccf3a3SEmmanuel Vadot                     <&mmcc MDSS_VSYNC_CLK>;
196c9ccf3a3SEmmanuel Vadot            clock-names = "iface", "bus", "mnoc", "core", "vsync";
197c9ccf3a3SEmmanuel Vadot
198c9ccf3a3SEmmanuel Vadot            interrupt-parent = <&mdss>;
199c9ccf3a3SEmmanuel Vadot            interrupts = <0>;
200c9ccf3a3SEmmanuel Vadot            operating-points-v2 = <&mdp_opp_table>;
201c9ccf3a3SEmmanuel Vadot            power-domains = <&rpmpd MSM8998_VDDMX>;
202c9ccf3a3SEmmanuel Vadot
203c9ccf3a3SEmmanuel Vadot            ports {
204c9ccf3a3SEmmanuel Vadot                #address-cells = <1>;
205c9ccf3a3SEmmanuel Vadot                #size-cells = <0>;
206c9ccf3a3SEmmanuel Vadot
207c9ccf3a3SEmmanuel Vadot                port@0 {
208c9ccf3a3SEmmanuel Vadot                    reg = <0>;
209c9ccf3a3SEmmanuel Vadot                    dpu_intf1_out: endpoint {
210c9ccf3a3SEmmanuel Vadot                        remote-endpoint = <&dsi0_in>;
211c9ccf3a3SEmmanuel Vadot                    };
212c9ccf3a3SEmmanuel Vadot                };
213c9ccf3a3SEmmanuel Vadot
214c9ccf3a3SEmmanuel Vadot                port@1 {
215c9ccf3a3SEmmanuel Vadot                    reg = <1>;
216c9ccf3a3SEmmanuel Vadot                    dpu_intf2_out: endpoint {
217c9ccf3a3SEmmanuel Vadot                        remote-endpoint = <&dsi1_in>;
218c9ccf3a3SEmmanuel Vadot                    };
219c9ccf3a3SEmmanuel Vadot                };
220c9ccf3a3SEmmanuel Vadot            };
221c9ccf3a3SEmmanuel Vadot        };
222c9ccf3a3SEmmanuel Vadot    };
223c9ccf3a3SEmmanuel Vadot...
224