xref: /openbmc/linux/Documentation/devicetree/bindings/display/msm/qcom,sm8450-mdss.yaml (revision 0eda3c6cb1c5d6f8ccb8e28159f5226269fba5ac)
1*0eda3c6cSDmitry Baryshkov# SPDX-License-Identifier: GPL-2.0-only or BSD-2-Clause
2*0eda3c6cSDmitry Baryshkov%YAML 1.2
3*0eda3c6cSDmitry Baryshkov---
4*0eda3c6cSDmitry Baryshkov$id: http://devicetree.org/schemas/display/msm/qcom,sm8450-mdss.yaml#
5*0eda3c6cSDmitry Baryshkov$schema: http://devicetree.org/meta-schemas/core.yaml#
6*0eda3c6cSDmitry Baryshkov
7*0eda3c6cSDmitry Baryshkovtitle: Qualcomm SM8450 Display MDSS
8*0eda3c6cSDmitry Baryshkov
9*0eda3c6cSDmitry Baryshkovmaintainers:
10*0eda3c6cSDmitry Baryshkov  - Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
11*0eda3c6cSDmitry Baryshkov
12*0eda3c6cSDmitry Baryshkovdescription:
13*0eda3c6cSDmitry Baryshkov  SM8450 MSM Mobile Display Subsystem(MDSS), which encapsulates sub-blocks like
14*0eda3c6cSDmitry Baryshkov  DPU display controller, DSI and DP interfaces etc.
15*0eda3c6cSDmitry Baryshkov
16*0eda3c6cSDmitry Baryshkov$ref: /schemas/display/msm/mdss-common.yaml#
17*0eda3c6cSDmitry Baryshkov
18*0eda3c6cSDmitry Baryshkovproperties:
19*0eda3c6cSDmitry Baryshkov  compatible:
20*0eda3c6cSDmitry Baryshkov    const: qcom,sm8450-mdss
21*0eda3c6cSDmitry Baryshkov
22*0eda3c6cSDmitry Baryshkov  clocks:
23*0eda3c6cSDmitry Baryshkov    items:
24*0eda3c6cSDmitry Baryshkov      - description: Display AHB
25*0eda3c6cSDmitry Baryshkov      - description: Display hf AXI
26*0eda3c6cSDmitry Baryshkov      - description: Display sf AXI
27*0eda3c6cSDmitry Baryshkov      - description: Display core
28*0eda3c6cSDmitry Baryshkov
29*0eda3c6cSDmitry Baryshkov  iommus:
30*0eda3c6cSDmitry Baryshkov    maxItems: 1
31*0eda3c6cSDmitry Baryshkov
32*0eda3c6cSDmitry Baryshkov  interconnects:
33*0eda3c6cSDmitry Baryshkov    maxItems: 2
34*0eda3c6cSDmitry Baryshkov
35*0eda3c6cSDmitry Baryshkov  interconnect-names:
36*0eda3c6cSDmitry Baryshkov    maxItems: 2
37*0eda3c6cSDmitry Baryshkov
38*0eda3c6cSDmitry BaryshkovpatternProperties:
39*0eda3c6cSDmitry Baryshkov  "^display-controller@[0-9a-f]+$":
40*0eda3c6cSDmitry Baryshkov    type: object
41*0eda3c6cSDmitry Baryshkov    properties:
42*0eda3c6cSDmitry Baryshkov      compatible:
43*0eda3c6cSDmitry Baryshkov        const: qcom,sm8450-dpu
44*0eda3c6cSDmitry Baryshkov
45*0eda3c6cSDmitry Baryshkov  "^dsi@[0-9a-f]+$":
46*0eda3c6cSDmitry Baryshkov    type: object
47*0eda3c6cSDmitry Baryshkov    properties:
48*0eda3c6cSDmitry Baryshkov      compatible:
49*0eda3c6cSDmitry Baryshkov        const: qcom,mdss-dsi-ctrl
50*0eda3c6cSDmitry Baryshkov
51*0eda3c6cSDmitry Baryshkov  "^phy@[0-9a-f]+$":
52*0eda3c6cSDmitry Baryshkov    type: object
53*0eda3c6cSDmitry Baryshkov    properties:
54*0eda3c6cSDmitry Baryshkov      compatible:
55*0eda3c6cSDmitry Baryshkov        const: qcom,dsi-phy-5nm-8450
56*0eda3c6cSDmitry Baryshkov
57*0eda3c6cSDmitry Baryshkovrequired:
58*0eda3c6cSDmitry Baryshkov  - compatible
59*0eda3c6cSDmitry Baryshkov
60*0eda3c6cSDmitry BaryshkovunevaluatedProperties: false
61*0eda3c6cSDmitry Baryshkov
62*0eda3c6cSDmitry Baryshkovexamples:
63*0eda3c6cSDmitry Baryshkov  - |
64*0eda3c6cSDmitry Baryshkov    #include <dt-bindings/clock/qcom,sm8450-dispcc.h>
65*0eda3c6cSDmitry Baryshkov    #include <dt-bindings/clock/qcom,gcc-sm8450.h>
66*0eda3c6cSDmitry Baryshkov    #include <dt-bindings/clock/qcom,rpmh.h>
67*0eda3c6cSDmitry Baryshkov    #include <dt-bindings/interrupt-controller/arm-gic.h>
68*0eda3c6cSDmitry Baryshkov    #include <dt-bindings/interconnect/qcom,sm8450.h>
69*0eda3c6cSDmitry Baryshkov    #include <dt-bindings/power/qcom-rpmpd.h>
70*0eda3c6cSDmitry Baryshkov
71*0eda3c6cSDmitry Baryshkov    display-subsystem@ae00000 {
72*0eda3c6cSDmitry Baryshkov        compatible = "qcom,sm8450-mdss";
73*0eda3c6cSDmitry Baryshkov        reg = <0x0ae00000 0x1000>;
74*0eda3c6cSDmitry Baryshkov        reg-names = "mdss";
75*0eda3c6cSDmitry Baryshkov
76*0eda3c6cSDmitry Baryshkov        interconnects = <&mmss_noc MASTER_MDP_DISP 0 &mc_virt SLAVE_EBI1_DISP 0>,
77*0eda3c6cSDmitry Baryshkov                        <&mmss_noc MASTER_MDP_DISP 0 &mc_virt SLAVE_EBI1_DISP 0>;
78*0eda3c6cSDmitry Baryshkov        interconnect-names = "mdp0-mem", "mdp1-mem";
79*0eda3c6cSDmitry Baryshkov
80*0eda3c6cSDmitry Baryshkov        resets = <&dispcc DISP_CC_MDSS_CORE_BCR>;
81*0eda3c6cSDmitry Baryshkov
82*0eda3c6cSDmitry Baryshkov        power-domains = <&dispcc MDSS_GDSC>;
83*0eda3c6cSDmitry Baryshkov
84*0eda3c6cSDmitry Baryshkov        clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>,
85*0eda3c6cSDmitry Baryshkov                 <&gcc GCC_DISP_HF_AXI_CLK>,
86*0eda3c6cSDmitry Baryshkov                 <&gcc GCC_DISP_SF_AXI_CLK>,
87*0eda3c6cSDmitry Baryshkov                 <&dispcc DISP_CC_MDSS_MDP_CLK>;
88*0eda3c6cSDmitry Baryshkov        clock-names = "iface", "bus", "nrt_bus", "core";
89*0eda3c6cSDmitry Baryshkov
90*0eda3c6cSDmitry Baryshkov        interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
91*0eda3c6cSDmitry Baryshkov        interrupt-controller;
92*0eda3c6cSDmitry Baryshkov        #interrupt-cells = <1>;
93*0eda3c6cSDmitry Baryshkov
94*0eda3c6cSDmitry Baryshkov        iommus = <&apps_smmu 0x2800 0x402>;
95*0eda3c6cSDmitry Baryshkov
96*0eda3c6cSDmitry Baryshkov        #address-cells = <1>;
97*0eda3c6cSDmitry Baryshkov        #size-cells = <1>;
98*0eda3c6cSDmitry Baryshkov        ranges;
99*0eda3c6cSDmitry Baryshkov
100*0eda3c6cSDmitry Baryshkov        display-controller@ae01000 {
101*0eda3c6cSDmitry Baryshkov            compatible = "qcom,sm8450-dpu";
102*0eda3c6cSDmitry Baryshkov            reg = <0x0ae01000 0x8f000>,
103*0eda3c6cSDmitry Baryshkov                  <0x0aeb0000 0x2008>;
104*0eda3c6cSDmitry Baryshkov            reg-names = "mdp", "vbif";
105*0eda3c6cSDmitry Baryshkov
106*0eda3c6cSDmitry Baryshkov            clocks = <&gcc GCC_DISP_HF_AXI_CLK>,
107*0eda3c6cSDmitry Baryshkov                    <&gcc GCC_DISP_SF_AXI_CLK>,
108*0eda3c6cSDmitry Baryshkov                    <&dispcc DISP_CC_MDSS_AHB_CLK>,
109*0eda3c6cSDmitry Baryshkov                    <&dispcc DISP_CC_MDSS_MDP_LUT_CLK>,
110*0eda3c6cSDmitry Baryshkov                    <&dispcc DISP_CC_MDSS_MDP_CLK>,
111*0eda3c6cSDmitry Baryshkov                    <&dispcc DISP_CC_MDSS_VSYNC_CLK>;
112*0eda3c6cSDmitry Baryshkov            clock-names = "bus",
113*0eda3c6cSDmitry Baryshkov                          "nrt_bus",
114*0eda3c6cSDmitry Baryshkov                          "iface",
115*0eda3c6cSDmitry Baryshkov                          "lut",
116*0eda3c6cSDmitry Baryshkov                          "core",
117*0eda3c6cSDmitry Baryshkov                          "vsync";
118*0eda3c6cSDmitry Baryshkov
119*0eda3c6cSDmitry Baryshkov            assigned-clocks = <&dispcc DISP_CC_MDSS_VSYNC_CLK>;
120*0eda3c6cSDmitry Baryshkov            assigned-clock-rates = <19200000>;
121*0eda3c6cSDmitry Baryshkov
122*0eda3c6cSDmitry Baryshkov            operating-points-v2 = <&mdp_opp_table>;
123*0eda3c6cSDmitry Baryshkov            power-domains = <&rpmhpd SM8450_MMCX>;
124*0eda3c6cSDmitry Baryshkov
125*0eda3c6cSDmitry Baryshkov            interrupt-parent = <&mdss>;
126*0eda3c6cSDmitry Baryshkov            interrupts = <0>;
127*0eda3c6cSDmitry Baryshkov
128*0eda3c6cSDmitry Baryshkov            ports {
129*0eda3c6cSDmitry Baryshkov                #address-cells = <1>;
130*0eda3c6cSDmitry Baryshkov                #size-cells = <0>;
131*0eda3c6cSDmitry Baryshkov
132*0eda3c6cSDmitry Baryshkov                port@0 {
133*0eda3c6cSDmitry Baryshkov                    reg = <0>;
134*0eda3c6cSDmitry Baryshkov                    dpu_intf1_out: endpoint {
135*0eda3c6cSDmitry Baryshkov                        remote-endpoint = <&dsi0_in>;
136*0eda3c6cSDmitry Baryshkov                    };
137*0eda3c6cSDmitry Baryshkov                };
138*0eda3c6cSDmitry Baryshkov
139*0eda3c6cSDmitry Baryshkov                port@1 {
140*0eda3c6cSDmitry Baryshkov                    reg = <1>;
141*0eda3c6cSDmitry Baryshkov                    dpu_intf2_out: endpoint {
142*0eda3c6cSDmitry Baryshkov                        remote-endpoint = <&dsi1_in>;
143*0eda3c6cSDmitry Baryshkov                    };
144*0eda3c6cSDmitry Baryshkov                };
145*0eda3c6cSDmitry Baryshkov            };
146*0eda3c6cSDmitry Baryshkov
147*0eda3c6cSDmitry Baryshkov            mdp_opp_table: opp-table {
148*0eda3c6cSDmitry Baryshkov                compatible = "operating-points-v2";
149*0eda3c6cSDmitry Baryshkov
150*0eda3c6cSDmitry Baryshkov                opp-172000000{
151*0eda3c6cSDmitry Baryshkov                    opp-hz = /bits/ 64 <172000000>;
152*0eda3c6cSDmitry Baryshkov                    required-opps = <&rpmhpd_opp_low_svs_d1>;
153*0eda3c6cSDmitry Baryshkov                };
154*0eda3c6cSDmitry Baryshkov
155*0eda3c6cSDmitry Baryshkov                opp-200000000 {
156*0eda3c6cSDmitry Baryshkov                    opp-hz = /bits/ 64 <200000000>;
157*0eda3c6cSDmitry Baryshkov                    required-opps = <&rpmhpd_opp_low_svs>;
158*0eda3c6cSDmitry Baryshkov                };
159*0eda3c6cSDmitry Baryshkov
160*0eda3c6cSDmitry Baryshkov                opp-325000000 {
161*0eda3c6cSDmitry Baryshkov                    opp-hz = /bits/ 64 <325000000>;
162*0eda3c6cSDmitry Baryshkov                    required-opps = <&rpmhpd_opp_svs>;
163*0eda3c6cSDmitry Baryshkov                };
164*0eda3c6cSDmitry Baryshkov
165*0eda3c6cSDmitry Baryshkov                opp-375000000 {
166*0eda3c6cSDmitry Baryshkov                    opp-hz = /bits/ 64 <375000000>;
167*0eda3c6cSDmitry Baryshkov                    required-opps = <&rpmhpd_opp_svs_l1>;
168*0eda3c6cSDmitry Baryshkov                };
169*0eda3c6cSDmitry Baryshkov
170*0eda3c6cSDmitry Baryshkov                opp-500000000 {
171*0eda3c6cSDmitry Baryshkov                    opp-hz = /bits/ 64 <500000000>;
172*0eda3c6cSDmitry Baryshkov                    required-opps = <&rpmhpd_opp_nom>;
173*0eda3c6cSDmitry Baryshkov                };
174*0eda3c6cSDmitry Baryshkov            };
175*0eda3c6cSDmitry Baryshkov        };
176*0eda3c6cSDmitry Baryshkov
177*0eda3c6cSDmitry Baryshkov        dsi@ae94000 {
178*0eda3c6cSDmitry Baryshkov            compatible = "qcom,mdss-dsi-ctrl";
179*0eda3c6cSDmitry Baryshkov            reg = <0x0ae94000 0x400>;
180*0eda3c6cSDmitry Baryshkov            reg-names = "dsi_ctrl";
181*0eda3c6cSDmitry Baryshkov
182*0eda3c6cSDmitry Baryshkov            interrupt-parent = <&mdss>;
183*0eda3c6cSDmitry Baryshkov            interrupts = <4>;
184*0eda3c6cSDmitry Baryshkov
185*0eda3c6cSDmitry Baryshkov            clocks = <&dispcc DISP_CC_MDSS_BYTE0_CLK>,
186*0eda3c6cSDmitry Baryshkov                     <&dispcc DISP_CC_MDSS_BYTE0_INTF_CLK>,
187*0eda3c6cSDmitry Baryshkov                     <&dispcc DISP_CC_MDSS_PCLK0_CLK>,
188*0eda3c6cSDmitry Baryshkov                     <&dispcc DISP_CC_MDSS_ESC0_CLK>,
189*0eda3c6cSDmitry Baryshkov                     <&dispcc DISP_CC_MDSS_AHB_CLK>,
190*0eda3c6cSDmitry Baryshkov                     <&gcc GCC_DISP_HF_AXI_CLK>;
191*0eda3c6cSDmitry Baryshkov            clock-names = "byte",
192*0eda3c6cSDmitry Baryshkov                          "byte_intf",
193*0eda3c6cSDmitry Baryshkov                          "pixel",
194*0eda3c6cSDmitry Baryshkov                          "core",
195*0eda3c6cSDmitry Baryshkov                          "iface",
196*0eda3c6cSDmitry Baryshkov                          "bus";
197*0eda3c6cSDmitry Baryshkov
198*0eda3c6cSDmitry Baryshkov            assigned-clocks = <&dispcc DISP_CC_MDSS_BYTE0_CLK_SRC>,
199*0eda3c6cSDmitry Baryshkov                              <&dispcc DISP_CC_MDSS_PCLK0_CLK_SRC>;
200*0eda3c6cSDmitry Baryshkov            assigned-clock-parents = <&dsi0_phy 0>, <&dsi0_phy 1>;
201*0eda3c6cSDmitry Baryshkov
202*0eda3c6cSDmitry Baryshkov            operating-points-v2 = <&dsi_opp_table>;
203*0eda3c6cSDmitry Baryshkov            power-domains = <&rpmhpd SM8450_MMCX>;
204*0eda3c6cSDmitry Baryshkov
205*0eda3c6cSDmitry Baryshkov            phys = <&dsi0_phy>;
206*0eda3c6cSDmitry Baryshkov            phy-names = "dsi";
207*0eda3c6cSDmitry Baryshkov
208*0eda3c6cSDmitry Baryshkov            #address-cells = <1>;
209*0eda3c6cSDmitry Baryshkov            #size-cells = <0>;
210*0eda3c6cSDmitry Baryshkov
211*0eda3c6cSDmitry Baryshkov            ports {
212*0eda3c6cSDmitry Baryshkov                #address-cells = <1>;
213*0eda3c6cSDmitry Baryshkov                #size-cells = <0>;
214*0eda3c6cSDmitry Baryshkov
215*0eda3c6cSDmitry Baryshkov                port@0 {
216*0eda3c6cSDmitry Baryshkov                    reg = <0>;
217*0eda3c6cSDmitry Baryshkov                    dsi0_in: endpoint {
218*0eda3c6cSDmitry Baryshkov                        remote-endpoint = <&dpu_intf1_out>;
219*0eda3c6cSDmitry Baryshkov                    };
220*0eda3c6cSDmitry Baryshkov                };
221*0eda3c6cSDmitry Baryshkov
222*0eda3c6cSDmitry Baryshkov                port@1 {
223*0eda3c6cSDmitry Baryshkov                    reg = <1>;
224*0eda3c6cSDmitry Baryshkov                    dsi0_out: endpoint {
225*0eda3c6cSDmitry Baryshkov                    };
226*0eda3c6cSDmitry Baryshkov                };
227*0eda3c6cSDmitry Baryshkov            };
228*0eda3c6cSDmitry Baryshkov
229*0eda3c6cSDmitry Baryshkov            dsi_opp_table: opp-table {
230*0eda3c6cSDmitry Baryshkov                compatible = "operating-points-v2";
231*0eda3c6cSDmitry Baryshkov
232*0eda3c6cSDmitry Baryshkov                opp-160310000{
233*0eda3c6cSDmitry Baryshkov                    opp-hz = /bits/ 64 <160310000>;
234*0eda3c6cSDmitry Baryshkov                    required-opps = <&rpmhpd_opp_low_svs_d1>;
235*0eda3c6cSDmitry Baryshkov                };
236*0eda3c6cSDmitry Baryshkov
237*0eda3c6cSDmitry Baryshkov                opp-187500000 {
238*0eda3c6cSDmitry Baryshkov                    opp-hz = /bits/ 64 <187500000>;
239*0eda3c6cSDmitry Baryshkov                    required-opps = <&rpmhpd_opp_low_svs>;
240*0eda3c6cSDmitry Baryshkov                };
241*0eda3c6cSDmitry Baryshkov
242*0eda3c6cSDmitry Baryshkov                opp-300000000 {
243*0eda3c6cSDmitry Baryshkov                    opp-hz = /bits/ 64 <300000000>;
244*0eda3c6cSDmitry Baryshkov                    required-opps = <&rpmhpd_opp_svs>;
245*0eda3c6cSDmitry Baryshkov                };
246*0eda3c6cSDmitry Baryshkov
247*0eda3c6cSDmitry Baryshkov                opp-358000000 {
248*0eda3c6cSDmitry Baryshkov                    opp-hz = /bits/ 64 <358000000>;
249*0eda3c6cSDmitry Baryshkov                    required-opps = <&rpmhpd_opp_svs_l1>;
250*0eda3c6cSDmitry Baryshkov                };
251*0eda3c6cSDmitry Baryshkov            };
252*0eda3c6cSDmitry Baryshkov        };
253*0eda3c6cSDmitry Baryshkov
254*0eda3c6cSDmitry Baryshkov        dsi0_phy: phy@ae94400 {
255*0eda3c6cSDmitry Baryshkov            compatible = "qcom,dsi-phy-5nm-8450";
256*0eda3c6cSDmitry Baryshkov            reg = <0x0ae94400 0x200>,
257*0eda3c6cSDmitry Baryshkov                  <0x0ae94600 0x280>,
258*0eda3c6cSDmitry Baryshkov                  <0x0ae94900 0x260>;
259*0eda3c6cSDmitry Baryshkov            reg-names = "dsi_phy",
260*0eda3c6cSDmitry Baryshkov                        "dsi_phy_lane",
261*0eda3c6cSDmitry Baryshkov                        "dsi_pll";
262*0eda3c6cSDmitry Baryshkov
263*0eda3c6cSDmitry Baryshkov            #clock-cells = <1>;
264*0eda3c6cSDmitry Baryshkov            #phy-cells = <0>;
265*0eda3c6cSDmitry Baryshkov
266*0eda3c6cSDmitry Baryshkov            clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>,
267*0eda3c6cSDmitry Baryshkov                     <&rpmhcc RPMH_CXO_CLK>;
268*0eda3c6cSDmitry Baryshkov            clock-names = "iface", "ref";
269*0eda3c6cSDmitry Baryshkov            vdds-supply = <&vreg_dsi_phy>;
270*0eda3c6cSDmitry Baryshkov        };
271*0eda3c6cSDmitry Baryshkov
272*0eda3c6cSDmitry Baryshkov        dsi@ae96000 {
273*0eda3c6cSDmitry Baryshkov            compatible = "qcom,mdss-dsi-ctrl";
274*0eda3c6cSDmitry Baryshkov            reg = <0x0ae96000 0x400>;
275*0eda3c6cSDmitry Baryshkov            reg-names = "dsi_ctrl";
276*0eda3c6cSDmitry Baryshkov
277*0eda3c6cSDmitry Baryshkov            interrupt-parent = <&mdss>;
278*0eda3c6cSDmitry Baryshkov            interrupts = <5>;
279*0eda3c6cSDmitry Baryshkov
280*0eda3c6cSDmitry Baryshkov            clocks = <&dispcc DISP_CC_MDSS_BYTE1_CLK>,
281*0eda3c6cSDmitry Baryshkov                     <&dispcc DISP_CC_MDSS_BYTE1_INTF_CLK>,
282*0eda3c6cSDmitry Baryshkov                     <&dispcc DISP_CC_MDSS_PCLK1_CLK>,
283*0eda3c6cSDmitry Baryshkov                     <&dispcc DISP_CC_MDSS_ESC1_CLK>,
284*0eda3c6cSDmitry Baryshkov                     <&dispcc DISP_CC_MDSS_AHB_CLK>,
285*0eda3c6cSDmitry Baryshkov                     <&gcc GCC_DISP_HF_AXI_CLK>;
286*0eda3c6cSDmitry Baryshkov            clock-names = "byte",
287*0eda3c6cSDmitry Baryshkov                          "byte_intf",
288*0eda3c6cSDmitry Baryshkov                          "pixel",
289*0eda3c6cSDmitry Baryshkov                          "core",
290*0eda3c6cSDmitry Baryshkov                          "iface",
291*0eda3c6cSDmitry Baryshkov                          "bus";
292*0eda3c6cSDmitry Baryshkov
293*0eda3c6cSDmitry Baryshkov            assigned-clocks = <&dispcc DISP_CC_MDSS_BYTE1_CLK_SRC>,
294*0eda3c6cSDmitry Baryshkov                              <&dispcc DISP_CC_MDSS_PCLK1_CLK_SRC>;
295*0eda3c6cSDmitry Baryshkov            assigned-clock-parents = <&dsi1_phy 0>, <&dsi1_phy 1>;
296*0eda3c6cSDmitry Baryshkov
297*0eda3c6cSDmitry Baryshkov            operating-points-v2 = <&dsi_opp_table>;
298*0eda3c6cSDmitry Baryshkov            power-domains = <&rpmhpd SM8450_MMCX>;
299*0eda3c6cSDmitry Baryshkov
300*0eda3c6cSDmitry Baryshkov            phys = <&dsi1_phy>;
301*0eda3c6cSDmitry Baryshkov            phy-names = "dsi";
302*0eda3c6cSDmitry Baryshkov
303*0eda3c6cSDmitry Baryshkov            #address-cells = <1>;
304*0eda3c6cSDmitry Baryshkov            #size-cells = <0>;
305*0eda3c6cSDmitry Baryshkov
306*0eda3c6cSDmitry Baryshkov            ports {
307*0eda3c6cSDmitry Baryshkov                #address-cells = <1>;
308*0eda3c6cSDmitry Baryshkov                #size-cells = <0>;
309*0eda3c6cSDmitry Baryshkov
310*0eda3c6cSDmitry Baryshkov                port@0 {
311*0eda3c6cSDmitry Baryshkov                    reg = <0>;
312*0eda3c6cSDmitry Baryshkov                    dsi1_in: endpoint {
313*0eda3c6cSDmitry Baryshkov                        remote-endpoint = <&dpu_intf2_out>;
314*0eda3c6cSDmitry Baryshkov                    };
315*0eda3c6cSDmitry Baryshkov                };
316*0eda3c6cSDmitry Baryshkov
317*0eda3c6cSDmitry Baryshkov                port@1 {
318*0eda3c6cSDmitry Baryshkov                    reg = <1>;
319*0eda3c6cSDmitry Baryshkov                    dsi1_out: endpoint {
320*0eda3c6cSDmitry Baryshkov                    };
321*0eda3c6cSDmitry Baryshkov                };
322*0eda3c6cSDmitry Baryshkov            };
323*0eda3c6cSDmitry Baryshkov        };
324*0eda3c6cSDmitry Baryshkov
325*0eda3c6cSDmitry Baryshkov        dsi1_phy: phy@ae96400 {
326*0eda3c6cSDmitry Baryshkov            compatible = "qcom,dsi-phy-5nm-8450";
327*0eda3c6cSDmitry Baryshkov            reg = <0x0ae96400 0x200>,
328*0eda3c6cSDmitry Baryshkov                  <0x0ae96600 0x280>,
329*0eda3c6cSDmitry Baryshkov                  <0x0ae96900 0x260>;
330*0eda3c6cSDmitry Baryshkov            reg-names = "dsi_phy",
331*0eda3c6cSDmitry Baryshkov                        "dsi_phy_lane",
332*0eda3c6cSDmitry Baryshkov                        "dsi_pll";
333*0eda3c6cSDmitry Baryshkov
334*0eda3c6cSDmitry Baryshkov            #clock-cells = <1>;
335*0eda3c6cSDmitry Baryshkov            #phy-cells = <0>;
336*0eda3c6cSDmitry Baryshkov
337*0eda3c6cSDmitry Baryshkov            clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>,
338*0eda3c6cSDmitry Baryshkov                     <&rpmhcc RPMH_CXO_CLK>;
339*0eda3c6cSDmitry Baryshkov            clock-names = "iface", "ref";
340*0eda3c6cSDmitry Baryshkov            vdds-supply = <&vreg_dsi_phy>;
341*0eda3c6cSDmitry Baryshkov        };
342*0eda3c6cSDmitry Baryshkov    };
343*0eda3c6cSDmitry Baryshkov...
344