xref: /linux/Documentation/devicetree/bindings/display/msm/qcom,eliza-mdss.yaml (revision 4a57e0913e8c7fff407e97909f4ae48caa84d612)
1*0a40e2e9SKrzysztof Kozlowski# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2*0a40e2e9SKrzysztof Kozlowski%YAML 1.2
3*0a40e2e9SKrzysztof Kozlowski---
4*0a40e2e9SKrzysztof Kozlowski$id: http://devicetree.org/schemas/display/msm/qcom,eliza-mdss.yaml#
5*0a40e2e9SKrzysztof Kozlowski$schema: http://devicetree.org/meta-schemas/core.yaml#
6*0a40e2e9SKrzysztof Kozlowski
7*0a40e2e9SKrzysztof Kozlowskititle: Qualcomm Eliza SoC Display MDSS
8*0a40e2e9SKrzysztof Kozlowski
9*0a40e2e9SKrzysztof Kozlowskimaintainers:
10*0a40e2e9SKrzysztof Kozlowski  - Krzysztof Kozlowski <krzk@kernel.org>
11*0a40e2e9SKrzysztof Kozlowski
12*0a40e2e9SKrzysztof Kozlowskidescription:
13*0a40e2e9SKrzysztof Kozlowski  Eliza SoC Mobile Display Subsystem (MDSS) encapsulates sub-blocks like DPU
14*0a40e2e9SKrzysztof Kozlowski  display controller, DSI and DP interfaces etc.
15*0a40e2e9SKrzysztof Kozlowski
16*0a40e2e9SKrzysztof Kozlowski$ref: /schemas/display/msm/mdss-common.yaml#
17*0a40e2e9SKrzysztof Kozlowski
18*0a40e2e9SKrzysztof Kozlowskiproperties:
19*0a40e2e9SKrzysztof Kozlowski  compatible:
20*0a40e2e9SKrzysztof Kozlowski    const: qcom,eliza-mdss
21*0a40e2e9SKrzysztof Kozlowski
22*0a40e2e9SKrzysztof Kozlowski  clocks:
23*0a40e2e9SKrzysztof Kozlowski    items:
24*0a40e2e9SKrzysztof Kozlowski      - description: Display AHB
25*0a40e2e9SKrzysztof Kozlowski      - description: Display hf AXI
26*0a40e2e9SKrzysztof Kozlowski      - description: Display core
27*0a40e2e9SKrzysztof Kozlowski
28*0a40e2e9SKrzysztof Kozlowski  iommus:
29*0a40e2e9SKrzysztof Kozlowski    maxItems: 1
30*0a40e2e9SKrzysztof Kozlowski
31*0a40e2e9SKrzysztof Kozlowski  interconnects:
32*0a40e2e9SKrzysztof Kozlowski    items:
33*0a40e2e9SKrzysztof Kozlowski      - description: Interconnect path from mdp0 port to the data bus
34*0a40e2e9SKrzysztof Kozlowski      - description: Interconnect path from CPU to the reg bus
35*0a40e2e9SKrzysztof Kozlowski
36*0a40e2e9SKrzysztof Kozlowski  interconnect-names:
37*0a40e2e9SKrzysztof Kozlowski    items:
38*0a40e2e9SKrzysztof Kozlowski      - const: mdp0-mem
39*0a40e2e9SKrzysztof Kozlowski      - const: cpu-cfg
40*0a40e2e9SKrzysztof Kozlowski
41*0a40e2e9SKrzysztof KozlowskipatternProperties:
42*0a40e2e9SKrzysztof Kozlowski  "^display-controller@[0-9a-f]+$":
43*0a40e2e9SKrzysztof Kozlowski    type: object
44*0a40e2e9SKrzysztof Kozlowski    additionalProperties: true
45*0a40e2e9SKrzysztof Kozlowski    properties:
46*0a40e2e9SKrzysztof Kozlowski      compatible:
47*0a40e2e9SKrzysztof Kozlowski        contains:
48*0a40e2e9SKrzysztof Kozlowski          const: qcom,eliza-dpu
49*0a40e2e9SKrzysztof Kozlowski
50*0a40e2e9SKrzysztof Kozlowski  "^displayport-controller@[0-9a-f]+$":
51*0a40e2e9SKrzysztof Kozlowski    type: object
52*0a40e2e9SKrzysztof Kozlowski    additionalProperties: true
53*0a40e2e9SKrzysztof Kozlowski    properties:
54*0a40e2e9SKrzysztof Kozlowski      compatible:
55*0a40e2e9SKrzysztof Kozlowski        contains:
56*0a40e2e9SKrzysztof Kozlowski          const: qcom,eliza-dp
57*0a40e2e9SKrzysztof Kozlowski
58*0a40e2e9SKrzysztof Kozlowski  "^dsi@[0-9a-f]+$":
59*0a40e2e9SKrzysztof Kozlowski    type: object
60*0a40e2e9SKrzysztof Kozlowski    additionalProperties: true
61*0a40e2e9SKrzysztof Kozlowski    properties:
62*0a40e2e9SKrzysztof Kozlowski      compatible:
63*0a40e2e9SKrzysztof Kozlowski        contains:
64*0a40e2e9SKrzysztof Kozlowski          const: qcom,eliza-dsi-ctrl
65*0a40e2e9SKrzysztof Kozlowski
66*0a40e2e9SKrzysztof Kozlowski  "^phy@[0-9a-f]+$":
67*0a40e2e9SKrzysztof Kozlowski    type: object
68*0a40e2e9SKrzysztof Kozlowski    additionalProperties: true
69*0a40e2e9SKrzysztof Kozlowski    properties:
70*0a40e2e9SKrzysztof Kozlowski      compatible:
71*0a40e2e9SKrzysztof Kozlowski        contains:
72*0a40e2e9SKrzysztof Kozlowski          const: qcom,eliza-dsi-phy-4nm
73*0a40e2e9SKrzysztof Kozlowski
74*0a40e2e9SKrzysztof Kozlowskirequired:
75*0a40e2e9SKrzysztof Kozlowski  - compatible
76*0a40e2e9SKrzysztof Kozlowski
77*0a40e2e9SKrzysztof KozlowskiunevaluatedProperties: false
78*0a40e2e9SKrzysztof Kozlowski
79*0a40e2e9SKrzysztof Kozlowskiexamples:
80*0a40e2e9SKrzysztof Kozlowski  - |
81*0a40e2e9SKrzysztof Kozlowski    #include <dt-bindings/clock/qcom,dsi-phy-28nm.h>
82*0a40e2e9SKrzysztof Kozlowski    #include <dt-bindings/clock/qcom,rpmh.h>
83*0a40e2e9SKrzysztof Kozlowski    #include <dt-bindings/interconnect/qcom,icc.h>
84*0a40e2e9SKrzysztof Kozlowski    #include <dt-bindings/interrupt-controller/arm-gic.h>
85*0a40e2e9SKrzysztof Kozlowski    #include <dt-bindings/phy/phy-qcom-qmp.h>
86*0a40e2e9SKrzysztof Kozlowski    #include <dt-bindings/power/qcom,rpmhpd.h>
87*0a40e2e9SKrzysztof Kozlowski
88*0a40e2e9SKrzysztof Kozlowski    display-subsystem@ae00000 {
89*0a40e2e9SKrzysztof Kozlowski        compatible = "qcom,eliza-mdss";
90*0a40e2e9SKrzysztof Kozlowski        reg = <0x0ae00000 0x1000>;
91*0a40e2e9SKrzysztof Kozlowski        reg-names = "mdss";
92*0a40e2e9SKrzysztof Kozlowski        ranges;
93*0a40e2e9SKrzysztof Kozlowski
94*0a40e2e9SKrzysztof Kozlowski        interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
95*0a40e2e9SKrzysztof Kozlowski
96*0a40e2e9SKrzysztof Kozlowski        clocks = <&disp_cc_mdss_ahb_clk>,
97*0a40e2e9SKrzysztof Kozlowski                 <&gcc_disp_hf_axi_clk>,
98*0a40e2e9SKrzysztof Kozlowski                 <&disp_cc_mdss_mdp_clk>;
99*0a40e2e9SKrzysztof Kozlowski
100*0a40e2e9SKrzysztof Kozlowski        resets = <&disp_cc_mdss_core_bcr>;
101*0a40e2e9SKrzysztof Kozlowski
102*0a40e2e9SKrzysztof Kozlowski        interconnects = <&mmss_noc_master_mdp QCOM_ICC_TAG_ALWAYS
103*0a40e2e9SKrzysztof Kozlowski                         &mc_virt_slave_ebi1 QCOM_ICC_TAG_ALWAYS>,
104*0a40e2e9SKrzysztof Kozlowski                        <&gem_noc_master_appss_proc QCOM_ICC_TAG_ACTIVE_ONLY
105*0a40e2e9SKrzysztof Kozlowski                         &config_noc_slave_display_cfg QCOM_ICC_TAG_ACTIVE_ONLY>;
106*0a40e2e9SKrzysztof Kozlowski        interconnect-names = "mdp0-mem",
107*0a40e2e9SKrzysztof Kozlowski                             "cpu-cfg";
108*0a40e2e9SKrzysztof Kozlowski
109*0a40e2e9SKrzysztof Kozlowski        power-domains = <&mdss_gdsc>;
110*0a40e2e9SKrzysztof Kozlowski
111*0a40e2e9SKrzysztof Kozlowski        iommus = <&apps_smmu 0x800 0x2>;
112*0a40e2e9SKrzysztof Kozlowski
113*0a40e2e9SKrzysztof Kozlowski        interrupt-controller;
114*0a40e2e9SKrzysztof Kozlowski        #interrupt-cells = <1>;
115*0a40e2e9SKrzysztof Kozlowski
116*0a40e2e9SKrzysztof Kozlowski        #address-cells = <1>;
117*0a40e2e9SKrzysztof Kozlowski        #size-cells = <1>;
118*0a40e2e9SKrzysztof Kozlowski
119*0a40e2e9SKrzysztof Kozlowski        mdss_mdp: display-controller@ae01000 {
120*0a40e2e9SKrzysztof Kozlowski            compatible = "qcom,eliza-dpu";
121*0a40e2e9SKrzysztof Kozlowski            reg = <0x0ae01000 0x93000>,
122*0a40e2e9SKrzysztof Kozlowski                  <0x0aeb0000 0x2008>;
123*0a40e2e9SKrzysztof Kozlowski            reg-names = "mdp",
124*0a40e2e9SKrzysztof Kozlowski                        "vbif";
125*0a40e2e9SKrzysztof Kozlowski
126*0a40e2e9SKrzysztof Kozlowski            interrupts-extended = <&mdss 0>;
127*0a40e2e9SKrzysztof Kozlowski
128*0a40e2e9SKrzysztof Kozlowski            clocks = <&gcc_disp_hf_axi_clk>,
129*0a40e2e9SKrzysztof Kozlowski                     <&disp_cc_mdss_ahb_clk>,
130*0a40e2e9SKrzysztof Kozlowski                     <&disp_cc_mdss_mdp_lut_clk>,
131*0a40e2e9SKrzysztof Kozlowski                     <&disp_cc_mdss_mdp_clk>,
132*0a40e2e9SKrzysztof Kozlowski                     <&disp_cc_mdss_vsync_clk>;
133*0a40e2e9SKrzysztof Kozlowski            clock-names = "nrt_bus",
134*0a40e2e9SKrzysztof Kozlowski                          "iface",
135*0a40e2e9SKrzysztof Kozlowski                          "lut",
136*0a40e2e9SKrzysztof Kozlowski                          "core",
137*0a40e2e9SKrzysztof Kozlowski                          "vsync";
138*0a40e2e9SKrzysztof Kozlowski
139*0a40e2e9SKrzysztof Kozlowski            assigned-clocks = <&disp_cc_mdss_vsync_clk>;
140*0a40e2e9SKrzysztof Kozlowski            assigned-clock-rates = <19200000>;
141*0a40e2e9SKrzysztof Kozlowski
142*0a40e2e9SKrzysztof Kozlowski            operating-points-v2 = <&mdp_opp_table>;
143*0a40e2e9SKrzysztof Kozlowski
144*0a40e2e9SKrzysztof Kozlowski            power-domains = <&rpmhpd RPMHPD_MMCX>;
145*0a40e2e9SKrzysztof Kozlowski
146*0a40e2e9SKrzysztof Kozlowski            ports {
147*0a40e2e9SKrzysztof Kozlowski                #address-cells = <1>;
148*0a40e2e9SKrzysztof Kozlowski                #size-cells = <0>;
149*0a40e2e9SKrzysztof Kozlowski
150*0a40e2e9SKrzysztof Kozlowski                port@0 {
151*0a40e2e9SKrzysztof Kozlowski                    reg = <0>;
152*0a40e2e9SKrzysztof Kozlowski
153*0a40e2e9SKrzysztof Kozlowski                    dpu_intf1_out: endpoint {
154*0a40e2e9SKrzysztof Kozlowski                        remote-endpoint = <&mdss_dsi0_in>;
155*0a40e2e9SKrzysztof Kozlowski                    };
156*0a40e2e9SKrzysztof Kozlowski                };
157*0a40e2e9SKrzysztof Kozlowski
158*0a40e2e9SKrzysztof Kozlowski                port@1 {
159*0a40e2e9SKrzysztof Kozlowski                    reg = <1>;
160*0a40e2e9SKrzysztof Kozlowski
161*0a40e2e9SKrzysztof Kozlowski                    dpu_intf2_out: endpoint {
162*0a40e2e9SKrzysztof Kozlowski                        remote-endpoint = <&mdss_dsi1_in>;
163*0a40e2e9SKrzysztof Kozlowski                    };
164*0a40e2e9SKrzysztof Kozlowski                };
165*0a40e2e9SKrzysztof Kozlowski
166*0a40e2e9SKrzysztof Kozlowski                port@2 {
167*0a40e2e9SKrzysztof Kozlowski                    reg = <2>;
168*0a40e2e9SKrzysztof Kozlowski
169*0a40e2e9SKrzysztof Kozlowski                    dpu_intf0_out: endpoint {
170*0a40e2e9SKrzysztof Kozlowski                        remote-endpoint = <&mdss_dp0_in>;
171*0a40e2e9SKrzysztof Kozlowski                    };
172*0a40e2e9SKrzysztof Kozlowski                };
173*0a40e2e9SKrzysztof Kozlowski            };
174*0a40e2e9SKrzysztof Kozlowski
175*0a40e2e9SKrzysztof Kozlowski            mdp_opp_table: opp-table {
176*0a40e2e9SKrzysztof Kozlowski                compatible = "operating-points-v2";
177*0a40e2e9SKrzysztof Kozlowski
178*0a40e2e9SKrzysztof Kozlowski                opp-150000000 {
179*0a40e2e9SKrzysztof Kozlowski                    opp-hz = /bits/ 64 <150000000>;
180*0a40e2e9SKrzysztof Kozlowski                    required-opps = <&rpmhpd_opp_low_svs_d1>;
181*0a40e2e9SKrzysztof Kozlowski                };
182*0a40e2e9SKrzysztof Kozlowski
183*0a40e2e9SKrzysztof Kozlowski                opp-207000000 {
184*0a40e2e9SKrzysztof Kozlowski                    opp-hz = /bits/ 64 <207000000>;
185*0a40e2e9SKrzysztof Kozlowski                    required-opps = <&rpmhpd_opp_low_svs>;
186*0a40e2e9SKrzysztof Kozlowski                };
187*0a40e2e9SKrzysztof Kozlowski
188*0a40e2e9SKrzysztof Kozlowski                opp-342000000 {
189*0a40e2e9SKrzysztof Kozlowski                    opp-hz = /bits/ 64 <342000000>;
190*0a40e2e9SKrzysztof Kozlowski                    required-opps = <&rpmhpd_opp_svs>;
191*0a40e2e9SKrzysztof Kozlowski                };
192*0a40e2e9SKrzysztof Kozlowski
193*0a40e2e9SKrzysztof Kozlowski                opp-417000000 {
194*0a40e2e9SKrzysztof Kozlowski                    opp-hz = /bits/ 64 <417000000>;
195*0a40e2e9SKrzysztof Kozlowski                    required-opps = <&rpmhpd_opp_svs_l1>;
196*0a40e2e9SKrzysztof Kozlowski                };
197*0a40e2e9SKrzysztof Kozlowski
198*0a40e2e9SKrzysztof Kozlowski                opp-532000000 {
199*0a40e2e9SKrzysztof Kozlowski                    opp-hz = /bits/ 64 <532000000>;
200*0a40e2e9SKrzysztof Kozlowski                    required-opps = <&rpmhpd_opp_nom>;
201*0a40e2e9SKrzysztof Kozlowski                };
202*0a40e2e9SKrzysztof Kozlowski
203*0a40e2e9SKrzysztof Kozlowski                opp-600000000 {
204*0a40e2e9SKrzysztof Kozlowski                    opp-hz = /bits/ 64 <600000000>;
205*0a40e2e9SKrzysztof Kozlowski                    required-opps = <&rpmhpd_opp_nom_l1>;
206*0a40e2e9SKrzysztof Kozlowski                };
207*0a40e2e9SKrzysztof Kozlowski
208*0a40e2e9SKrzysztof Kozlowski                opp-660000000 {
209*0a40e2e9SKrzysztof Kozlowski                    opp-hz = /bits/ 64 <660000000>;
210*0a40e2e9SKrzysztof Kozlowski                    required-opps = <&rpmhpd_opp_turbo>;
211*0a40e2e9SKrzysztof Kozlowski                };
212*0a40e2e9SKrzysztof Kozlowski            };
213*0a40e2e9SKrzysztof Kozlowski        };
214*0a40e2e9SKrzysztof Kozlowski
215*0a40e2e9SKrzysztof Kozlowski        dsi@ae94000 {
216*0a40e2e9SKrzysztof Kozlowski            compatible = "qcom,eliza-dsi-ctrl", "qcom,sm8750-dsi-ctrl", "qcom,mdss-dsi-ctrl";
217*0a40e2e9SKrzysztof Kozlowski            reg = <0x0ae94000 0x400>;
218*0a40e2e9SKrzysztof Kozlowski            reg-names = "dsi_ctrl";
219*0a40e2e9SKrzysztof Kozlowski
220*0a40e2e9SKrzysztof Kozlowski            interrupts-extended = <&mdss 4>;
221*0a40e2e9SKrzysztof Kozlowski
222*0a40e2e9SKrzysztof Kozlowski            clocks = <&disp_cc_mdss_byte0_clk>,
223*0a40e2e9SKrzysztof Kozlowski                     <&disp_cc_mdss_byte0_intf_clk>,
224*0a40e2e9SKrzysztof Kozlowski                     <&disp_cc_mdss_pclk0_clk>,
225*0a40e2e9SKrzysztof Kozlowski                     <&disp_cc_mdss_esc0_clk>,
226*0a40e2e9SKrzysztof Kozlowski                     <&disp_cc_mdss_ahb_clk>,
227*0a40e2e9SKrzysztof Kozlowski                     <&gcc_disp_hf_axi_clk>,
228*0a40e2e9SKrzysztof Kozlowski                     <&mdss_dsi0_phy DSI_PIXEL_PLL_CLK>,
229*0a40e2e9SKrzysztof Kozlowski                     <&mdss_dsi0_phy DSI_BYTE_PLL_CLK>,
230*0a40e2e9SKrzysztof Kozlowski                     <&disp_cc_esync0_clk>,
231*0a40e2e9SKrzysztof Kozlowski                     <&disp_cc_osc_clk>,
232*0a40e2e9SKrzysztof Kozlowski                     <&disp_cc_mdss_byte0_clk_src>,
233*0a40e2e9SKrzysztof Kozlowski                     <&disp_cc_mdss_pclk0_clk_src>;
234*0a40e2e9SKrzysztof Kozlowski            clock-names = "byte",
235*0a40e2e9SKrzysztof Kozlowski                          "byte_intf",
236*0a40e2e9SKrzysztof Kozlowski                          "pixel",
237*0a40e2e9SKrzysztof Kozlowski                          "core",
238*0a40e2e9SKrzysztof Kozlowski                          "iface",
239*0a40e2e9SKrzysztof Kozlowski                          "bus",
240*0a40e2e9SKrzysztof Kozlowski                          "dsi_pll_pixel",
241*0a40e2e9SKrzysztof Kozlowski                          "dsi_pll_byte",
242*0a40e2e9SKrzysztof Kozlowski                          "esync",
243*0a40e2e9SKrzysztof Kozlowski                          "osc",
244*0a40e2e9SKrzysztof Kozlowski                          "byte_src",
245*0a40e2e9SKrzysztof Kozlowski                          "pixel_src";
246*0a40e2e9SKrzysztof Kozlowski
247*0a40e2e9SKrzysztof Kozlowski            operating-points-v2 = <&mdss_dsi_opp_table>;
248*0a40e2e9SKrzysztof Kozlowski
249*0a40e2e9SKrzysztof Kozlowski            power-domains = <&rpmhpd RPMHPD_MMCX>;
250*0a40e2e9SKrzysztof Kozlowski
251*0a40e2e9SKrzysztof Kozlowski            phys = <&mdss_dsi0_phy>;
252*0a40e2e9SKrzysztof Kozlowski            phy-names = "dsi";
253*0a40e2e9SKrzysztof Kozlowski
254*0a40e2e9SKrzysztof Kozlowski            #address-cells = <1>;
255*0a40e2e9SKrzysztof Kozlowski            #size-cells = <0>;
256*0a40e2e9SKrzysztof Kozlowski
257*0a40e2e9SKrzysztof Kozlowski            ports {
258*0a40e2e9SKrzysztof Kozlowski                #address-cells = <1>;
259*0a40e2e9SKrzysztof Kozlowski                #size-cells = <0>;
260*0a40e2e9SKrzysztof Kozlowski
261*0a40e2e9SKrzysztof Kozlowski                port@0 {
262*0a40e2e9SKrzysztof Kozlowski                    reg = <0>;
263*0a40e2e9SKrzysztof Kozlowski
264*0a40e2e9SKrzysztof Kozlowski                    mdss_dsi0_in: endpoint {
265*0a40e2e9SKrzysztof Kozlowski                        remote-endpoint = <&dpu_intf1_out>;
266*0a40e2e9SKrzysztof Kozlowski                    };
267*0a40e2e9SKrzysztof Kozlowski                };
268*0a40e2e9SKrzysztof Kozlowski
269*0a40e2e9SKrzysztof Kozlowski                port@1 {
270*0a40e2e9SKrzysztof Kozlowski                    reg = <1>;
271*0a40e2e9SKrzysztof Kozlowski
272*0a40e2e9SKrzysztof Kozlowski                    mdss_dsi0_out: endpoint {
273*0a40e2e9SKrzysztof Kozlowski                        remote-endpoint = <&panel0_in>;
274*0a40e2e9SKrzysztof Kozlowski                        data-lanes = <0 1 2 3>;
275*0a40e2e9SKrzysztof Kozlowski                    };
276*0a40e2e9SKrzysztof Kozlowski                };
277*0a40e2e9SKrzysztof Kozlowski            };
278*0a40e2e9SKrzysztof Kozlowski
279*0a40e2e9SKrzysztof Kozlowski            mdss_dsi_opp_table: opp-table {
280*0a40e2e9SKrzysztof Kozlowski                compatible = "operating-points-v2";
281*0a40e2e9SKrzysztof Kozlowski
282*0a40e2e9SKrzysztof Kozlowski                opp-140630000 {
283*0a40e2e9SKrzysztof Kozlowski                    opp-hz = /bits/ 64 <140630000>;
284*0a40e2e9SKrzysztof Kozlowski                    required-opps = <&rpmhpd_opp_low_svs_d1>;
285*0a40e2e9SKrzysztof Kozlowski                };
286*0a40e2e9SKrzysztof Kozlowski
287*0a40e2e9SKrzysztof Kozlowski                opp-187500000 {
288*0a40e2e9SKrzysztof Kozlowski                    opp-hz = /bits/ 64 <187500000>;
289*0a40e2e9SKrzysztof Kozlowski                    required-opps = <&rpmhpd_opp_low_svs>;
290*0a40e2e9SKrzysztof Kozlowski                };
291*0a40e2e9SKrzysztof Kozlowski
292*0a40e2e9SKrzysztof Kozlowski                opp-300000000 {
293*0a40e2e9SKrzysztof Kozlowski                    opp-hz = /bits/ 64 <300000000>;
294*0a40e2e9SKrzysztof Kozlowski                    required-opps = <&rpmhpd_opp_svs>;
295*0a40e2e9SKrzysztof Kozlowski                };
296*0a40e2e9SKrzysztof Kozlowski
297*0a40e2e9SKrzysztof Kozlowski                opp-358000000 {
298*0a40e2e9SKrzysztof Kozlowski                    opp-hz = /bits/ 64 <358000000>;
299*0a40e2e9SKrzysztof Kozlowski                    required-opps = <&rpmhpd_opp_svs_l1>;
300*0a40e2e9SKrzysztof Kozlowski                };
301*0a40e2e9SKrzysztof Kozlowski            };
302*0a40e2e9SKrzysztof Kozlowski        };
303*0a40e2e9SKrzysztof Kozlowski
304*0a40e2e9SKrzysztof Kozlowski        mdss_dsi0_phy: phy@ae95000 {
305*0a40e2e9SKrzysztof Kozlowski            compatible = "qcom,eliza-dsi-phy-4nm", "qcom,sm8650-dsi-phy-4nm";
306*0a40e2e9SKrzysztof Kozlowski            reg = <0x0ae95000 0x200>,
307*0a40e2e9SKrzysztof Kozlowski                  <0x0ae95200 0x280>,
308*0a40e2e9SKrzysztof Kozlowski                  <0x0ae95500 0x400>;
309*0a40e2e9SKrzysztof Kozlowski            reg-names = "dsi_phy",
310*0a40e2e9SKrzysztof Kozlowski                        "dsi_phy_lane",
311*0a40e2e9SKrzysztof Kozlowski                        "dsi_pll";
312*0a40e2e9SKrzysztof Kozlowski
313*0a40e2e9SKrzysztof Kozlowski            clocks = <&disp_cc_mdss_ahb_clk>,
314*0a40e2e9SKrzysztof Kozlowski                     <&bi_tcxo_div2>;
315*0a40e2e9SKrzysztof Kozlowski            clock-names = "iface",
316*0a40e2e9SKrzysztof Kozlowski                          "ref";
317*0a40e2e9SKrzysztof Kozlowski
318*0a40e2e9SKrzysztof Kozlowski            #clock-cells = <1>;
319*0a40e2e9SKrzysztof Kozlowski            #phy-cells = <0>;
320*0a40e2e9SKrzysztof Kozlowski
321*0a40e2e9SKrzysztof Kozlowski            vdds-supply = <&vreg_l2b>;
322*0a40e2e9SKrzysztof Kozlowski        };
323*0a40e2e9SKrzysztof Kozlowski
324*0a40e2e9SKrzysztof Kozlowski        dsi@ae96000 {
325*0a40e2e9SKrzysztof Kozlowski            compatible = "qcom,eliza-dsi-ctrl", "qcom,sm8750-dsi-ctrl", "qcom,mdss-dsi-ctrl";
326*0a40e2e9SKrzysztof Kozlowski            reg = <0x0ae96000 0x400>;
327*0a40e2e9SKrzysztof Kozlowski            reg-names = "dsi_ctrl";
328*0a40e2e9SKrzysztof Kozlowski
329*0a40e2e9SKrzysztof Kozlowski            interrupts-extended = <&mdss 5>;
330*0a40e2e9SKrzysztof Kozlowski
331*0a40e2e9SKrzysztof Kozlowski            clocks = <&disp_cc_mdss_byte1_clk>,
332*0a40e2e9SKrzysztof Kozlowski                     <&disp_cc_mdss_byte1_intf_clk>,
333*0a40e2e9SKrzysztof Kozlowski                     <&disp_cc_mdss_pclk1_clk>,
334*0a40e2e9SKrzysztof Kozlowski                     <&disp_cc_mdss_esc1_clk>,
335*0a40e2e9SKrzysztof Kozlowski                     <&disp_cc_mdss_ahb_clk>,
336*0a40e2e9SKrzysztof Kozlowski                     <&gcc_disp_hf_axi_clk>,
337*0a40e2e9SKrzysztof Kozlowski                     <&mdss_dsi1_phy DSI_PIXEL_PLL_CLK>,
338*0a40e2e9SKrzysztof Kozlowski                     <&mdss_dsi1_phy DSI_BYTE_PLL_CLK>,
339*0a40e2e9SKrzysztof Kozlowski                     <&disp_cc_esync1_clk>,
340*0a40e2e9SKrzysztof Kozlowski                     <&disp_cc_osc_clk>,
341*0a40e2e9SKrzysztof Kozlowski                     <&disp_cc_mdss_byte1_clk_src>,
342*0a40e2e9SKrzysztof Kozlowski                     <&disp_cc_mdss_pclk1_clk_src>;
343*0a40e2e9SKrzysztof Kozlowski            clock-names = "byte",
344*0a40e2e9SKrzysztof Kozlowski                          "byte_intf",
345*0a40e2e9SKrzysztof Kozlowski                          "pixel",
346*0a40e2e9SKrzysztof Kozlowski                          "core",
347*0a40e2e9SKrzysztof Kozlowski                          "iface",
348*0a40e2e9SKrzysztof Kozlowski                          "bus",
349*0a40e2e9SKrzysztof Kozlowski                          "dsi_pll_pixel",
350*0a40e2e9SKrzysztof Kozlowski                          "dsi_pll_byte",
351*0a40e2e9SKrzysztof Kozlowski                          "esync",
352*0a40e2e9SKrzysztof Kozlowski                          "osc",
353*0a40e2e9SKrzysztof Kozlowski                          "byte_src",
354*0a40e2e9SKrzysztof Kozlowski                          "pixel_src";
355*0a40e2e9SKrzysztof Kozlowski
356*0a40e2e9SKrzysztof Kozlowski            operating-points-v2 = <&mdss_dsi_opp_table>;
357*0a40e2e9SKrzysztof Kozlowski
358*0a40e2e9SKrzysztof Kozlowski            power-domains = <&rpmhpd RPMHPD_MMCX>;
359*0a40e2e9SKrzysztof Kozlowski
360*0a40e2e9SKrzysztof Kozlowski            phys = <&mdss_dsi1_phy>;
361*0a40e2e9SKrzysztof Kozlowski            phy-names = "dsi";
362*0a40e2e9SKrzysztof Kozlowski
363*0a40e2e9SKrzysztof Kozlowski            vdda-supply = <&vreg_l4b>;
364*0a40e2e9SKrzysztof Kozlowski
365*0a40e2e9SKrzysztof Kozlowski            ports {
366*0a40e2e9SKrzysztof Kozlowski                #address-cells = <1>;
367*0a40e2e9SKrzysztof Kozlowski                #size-cells = <0>;
368*0a40e2e9SKrzysztof Kozlowski
369*0a40e2e9SKrzysztof Kozlowski                port@0 {
370*0a40e2e9SKrzysztof Kozlowski                    reg = <0>;
371*0a40e2e9SKrzysztof Kozlowski
372*0a40e2e9SKrzysztof Kozlowski                    mdss_dsi1_in: endpoint {
373*0a40e2e9SKrzysztof Kozlowski                        remote-endpoint = <&dpu_intf2_out>;
374*0a40e2e9SKrzysztof Kozlowski                    };
375*0a40e2e9SKrzysztof Kozlowski                };
376*0a40e2e9SKrzysztof Kozlowski
377*0a40e2e9SKrzysztof Kozlowski                port@1 {
378*0a40e2e9SKrzysztof Kozlowski                    reg = <1>;
379*0a40e2e9SKrzysztof Kozlowski
380*0a40e2e9SKrzysztof Kozlowski                    mdss_dsi1_out: endpoint {
381*0a40e2e9SKrzysztof Kozlowski                        remote-endpoint = <&panel1_in>;
382*0a40e2e9SKrzysztof Kozlowski                        data-lanes = <0 1 2 3>;
383*0a40e2e9SKrzysztof Kozlowski                    };
384*0a40e2e9SKrzysztof Kozlowski                };
385*0a40e2e9SKrzysztof Kozlowski            };
386*0a40e2e9SKrzysztof Kozlowski        };
387*0a40e2e9SKrzysztof Kozlowski
388*0a40e2e9SKrzysztof Kozlowski        mdss_dsi1_phy: phy@ae97000 {
389*0a40e2e9SKrzysztof Kozlowski            compatible = "qcom,eliza-dsi-phy-4nm", "qcom,sm8650-dsi-phy-4nm";
390*0a40e2e9SKrzysztof Kozlowski            reg = <0x0ae97000 0x200>,
391*0a40e2e9SKrzysztof Kozlowski                  <0x0ae97200 0x280>,
392*0a40e2e9SKrzysztof Kozlowski                  <0x0ae97500 0x400>;
393*0a40e2e9SKrzysztof Kozlowski            reg-names = "dsi_phy",
394*0a40e2e9SKrzysztof Kozlowski                        "dsi_phy_lane",
395*0a40e2e9SKrzysztof Kozlowski                        "dsi_pll";
396*0a40e2e9SKrzysztof Kozlowski
397*0a40e2e9SKrzysztof Kozlowski            clocks = <&disp_cc_mdss_ahb_clk>,
398*0a40e2e9SKrzysztof Kozlowski                     <&rpmhcc RPMH_CXO_CLK>;
399*0a40e2e9SKrzysztof Kozlowski            clock-names = "iface",
400*0a40e2e9SKrzysztof Kozlowski                          "ref";
401*0a40e2e9SKrzysztof Kozlowski
402*0a40e2e9SKrzysztof Kozlowski            #clock-cells = <1>;
403*0a40e2e9SKrzysztof Kozlowski            #phy-cells = <0>;
404*0a40e2e9SKrzysztof Kozlowski
405*0a40e2e9SKrzysztof Kozlowski            vdds-supply = <&vreg_l2b>;
406*0a40e2e9SKrzysztof Kozlowski        };
407*0a40e2e9SKrzysztof Kozlowski
408*0a40e2e9SKrzysztof Kozlowski        displayport-controller@af54000 {
409*0a40e2e9SKrzysztof Kozlowski            compatible = "qcom,eliza-dp", "qcom,sm8650-dp";
410*0a40e2e9SKrzysztof Kozlowski            reg = <0xaf54000 0x104>,
411*0a40e2e9SKrzysztof Kozlowski                  <0xaf54200 0xc0>,
412*0a40e2e9SKrzysztof Kozlowski                  <0xaf55000 0x770>,
413*0a40e2e9SKrzysztof Kozlowski                  <0xaf56000 0x9c>,
414*0a40e2e9SKrzysztof Kozlowski                  <0xaf57000 0x9c>;
415*0a40e2e9SKrzysztof Kozlowski
416*0a40e2e9SKrzysztof Kozlowski            interrupts-extended = <&mdss 12>;
417*0a40e2e9SKrzysztof Kozlowski
418*0a40e2e9SKrzysztof Kozlowski            clocks = <&disp_cc_mdss_ahb_clk>,
419*0a40e2e9SKrzysztof Kozlowski                     <&disp_cc_mdss_dptx0_aux_clk>,
420*0a40e2e9SKrzysztof Kozlowski                     <&disp_cc_mdss_dptx0_link_clk>,
421*0a40e2e9SKrzysztof Kozlowski                     <&disp_cc_mdss_dptx0_link_intf_clk>,
422*0a40e2e9SKrzysztof Kozlowski                     <&disp_cc_mdss_dptx0_pixel0_clk>,
423*0a40e2e9SKrzysztof Kozlowski                     <&disp_cc_mdss_dptx0_pixel1_clk>;
424*0a40e2e9SKrzysztof Kozlowski            clock-names = "core_iface",
425*0a40e2e9SKrzysztof Kozlowski                          "core_aux",
426*0a40e2e9SKrzysztof Kozlowski                          "ctrl_link",
427*0a40e2e9SKrzysztof Kozlowski                          "ctrl_link_iface",
428*0a40e2e9SKrzysztof Kozlowski                          "stream_pixel",
429*0a40e2e9SKrzysztof Kozlowski                          "stream_1_pixel";
430*0a40e2e9SKrzysztof Kozlowski
431*0a40e2e9SKrzysztof Kozlowski            assigned-clocks = <&disp_cc_mdss_dptx0_link_clk_src>,
432*0a40e2e9SKrzysztof Kozlowski                              <&disp_cc_mdss_dptx0_pixel0_clk_src>,
433*0a40e2e9SKrzysztof Kozlowski                              <&disp_cc_mdss_dptx0_pixel1_clk_src>;
434*0a40e2e9SKrzysztof Kozlowski            assigned-clock-parents = <&usb_dp_qmpphy QMP_USB43DP_DP_LINK_CLK>,
435*0a40e2e9SKrzysztof Kozlowski                                     <&usb_dp_qmpphy QMP_USB43DP_DP_VCO_DIV_CLK>,
436*0a40e2e9SKrzysztof Kozlowski                                     <&usb_dp_qmpphy QMP_USB43DP_DP_VCO_DIV_CLK>;
437*0a40e2e9SKrzysztof Kozlowski
438*0a40e2e9SKrzysztof Kozlowski            operating-points-v2 = <&dp_opp_table>;
439*0a40e2e9SKrzysztof Kozlowski
440*0a40e2e9SKrzysztof Kozlowski            power-domains = <&rpmhpd RPMHPD_MMCX>;
441*0a40e2e9SKrzysztof Kozlowski
442*0a40e2e9SKrzysztof Kozlowski            phys = <&usb_dp_qmpphy QMP_USB43DP_DP_PHY>;
443*0a40e2e9SKrzysztof Kozlowski            phy-names = "dp";
444*0a40e2e9SKrzysztof Kozlowski
445*0a40e2e9SKrzysztof Kozlowski            #sound-dai-cells = <0>;
446*0a40e2e9SKrzysztof Kozlowski
447*0a40e2e9SKrzysztof Kozlowski            dp_opp_table: opp-table {
448*0a40e2e9SKrzysztof Kozlowski                compatible = "operating-points-v2";
449*0a40e2e9SKrzysztof Kozlowski
450*0a40e2e9SKrzysztof Kozlowski                opp-192000000 {
451*0a40e2e9SKrzysztof Kozlowski                    opp-hz = /bits/ 64 <192000000>;
452*0a40e2e9SKrzysztof Kozlowski                    required-opps = <&rpmhpd_opp_low_svs_d1>;
453*0a40e2e9SKrzysztof Kozlowski                };
454*0a40e2e9SKrzysztof Kozlowski
455*0a40e2e9SKrzysztof Kozlowski                opp-270000000 {
456*0a40e2e9SKrzysztof Kozlowski                    opp-hz = /bits/ 64 <270000000>;
457*0a40e2e9SKrzysztof Kozlowski                    required-opps = <&rpmhpd_opp_low_svs>;
458*0a40e2e9SKrzysztof Kozlowski                };
459*0a40e2e9SKrzysztof Kozlowski
460*0a40e2e9SKrzysztof Kozlowski                opp-540000000 {
461*0a40e2e9SKrzysztof Kozlowski                    opp-hz = /bits/ 64 <540000000>;
462*0a40e2e9SKrzysztof Kozlowski                    required-opps = <&rpmhpd_opp_svs_l1>;
463*0a40e2e9SKrzysztof Kozlowski                };
464*0a40e2e9SKrzysztof Kozlowski
465*0a40e2e9SKrzysztof Kozlowski                opp-810000000 {
466*0a40e2e9SKrzysztof Kozlowski                    opp-hz = /bits/ 64 <810000000>;
467*0a40e2e9SKrzysztof Kozlowski                    required-opps = <&rpmhpd_opp_nom>;
468*0a40e2e9SKrzysztof Kozlowski                };
469*0a40e2e9SKrzysztof Kozlowski            };
470*0a40e2e9SKrzysztof Kozlowski
471*0a40e2e9SKrzysztof Kozlowski            ports {
472*0a40e2e9SKrzysztof Kozlowski                #address-cells = <1>;
473*0a40e2e9SKrzysztof Kozlowski                #size-cells = <0>;
474*0a40e2e9SKrzysztof Kozlowski
475*0a40e2e9SKrzysztof Kozlowski                port@0 {
476*0a40e2e9SKrzysztof Kozlowski                    reg = <0>;
477*0a40e2e9SKrzysztof Kozlowski
478*0a40e2e9SKrzysztof Kozlowski                    mdss_dp0_in: endpoint {
479*0a40e2e9SKrzysztof Kozlowski                        remote-endpoint = <&dpu_intf0_out>;
480*0a40e2e9SKrzysztof Kozlowski                    };
481*0a40e2e9SKrzysztof Kozlowski                };
482*0a40e2e9SKrzysztof Kozlowski
483*0a40e2e9SKrzysztof Kozlowski                port@1 {
484*0a40e2e9SKrzysztof Kozlowski                    reg = <1>;
485*0a40e2e9SKrzysztof Kozlowski
486*0a40e2e9SKrzysztof Kozlowski                    mdss_dp0_out: endpoint {
487*0a40e2e9SKrzysztof Kozlowski                        data-lanes = <0 1 2 3>;
488*0a40e2e9SKrzysztof Kozlowski                        remote-endpoint = <&usb_dp_qmpphy_dp_in>;
489*0a40e2e9SKrzysztof Kozlowski                        link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
490*0a40e2e9SKrzysztof Kozlowski                    };
491*0a40e2e9SKrzysztof Kozlowski                };
492*0a40e2e9SKrzysztof Kozlowski            };
493*0a40e2e9SKrzysztof Kozlowski        };
494*0a40e2e9SKrzysztof Kozlowski    };
495