xref: /linux/Documentation/devicetree/bindings/display/msm/qcom,sar2130p-mdss.yaml (revision ab93e0dd72c37d378dd936f031ffb83ff2bd87ce)
1*3096209bSDmitry Baryshkov# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2*3096209bSDmitry Baryshkov%YAML 1.2
3*3096209bSDmitry Baryshkov---
4*3096209bSDmitry Baryshkov$id: http://devicetree.org/schemas/display/msm/qcom,sar2130p-mdss.yaml#
5*3096209bSDmitry Baryshkov$schema: http://devicetree.org/meta-schemas/core.yaml#
6*3096209bSDmitry Baryshkov
7*3096209bSDmitry Baryshkovtitle: Qualcomm SAR2130P Display MDSS
8*3096209bSDmitry Baryshkov
9*3096209bSDmitry Baryshkovmaintainers:
10*3096209bSDmitry Baryshkov  - Dmitry Baryshkov <lumag@kernel.org>
11*3096209bSDmitry Baryshkov
12*3096209bSDmitry Baryshkovdescription:
13*3096209bSDmitry Baryshkov  SAR2310P MSM Mobile Display Subsystem(MDSS), which encapsulates sub-blocks like
14*3096209bSDmitry Baryshkov  DPU display controller, DSI and DP interfaces etc.
15*3096209bSDmitry Baryshkov
16*3096209bSDmitry Baryshkov$ref: /schemas/display/msm/mdss-common.yaml#
17*3096209bSDmitry Baryshkov
18*3096209bSDmitry Baryshkovproperties:
19*3096209bSDmitry Baryshkov  compatible:
20*3096209bSDmitry Baryshkov    const: qcom,sar2130p-mdss
21*3096209bSDmitry Baryshkov
22*3096209bSDmitry Baryshkov  clocks:
23*3096209bSDmitry Baryshkov    items:
24*3096209bSDmitry Baryshkov      - description: Display MDSS AHB
25*3096209bSDmitry Baryshkov      - description: Display AHB
26*3096209bSDmitry Baryshkov      - description: Display hf AXI
27*3096209bSDmitry Baryshkov      - description: Display core
28*3096209bSDmitry Baryshkov
29*3096209bSDmitry Baryshkov  iommus:
30*3096209bSDmitry Baryshkov    maxItems: 1
31*3096209bSDmitry Baryshkov
32*3096209bSDmitry Baryshkov  interconnects:
33*3096209bSDmitry Baryshkov    items:
34*3096209bSDmitry Baryshkov      - description: Interconnect path from mdp0 port to the data bus
35*3096209bSDmitry Baryshkov      - description: Interconnect path from CPU to the reg bus
36*3096209bSDmitry Baryshkov
37*3096209bSDmitry Baryshkov  interconnect-names:
38*3096209bSDmitry Baryshkov    items:
39*3096209bSDmitry Baryshkov      - const: mdp0-mem
40*3096209bSDmitry Baryshkov      - const: cpu-cfg
41*3096209bSDmitry Baryshkov
42*3096209bSDmitry BaryshkovpatternProperties:
43*3096209bSDmitry Baryshkov  "^display-controller@[0-9a-f]+$":
44*3096209bSDmitry Baryshkov    type: object
45*3096209bSDmitry Baryshkov    additionalProperties: true
46*3096209bSDmitry Baryshkov    properties:
47*3096209bSDmitry Baryshkov      compatible:
48*3096209bSDmitry Baryshkov        const: qcom,sar2130p-dpu
49*3096209bSDmitry Baryshkov
50*3096209bSDmitry Baryshkov  "^displayport-controller@[0-9a-f]+$":
51*3096209bSDmitry Baryshkov    type: object
52*3096209bSDmitry Baryshkov    additionalProperties: true
53*3096209bSDmitry Baryshkov    properties:
54*3096209bSDmitry Baryshkov      compatible:
55*3096209bSDmitry Baryshkov        contains:
56*3096209bSDmitry Baryshkov          const: qcom,sar2130p-dp
57*3096209bSDmitry Baryshkov
58*3096209bSDmitry Baryshkov  "^dsi@[0-9a-f]+$":
59*3096209bSDmitry Baryshkov    type: object
60*3096209bSDmitry Baryshkov    additionalProperties: true
61*3096209bSDmitry Baryshkov    properties:
62*3096209bSDmitry Baryshkov      compatible:
63*3096209bSDmitry Baryshkov        contains:
64*3096209bSDmitry Baryshkov          const: qcom,sar2130p-dsi-ctrl
65*3096209bSDmitry Baryshkov
66*3096209bSDmitry Baryshkov  "^phy@[0-9a-f]+$":
67*3096209bSDmitry Baryshkov    type: object
68*3096209bSDmitry Baryshkov    additionalProperties: true
69*3096209bSDmitry Baryshkov    properties:
70*3096209bSDmitry Baryshkov      compatible:
71*3096209bSDmitry Baryshkov        const: qcom,sar2130p-dsi-phy-5nm
72*3096209bSDmitry Baryshkov
73*3096209bSDmitry Baryshkovrequired:
74*3096209bSDmitry Baryshkov  - compatible
75*3096209bSDmitry Baryshkov
76*3096209bSDmitry BaryshkovunevaluatedProperties: false
77*3096209bSDmitry Baryshkov
78*3096209bSDmitry Baryshkovexamples:
79*3096209bSDmitry Baryshkov  - |
80*3096209bSDmitry Baryshkov    #include <dt-bindings/interrupt-controller/arm-gic.h>
81*3096209bSDmitry Baryshkov    #include <dt-bindings/power/qcom,rpmhpd.h>
82*3096209bSDmitry Baryshkov    #include <dt-bindings/phy/phy-qcom-qmp.h>
83*3096209bSDmitry Baryshkov
84*3096209bSDmitry Baryshkov    display-subsystem@ae00000 {
85*3096209bSDmitry Baryshkov        compatible = "qcom,sar2130p-mdss";
86*3096209bSDmitry Baryshkov        reg = <0x0ae00000 0x1000>;
87*3096209bSDmitry Baryshkov        reg-names = "mdss";
88*3096209bSDmitry Baryshkov
89*3096209bSDmitry Baryshkov        interconnects = <&mmss_noc_master_mdp &mc_virt_slave_ebi1>,
90*3096209bSDmitry Baryshkov                        <&gem_noc_master_appss_proc &config_noc_slave_display_cfg>;
91*3096209bSDmitry Baryshkov        interconnect-names = "mdp0-mem", "cpu-cfg";
92*3096209bSDmitry Baryshkov
93*3096209bSDmitry Baryshkov        resets = <&dispcc_disp_cc_mdss_core_bcr>;
94*3096209bSDmitry Baryshkov
95*3096209bSDmitry Baryshkov        power-domains = <&dispcc_mdss_gdsc>;
96*3096209bSDmitry Baryshkov
97*3096209bSDmitry Baryshkov        clocks = <&dispcc_disp_cc_mdss_ahb_clk>,
98*3096209bSDmitry Baryshkov                 <&gcc_gcc_disp_ahb_clk>,
99*3096209bSDmitry Baryshkov                 <&gcc_gcc_disp_hf_axi_clk>,
100*3096209bSDmitry Baryshkov                 <&dispcc_disp_cc_mdss_mdp_clk>;
101*3096209bSDmitry Baryshkov        clock-names = "iface", "bus", "nrt_bus", "core";
102*3096209bSDmitry Baryshkov
103*3096209bSDmitry Baryshkov        interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
104*3096209bSDmitry Baryshkov        interrupt-controller;
105*3096209bSDmitry Baryshkov        #interrupt-cells = <1>;
106*3096209bSDmitry Baryshkov
107*3096209bSDmitry Baryshkov        iommus = <&apps_smmu 0x1c00 0x2>;
108*3096209bSDmitry Baryshkov
109*3096209bSDmitry Baryshkov        #address-cells = <1>;
110*3096209bSDmitry Baryshkov        #size-cells = <1>;
111*3096209bSDmitry Baryshkov        ranges;
112*3096209bSDmitry Baryshkov
113*3096209bSDmitry Baryshkov        display-controller@ae01000 {
114*3096209bSDmitry Baryshkov            compatible = "qcom,sar2130p-dpu";
115*3096209bSDmitry Baryshkov            reg = <0x0ae01000 0x8f000>,
116*3096209bSDmitry Baryshkov                  <0x0aeb0000 0x2008>;
117*3096209bSDmitry Baryshkov            reg-names = "mdp", "vbif";
118*3096209bSDmitry Baryshkov
119*3096209bSDmitry Baryshkov            clocks = <&gcc_gcc_disp_ahb_clk>,
120*3096209bSDmitry Baryshkov                     <&gcc_gcc_disp_hf_axi_clk>,
121*3096209bSDmitry Baryshkov                     <&dispcc_disp_cc_mdss_ahb_clk>,
122*3096209bSDmitry Baryshkov                     <&dispcc_disp_cc_mdss_mdp_lut_clk>,
123*3096209bSDmitry Baryshkov                     <&dispcc_disp_cc_mdss_mdp_clk>,
124*3096209bSDmitry Baryshkov                     <&dispcc_disp_cc_mdss_vsync_clk>;
125*3096209bSDmitry Baryshkov            clock-names = "bus",
126*3096209bSDmitry Baryshkov                          "nrt_bus",
127*3096209bSDmitry Baryshkov                          "iface",
128*3096209bSDmitry Baryshkov                          "lut",
129*3096209bSDmitry Baryshkov                          "core",
130*3096209bSDmitry Baryshkov                          "vsync";
131*3096209bSDmitry Baryshkov
132*3096209bSDmitry Baryshkov            assigned-clocks = <&dispcc_disp_cc_mdss_vsync_clk>;
133*3096209bSDmitry Baryshkov            assigned-clock-rates = <19200000>;
134*3096209bSDmitry Baryshkov
135*3096209bSDmitry Baryshkov            operating-points-v2 = <&mdp_opp_table>;
136*3096209bSDmitry Baryshkov            power-domains = <&rpmhpd RPMHPD_MMCX>;
137*3096209bSDmitry Baryshkov
138*3096209bSDmitry Baryshkov            interrupt-parent = <&mdss>;
139*3096209bSDmitry Baryshkov            interrupts = <0>;
140*3096209bSDmitry Baryshkov
141*3096209bSDmitry Baryshkov            ports {
142*3096209bSDmitry Baryshkov                #address-cells = <1>;
143*3096209bSDmitry Baryshkov                #size-cells = <0>;
144*3096209bSDmitry Baryshkov
145*3096209bSDmitry Baryshkov                port@0 {
146*3096209bSDmitry Baryshkov                    reg = <0>;
147*3096209bSDmitry Baryshkov
148*3096209bSDmitry Baryshkov                    dpu_intf0_out: endpoint {
149*3096209bSDmitry Baryshkov                        remote-endpoint = <&mdss_dp0_in>;
150*3096209bSDmitry Baryshkov                    };
151*3096209bSDmitry Baryshkov                };
152*3096209bSDmitry Baryshkov
153*3096209bSDmitry Baryshkov                port@1 {
154*3096209bSDmitry Baryshkov                    reg = <1>;
155*3096209bSDmitry Baryshkov
156*3096209bSDmitry Baryshkov                    dpu_intf1_out: endpoint {
157*3096209bSDmitry Baryshkov                        remote-endpoint = <&mdss_dsi0_in>;
158*3096209bSDmitry Baryshkov                    };
159*3096209bSDmitry Baryshkov                };
160*3096209bSDmitry Baryshkov
161*3096209bSDmitry Baryshkov                port@2 {
162*3096209bSDmitry Baryshkov                    reg = <2>;
163*3096209bSDmitry Baryshkov
164*3096209bSDmitry Baryshkov                    dpu_intf2_out: endpoint {
165*3096209bSDmitry Baryshkov                        remote-endpoint = <&mdss_dsi1_in>;
166*3096209bSDmitry Baryshkov                    };
167*3096209bSDmitry Baryshkov                };
168*3096209bSDmitry Baryshkov            };
169*3096209bSDmitry Baryshkov
170*3096209bSDmitry Baryshkov            mdp_opp_table: opp-table {
171*3096209bSDmitry Baryshkov                compatible = "operating-points-v2";
172*3096209bSDmitry Baryshkov
173*3096209bSDmitry Baryshkov                opp-200000000 {
174*3096209bSDmitry Baryshkov                    opp-hz = /bits/ 64 <200000000>;
175*3096209bSDmitry Baryshkov                    required-opps = <&rpmhpd_opp_low_svs>;
176*3096209bSDmitry Baryshkov                };
177*3096209bSDmitry Baryshkov
178*3096209bSDmitry Baryshkov                opp-325000000 {
179*3096209bSDmitry Baryshkov                    opp-hz = /bits/ 64 <325000000>;
180*3096209bSDmitry Baryshkov                    required-opps = <&rpmhpd_opp_svs>;
181*3096209bSDmitry Baryshkov                };
182*3096209bSDmitry Baryshkov
183*3096209bSDmitry Baryshkov                opp-375000000 {
184*3096209bSDmitry Baryshkov                    opp-hz = /bits/ 64 <375000000>;
185*3096209bSDmitry Baryshkov                    required-opps = <&rpmhpd_opp_svs_l1>;
186*3096209bSDmitry Baryshkov                };
187*3096209bSDmitry Baryshkov
188*3096209bSDmitry Baryshkov                opp-514000000 {
189*3096209bSDmitry Baryshkov                    opp-hz = /bits/ 64 <514000000>;
190*3096209bSDmitry Baryshkov                    required-opps = <&rpmhpd_opp_nom>;
191*3096209bSDmitry Baryshkov                };
192*3096209bSDmitry Baryshkov            };
193*3096209bSDmitry Baryshkov        };
194*3096209bSDmitry Baryshkov
195*3096209bSDmitry Baryshkov        displayport-controller@ae90000 {
196*3096209bSDmitry Baryshkov            compatible = "qcom,sar2130p-dp",
197*3096209bSDmitry Baryshkov                         "qcom,sm8350-dp";
198*3096209bSDmitry Baryshkov            reg = <0xae90000 0x200>,
199*3096209bSDmitry Baryshkov                  <0xae90200 0x200>,
200*3096209bSDmitry Baryshkov                  <0xae90400 0xc00>,
201*3096209bSDmitry Baryshkov                  <0xae91000 0x400>,
202*3096209bSDmitry Baryshkov                  <0xae91400 0x400>;
203*3096209bSDmitry Baryshkov
204*3096209bSDmitry Baryshkov            interrupt-parent = <&mdss>;
205*3096209bSDmitry Baryshkov            interrupts = <12>;
206*3096209bSDmitry Baryshkov            clocks = <&dispcc_disp_cc_mdss_ahb_clk>,
207*3096209bSDmitry Baryshkov                     <&dispcc_disp_cc_mdss_dptx0_aux_clk>,
208*3096209bSDmitry Baryshkov                     <&dispcc_disp_cc_mdss_dptx0_link_clk>,
209*3096209bSDmitry Baryshkov                     <&dispcc_disp_cc_mdss_dptx0_link_intf_clk>,
210*3096209bSDmitry Baryshkov                     <&dispcc_disp_cc_mdss_dptx0_pixel0_clk>;
211*3096209bSDmitry Baryshkov            clock-names = "core_iface",
212*3096209bSDmitry Baryshkov                          "core_aux",
213*3096209bSDmitry Baryshkov                          "ctrl_link",
214*3096209bSDmitry Baryshkov                          "ctrl_link_iface",
215*3096209bSDmitry Baryshkov                          "stream_pixel";
216*3096209bSDmitry Baryshkov
217*3096209bSDmitry Baryshkov            assigned-clocks = <&dispcc_disp_cc_mdss_dptx0_link_clk_src>,
218*3096209bSDmitry Baryshkov                              <&dispcc_disp_cc_mdss_dptx0_pixel0_clk_src>;
219*3096209bSDmitry Baryshkov            assigned-clock-parents = <&usb_dp_qmpphy_QMP_USB43DP_DP_LINK_CLK>,
220*3096209bSDmitry Baryshkov                                     <&usb_dp_qmpphy_QMP_USB43DP_DP_VCO_DIV_CLK>;
221*3096209bSDmitry Baryshkov
222*3096209bSDmitry Baryshkov            phys = <&usb_dp_qmpphy QMP_USB43DP_DP_PHY>;
223*3096209bSDmitry Baryshkov            phy-names = "dp";
224*3096209bSDmitry Baryshkov
225*3096209bSDmitry Baryshkov            #sound-dai-cells = <0>;
226*3096209bSDmitry Baryshkov
227*3096209bSDmitry Baryshkov            operating-points-v2 = <&dp_opp_table>;
228*3096209bSDmitry Baryshkov            power-domains = <&rpmhpd RPMHPD_MMCX>;
229*3096209bSDmitry Baryshkov
230*3096209bSDmitry Baryshkov            ports {
231*3096209bSDmitry Baryshkov                #address-cells = <1>;
232*3096209bSDmitry Baryshkov                #size-cells = <0>;
233*3096209bSDmitry Baryshkov
234*3096209bSDmitry Baryshkov                port@0 {
235*3096209bSDmitry Baryshkov                    reg = <0>;
236*3096209bSDmitry Baryshkov                    mdss_dp0_in: endpoint {
237*3096209bSDmitry Baryshkov                        remote-endpoint = <&dpu_intf0_out>;
238*3096209bSDmitry Baryshkov                    };
239*3096209bSDmitry Baryshkov                };
240*3096209bSDmitry Baryshkov
241*3096209bSDmitry Baryshkov                port@1 {
242*3096209bSDmitry Baryshkov                    reg = <1>;
243*3096209bSDmitry Baryshkov                    mdss_dp0_out: endpoint {
244*3096209bSDmitry Baryshkov                        remote-endpoint = <&usb_dp_qmpphy_dp_in>;
245*3096209bSDmitry Baryshkov                    };
246*3096209bSDmitry Baryshkov                };
247*3096209bSDmitry Baryshkov        };
248*3096209bSDmitry Baryshkov
249*3096209bSDmitry Baryshkov        dp_opp_table: opp-table {
250*3096209bSDmitry Baryshkov                compatible = "operating-points-v2";
251*3096209bSDmitry Baryshkov
252*3096209bSDmitry Baryshkov                opp-162000000 {
253*3096209bSDmitry Baryshkov                    opp-hz = /bits/ 64 <162000000>;
254*3096209bSDmitry Baryshkov                    required-opps = <&rpmhpd_opp_low_svs_d1>;
255*3096209bSDmitry Baryshkov                };
256*3096209bSDmitry Baryshkov
257*3096209bSDmitry Baryshkov                opp-270000000 {
258*3096209bSDmitry Baryshkov                    opp-hz = /bits/ 64 <270000000>;
259*3096209bSDmitry Baryshkov                    required-opps = <&rpmhpd_opp_low_svs>;
260*3096209bSDmitry Baryshkov                };
261*3096209bSDmitry Baryshkov
262*3096209bSDmitry Baryshkov                opp-540000000 {
263*3096209bSDmitry Baryshkov                    opp-hz = /bits/ 64 <540000000>;
264*3096209bSDmitry Baryshkov                    required-opps = <&rpmhpd_opp_svs_l1>;
265*3096209bSDmitry Baryshkov                };
266*3096209bSDmitry Baryshkov
267*3096209bSDmitry Baryshkov                opp-810000000 {
268*3096209bSDmitry Baryshkov                    opp-hz = /bits/ 64 <810000000>;
269*3096209bSDmitry Baryshkov                    required-opps = <&rpmhpd_opp_nom>;
270*3096209bSDmitry Baryshkov                };
271*3096209bSDmitry Baryshkov            };
272*3096209bSDmitry Baryshkov        };
273*3096209bSDmitry Baryshkov
274*3096209bSDmitry Baryshkov        dsi@ae94000 {
275*3096209bSDmitry Baryshkov            compatible = "qcom,sar2130p-dsi-ctrl",
276*3096209bSDmitry Baryshkov                         "qcom,mdss-dsi-ctrl";
277*3096209bSDmitry Baryshkov            reg = <0x0ae94000 0x400>;
278*3096209bSDmitry Baryshkov            reg-names = "dsi_ctrl";
279*3096209bSDmitry Baryshkov
280*3096209bSDmitry Baryshkov            interrupt-parent = <&mdss>;
281*3096209bSDmitry Baryshkov            interrupts = <4>;
282*3096209bSDmitry Baryshkov
283*3096209bSDmitry Baryshkov            clocks = <&dispcc_disp_cc_mdss_byte0_clk>,
284*3096209bSDmitry Baryshkov                     <&dispcc_disp_cc_mdss_byte0_intf_clk>,
285*3096209bSDmitry Baryshkov                     <&dispcc_disp_cc_mdss_pclk0_clk>,
286*3096209bSDmitry Baryshkov                     <&dispcc_disp_cc_mdss_esc0_clk>,
287*3096209bSDmitry Baryshkov                     <&dispcc_disp_cc_mdss_ahb_clk>,
288*3096209bSDmitry Baryshkov                     <&gcc_gcc_disp_hf_axi_clk>;
289*3096209bSDmitry Baryshkov            clock-names = "byte",
290*3096209bSDmitry Baryshkov                          "byte_intf",
291*3096209bSDmitry Baryshkov                          "pixel",
292*3096209bSDmitry Baryshkov                          "core",
293*3096209bSDmitry Baryshkov                          "iface",
294*3096209bSDmitry Baryshkov                          "bus";
295*3096209bSDmitry Baryshkov
296*3096209bSDmitry Baryshkov            assigned-clocks = <&dispcc_disp_cc_mdss_byte0_clk_src>,
297*3096209bSDmitry Baryshkov                              <&dispcc_disp_cc_mdss_pclk0_clk_src>;
298*3096209bSDmitry Baryshkov            assigned-clock-parents = <&mdss_dsi0_phy 0>, <&mdss_dsi0_phy 1>;
299*3096209bSDmitry Baryshkov
300*3096209bSDmitry Baryshkov            operating-points-v2 = <&dsi_opp_table>;
301*3096209bSDmitry Baryshkov            power-domains = <&rpmhpd RPMHPD_MMCX>;
302*3096209bSDmitry Baryshkov
303*3096209bSDmitry Baryshkov            phys = <&mdss_dsi0_phy>;
304*3096209bSDmitry Baryshkov            phy-names = "dsi";
305*3096209bSDmitry Baryshkov
306*3096209bSDmitry Baryshkov            #address-cells = <1>;
307*3096209bSDmitry Baryshkov            #size-cells = <0>;
308*3096209bSDmitry Baryshkov
309*3096209bSDmitry Baryshkov            ports {
310*3096209bSDmitry Baryshkov                #address-cells = <1>;
311*3096209bSDmitry Baryshkov                #size-cells = <0>;
312*3096209bSDmitry Baryshkov
313*3096209bSDmitry Baryshkov                port@0 {
314*3096209bSDmitry Baryshkov                    reg = <0>;
315*3096209bSDmitry Baryshkov
316*3096209bSDmitry Baryshkov                    mdss_dsi0_in: endpoint {
317*3096209bSDmitry Baryshkov                        remote-endpoint = <&dpu_intf1_out>;
318*3096209bSDmitry Baryshkov                    };
319*3096209bSDmitry Baryshkov                };
320*3096209bSDmitry Baryshkov
321*3096209bSDmitry Baryshkov                port@1 {
322*3096209bSDmitry Baryshkov                    reg = <1>;
323*3096209bSDmitry Baryshkov
324*3096209bSDmitry Baryshkov                    mdss_dsi0_out: endpoint {
325*3096209bSDmitry Baryshkov                    };
326*3096209bSDmitry Baryshkov                };
327*3096209bSDmitry Baryshkov            };
328*3096209bSDmitry Baryshkov
329*3096209bSDmitry Baryshkov            dsi_opp_table: opp-table {
330*3096209bSDmitry Baryshkov                compatible = "operating-points-v2";
331*3096209bSDmitry Baryshkov
332*3096209bSDmitry Baryshkov                opp-187500000 {
333*3096209bSDmitry Baryshkov                    opp-hz = /bits/ 64 <187500000>;
334*3096209bSDmitry Baryshkov                    required-opps = <&rpmhpd_opp_low_svs>;
335*3096209bSDmitry Baryshkov                };
336*3096209bSDmitry Baryshkov
337*3096209bSDmitry Baryshkov                opp-300000000 {
338*3096209bSDmitry Baryshkov                    opp-hz = /bits/ 64 <300000000>;
339*3096209bSDmitry Baryshkov                    required-opps = <&rpmhpd_opp_svs>;
340*3096209bSDmitry Baryshkov                };
341*3096209bSDmitry Baryshkov
342*3096209bSDmitry Baryshkov                opp-358000000 {
343*3096209bSDmitry Baryshkov                    opp-hz = /bits/ 64 <358000000>;
344*3096209bSDmitry Baryshkov                    required-opps = <&rpmhpd_opp_svs_l1>;
345*3096209bSDmitry Baryshkov                };
346*3096209bSDmitry Baryshkov            };
347*3096209bSDmitry Baryshkov        };
348*3096209bSDmitry Baryshkov
349*3096209bSDmitry Baryshkov        mdss_dsi0_phy: phy@ae94400 {
350*3096209bSDmitry Baryshkov            compatible = "qcom,sar2130p-dsi-phy-5nm";
351*3096209bSDmitry Baryshkov            reg = <0x0ae95000 0x200>,
352*3096209bSDmitry Baryshkov                  <0x0ae95200 0x280>,
353*3096209bSDmitry Baryshkov                  <0x0ae95500 0x400>;
354*3096209bSDmitry Baryshkov            reg-names = "dsi_phy",
355*3096209bSDmitry Baryshkov                        "dsi_phy_lane",
356*3096209bSDmitry Baryshkov                        "dsi_pll";
357*3096209bSDmitry Baryshkov
358*3096209bSDmitry Baryshkov            #clock-cells = <1>;
359*3096209bSDmitry Baryshkov            #phy-cells = <0>;
360*3096209bSDmitry Baryshkov
361*3096209bSDmitry Baryshkov            clocks = <&dispcc_disp_cc_mdss_ahb_clk>,
362*3096209bSDmitry Baryshkov                     <&rpmhcc_rpmh_cxo_clk>;
363*3096209bSDmitry Baryshkov            clock-names = "iface", "ref";
364*3096209bSDmitry Baryshkov        };
365*3096209bSDmitry Baryshkov
366*3096209bSDmitry Baryshkov        dsi@ae96000 {
367*3096209bSDmitry Baryshkov            compatible = "qcom,sar2130p-dsi-ctrl",
368*3096209bSDmitry Baryshkov                         "qcom,mdss-dsi-ctrl";
369*3096209bSDmitry Baryshkov            reg = <0x0ae96000 0x400>;
370*3096209bSDmitry Baryshkov            reg-names = "dsi_ctrl";
371*3096209bSDmitry Baryshkov
372*3096209bSDmitry Baryshkov            interrupt-parent = <&mdss>;
373*3096209bSDmitry Baryshkov            interrupts = <5>;
374*3096209bSDmitry Baryshkov
375*3096209bSDmitry Baryshkov            clocks = <&dispcc_disp_cc_mdss_byte1_clk>,
376*3096209bSDmitry Baryshkov                     <&dispcc_disp_cc_mdss_byte1_intf_clk>,
377*3096209bSDmitry Baryshkov                     <&dispcc_disp_cc_mdss_pclk1_clk>,
378*3096209bSDmitry Baryshkov                     <&dispcc_disp_cc_mdss_esc1_clk>,
379*3096209bSDmitry Baryshkov                     <&dispcc_disp_cc_mdss_ahb_clk>,
380*3096209bSDmitry Baryshkov                     <&gcc_gcc_disp_hf_axi_clk>;
381*3096209bSDmitry Baryshkov            clock-names = "byte",
382*3096209bSDmitry Baryshkov                          "byte_intf",
383*3096209bSDmitry Baryshkov                          "pixel",
384*3096209bSDmitry Baryshkov                          "core",
385*3096209bSDmitry Baryshkov                          "iface",
386*3096209bSDmitry Baryshkov                          "bus";
387*3096209bSDmitry Baryshkov
388*3096209bSDmitry Baryshkov            assigned-clocks = <&dispcc_disp_cc_mdss_byte1_clk_src>,
389*3096209bSDmitry Baryshkov                              <&dispcc_disp_cc_mdss_pclk1_clk_src>;
390*3096209bSDmitry Baryshkov            assigned-clock-parents = <&mdss_dsi1_phy 0>, <&mdss_dsi1_phy 1>;
391*3096209bSDmitry Baryshkov
392*3096209bSDmitry Baryshkov            operating-points-v2 = <&dsi_opp_table>;
393*3096209bSDmitry Baryshkov            power-domains = <&rpmhpd RPMHPD_MMCX>;
394*3096209bSDmitry Baryshkov
395*3096209bSDmitry Baryshkov            phys = <&mdss_dsi1_phy>;
396*3096209bSDmitry Baryshkov            phy-names = "dsi";
397*3096209bSDmitry Baryshkov
398*3096209bSDmitry Baryshkov            #address-cells = <1>;
399*3096209bSDmitry Baryshkov            #size-cells = <0>;
400*3096209bSDmitry Baryshkov
401*3096209bSDmitry Baryshkov            ports {
402*3096209bSDmitry Baryshkov                #address-cells = <1>;
403*3096209bSDmitry Baryshkov                #size-cells = <0>;
404*3096209bSDmitry Baryshkov
405*3096209bSDmitry Baryshkov                port@0 {
406*3096209bSDmitry Baryshkov                    reg = <0>;
407*3096209bSDmitry Baryshkov
408*3096209bSDmitry Baryshkov                    mdss_dsi1_in: endpoint {
409*3096209bSDmitry Baryshkov                        remote-endpoint = <&dpu_intf2_out>;
410*3096209bSDmitry Baryshkov                    };
411*3096209bSDmitry Baryshkov                };
412*3096209bSDmitry Baryshkov
413*3096209bSDmitry Baryshkov                port@1 {
414*3096209bSDmitry Baryshkov                    reg = <1>;
415*3096209bSDmitry Baryshkov
416*3096209bSDmitry Baryshkov                    mdss_dsi1_out: endpoint {
417*3096209bSDmitry Baryshkov                    };
418*3096209bSDmitry Baryshkov                };
419*3096209bSDmitry Baryshkov            };
420*3096209bSDmitry Baryshkov        };
421*3096209bSDmitry Baryshkov
422*3096209bSDmitry Baryshkov        mdss_dsi1_phy: phy@ae97000 {
423*3096209bSDmitry Baryshkov            compatible = "qcom,sar2130p-dsi-phy-5nm";
424*3096209bSDmitry Baryshkov            reg = <0x0ae97000 0x200>,
425*3096209bSDmitry Baryshkov                  <0x0ae97200 0x280>,
426*3096209bSDmitry Baryshkov                  <0x0ae97500 0x400>;
427*3096209bSDmitry Baryshkov            reg-names = "dsi_phy",
428*3096209bSDmitry Baryshkov                        "dsi_phy_lane",
429*3096209bSDmitry Baryshkov                        "dsi_pll";
430*3096209bSDmitry Baryshkov
431*3096209bSDmitry Baryshkov            #clock-cells = <1>;
432*3096209bSDmitry Baryshkov            #phy-cells = <0>;
433*3096209bSDmitry Baryshkov
434*3096209bSDmitry Baryshkov            clocks = <&dispcc_disp_cc_mdss_ahb_clk>,
435*3096209bSDmitry Baryshkov                     <&rpmhcc_rpmh_cxo_clk>;
436*3096209bSDmitry Baryshkov            clock-names = "iface", "ref";
437*3096209bSDmitry Baryshkov        };
438*3096209bSDmitry Baryshkov    };
439*3096209bSDmitry Baryshkov...
440