1 # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
4 $id: http://devicetree.org/schemas/display/msm/qcom,sdm670-mdss.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
7 title: Qualcomm SDM670 Display MDSS
10 - Richard Acayan <mailingradian@gmail.com>
13 SDM670 MSM Mobile Display Subsystem (MDSS), which encapsulates sub-blocks
14 like DPU display controller, DSI and DP interfaces etc.
16 $ref: /schemas/display/msm/mdss-common.yaml#
20 const: qcom,sdm670-mdss
24 - description: Display AHB clock from gcc
25 - description: Display core clock
42 "^display-controller@[0-9a-f]+$":
44 additionalProperties: true
48 const: qcom,sdm670-dpu
50 "^displayport-controller@[0-9a-f]+$":
52 additionalProperties: true
60 additionalProperties: true
65 const: qcom,sdm670-dsi-ctrl
69 additionalProperties: true
73 const: qcom,dsi-phy-10nm
78 unevaluatedProperties: false
82 #include <dt-bindings/clock/qcom,dispcc-sdm845.h>
83 #include <dt-bindings/clock/qcom,gcc-sdm845.h>
84 #include <dt-bindings/clock/qcom,rpmh.h>
85 #include <dt-bindings/interconnect/qcom,sdm670-rpmh.h>
86 #include <dt-bindings/interrupt-controller/arm-gic.h>
87 #include <dt-bindings/power/qcom-rpmpd.h>
89 display-subsystem@ae00000 {
90 compatible = "qcom,sdm670-mdss";
91 reg = <0x0ae00000 0x1000>;
93 power-domains = <&dispcc MDSS_GDSC>;
95 clocks = <&gcc GCC_DISP_AHB_CLK>,
96 <&dispcc DISP_CC_MDSS_MDP_CLK>;
97 clock-names = "iface", "core";
99 interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
100 interrupt-controller;
101 #interrupt-cells = <1>;
103 interconnects = <&mmss_noc MASTER_MDP_PORT0 0 &mem_noc SLAVE_EBI_CH0 0>,
104 <&mmss_noc MASTER_MDP_PORT1 0 &mem_noc SLAVE_EBI_CH0 0>;
105 interconnect-names = "mdp0-mem", "mdp1-mem";
107 iommus = <&apps_smmu 0x880 0x8>,
108 <&apps_smmu 0xc80 0x8>;
110 #address-cells = <1>;
114 display-controller@ae01000 {
115 compatible = "qcom,sdm670-dpu";
116 reg = <0x0ae01000 0x8f000>,
118 reg-names = "mdp", "vbif";
120 clocks = <&gcc GCC_DISP_AXI_CLK>,
121 <&dispcc DISP_CC_MDSS_AHB_CLK>,
122 <&dispcc DISP_CC_MDSS_AXI_CLK>,
123 <&dispcc DISP_CC_MDSS_MDP_CLK>,
124 <&dispcc DISP_CC_MDSS_VSYNC_CLK>;
125 clock-names = "gcc-bus", "iface", "bus", "core", "vsync";
127 interrupt-parent = <&mdss>;
129 power-domains = <&rpmhpd SDM670_CX>;
130 operating-points-v2 = <&mdp_opp_table>;
133 #address-cells = <1>;
138 dpu_intf1_out: endpoint {
139 remote-endpoint = <&mdss_dsi0_in>;
145 dpu_intf2_out: endpoint {
146 remote-endpoint = <&mdss_dsi1_in>;
153 compatible = "qcom,sdm670-dsi-ctrl", "qcom,mdss-dsi-ctrl";
154 reg = <0x0ae94000 0x400>;
155 reg-names = "dsi_ctrl";
157 interrupt-parent = <&mdss>;
160 clocks = <&dispcc DISP_CC_MDSS_BYTE0_CLK>,
161 <&dispcc DISP_CC_MDSS_BYTE0_INTF_CLK>,
162 <&dispcc DISP_CC_MDSS_PCLK0_CLK>,
163 <&dispcc DISP_CC_MDSS_ESC0_CLK>,
164 <&dispcc DISP_CC_MDSS_AHB_CLK>,
165 <&dispcc DISP_CC_MDSS_AXI_CLK>;
166 clock-names = "byte",
172 assigned-clocks = <&dispcc DISP_CC_MDSS_BYTE0_CLK_SRC>,
173 <&dispcc DISP_CC_MDSS_PCLK0_CLK_SRC>;
174 assigned-clock-parents = <&mdss_dsi0_phy 0>, <&mdss_dsi0_phy 1>;
176 operating-points-v2 = <&dsi_opp_table>;
177 power-domains = <&rpmhpd SDM670_CX>;
179 phys = <&mdss_dsi0_phy>;
182 #address-cells = <1>;
186 #address-cells = <1>;
191 mdss_dsi0_in: endpoint {
192 remote-endpoint = <&dpu_intf1_out>;
198 mdss_dsi0_out: endpoint {
204 mdss_dsi0_phy: phy@ae94400 {
205 compatible = "qcom,dsi-phy-10nm";
206 reg = <0x0ae94400 0x200>,
209 reg-names = "dsi_phy",
216 clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>,
217 <&rpmhcc RPMH_CXO_CLK>;
218 clock-names = "iface", "ref";
219 vdds-supply = <&vreg_dsi_phy>;
223 compatible = "qcom,sdm670-dsi-ctrl", "qcom,mdss-dsi-ctrl";
224 reg = <0x0ae96000 0x400>;
225 reg-names = "dsi_ctrl";
227 interrupt-parent = <&mdss>;
230 clocks = <&dispcc DISP_CC_MDSS_BYTE1_CLK>,
231 <&dispcc DISP_CC_MDSS_BYTE1_INTF_CLK>,
232 <&dispcc DISP_CC_MDSS_PCLK1_CLK>,
233 <&dispcc DISP_CC_MDSS_ESC1_CLK>,
234 <&dispcc DISP_CC_MDSS_AHB_CLK>,
235 <&dispcc DISP_CC_MDSS_AXI_CLK>;
236 clock-names = "byte",
242 assigned-clocks = <&dispcc DISP_CC_MDSS_BYTE1_CLK_SRC>,
243 <&dispcc DISP_CC_MDSS_PCLK1_CLK_SRC>;
244 assigned-clock-parents = <&dsi1_phy 0>, <&dsi1_phy 1>;
246 operating-points-v2 = <&dsi_opp_table>;
247 power-domains = <&rpmhpd SDM670_CX>;
252 #address-cells = <1>;
256 #address-cells = <1>;
261 mdss_dsi1_in: endpoint {
262 remote-endpoint = <&dpu_intf2_out>;
268 mdss_dsi1_out: endpoint {
274 mdss_dsi1_phy: phy@ae96400 {
275 compatible = "qcom,dsi-phy-10nm";
276 reg = <0x0ae96400 0x200>,
279 reg-names = "dsi_phy",
286 clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>,
287 <&rpmhcc RPMH_CXO_CLK>;
288 clock-names = "iface", "ref";
289 vdds-supply = <&vreg_dsi_phy>;