xref: /freebsd/sys/contrib/device-tree/Bindings/display/msm/qcom,sa8775p-mdss.yaml (revision ae5de77ed78ae54d86cead5604869212e8008e6b)
15f62a964SEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
25f62a964SEmmanuel Vadot%YAML 1.2
35f62a964SEmmanuel Vadot---
45f62a964SEmmanuel Vadot$id: http://devicetree.org/schemas/display/msm/qcom,sa8775p-mdss.yaml#
55f62a964SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
65f62a964SEmmanuel Vadot
75f62a964SEmmanuel Vadottitle: Qualcomm Technologies, Inc. SA87755P Display MDSS
85f62a964SEmmanuel Vadot
95f62a964SEmmanuel Vadotmaintainers:
105f62a964SEmmanuel Vadot  - Mahadevan <quic_mahap@quicinc.com>
115f62a964SEmmanuel Vadot
125f62a964SEmmanuel Vadotdescription:
135f62a964SEmmanuel Vadot  SA8775P MSM Mobile Display Subsystem(MDSS), which encapsulates sub-blocks like
145f62a964SEmmanuel Vadot  DPU display controller, DP interfaces and EDP etc.
155f62a964SEmmanuel Vadot
165f62a964SEmmanuel Vadot$ref: /schemas/display/msm/mdss-common.yaml#
175f62a964SEmmanuel Vadot
185f62a964SEmmanuel Vadotproperties:
195f62a964SEmmanuel Vadot  compatible:
205f62a964SEmmanuel Vadot    const: qcom,sa8775p-mdss
215f62a964SEmmanuel Vadot
225f62a964SEmmanuel Vadot  clocks:
235f62a964SEmmanuel Vadot    items:
245f62a964SEmmanuel Vadot      - description: Display AHB
255f62a964SEmmanuel Vadot      - description: Display hf AXI
265f62a964SEmmanuel Vadot      - description: Display core
275f62a964SEmmanuel Vadot
285f62a964SEmmanuel Vadot  iommus:
295f62a964SEmmanuel Vadot    maxItems: 1
305f62a964SEmmanuel Vadot
315f62a964SEmmanuel Vadot  interconnects:
325f62a964SEmmanuel Vadot    maxItems: 3
335f62a964SEmmanuel Vadot
345f62a964SEmmanuel Vadot  interconnect-names:
355f62a964SEmmanuel Vadot    maxItems: 3
365f62a964SEmmanuel Vadot
375f62a964SEmmanuel VadotpatternProperties:
385f62a964SEmmanuel Vadot  "^display-controller@[0-9a-f]+$":
395f62a964SEmmanuel Vadot    type: object
405f62a964SEmmanuel Vadot    additionalProperties: true
415f62a964SEmmanuel Vadot
425f62a964SEmmanuel Vadot    properties:
435f62a964SEmmanuel Vadot      compatible:
445f62a964SEmmanuel Vadot        const: qcom,sa8775p-dpu
455f62a964SEmmanuel Vadot
465f62a964SEmmanuel Vadot  "^displayport-controller@[0-9a-f]+$":
475f62a964SEmmanuel Vadot    type: object
485f62a964SEmmanuel Vadot    additionalProperties: true
495f62a964SEmmanuel Vadot
505f62a964SEmmanuel Vadot    properties:
515f62a964SEmmanuel Vadot      compatible:
525f62a964SEmmanuel Vadot        items:
535f62a964SEmmanuel Vadot          - const: qcom,sa8775p-dp
545f62a964SEmmanuel Vadot
55*ae5de77eSEmmanuel Vadot  "^dsi@[0-9a-f]+$":
56*ae5de77eSEmmanuel Vadot    type: object
57*ae5de77eSEmmanuel Vadot    additionalProperties: true
58*ae5de77eSEmmanuel Vadot    properties:
59*ae5de77eSEmmanuel Vadot      compatible:
60*ae5de77eSEmmanuel Vadot        contains:
61*ae5de77eSEmmanuel Vadot          const: qcom,sa8775p-dsi-ctrl
62*ae5de77eSEmmanuel Vadot
638ccc0d23SEmmanuel Vadot  "^phy@[0-9a-f]+$":
648ccc0d23SEmmanuel Vadot    type: object
658ccc0d23SEmmanuel Vadot    additionalProperties: true
668ccc0d23SEmmanuel Vadot    properties:
678ccc0d23SEmmanuel Vadot      compatible:
68*ae5de77eSEmmanuel Vadot        contains:
69*ae5de77eSEmmanuel Vadot          enum:
70*ae5de77eSEmmanuel Vadot            - qcom,sa8775p-dsi-phy-5nm
71*ae5de77eSEmmanuel Vadot            - qcom,sa8775p-edp-phy
728ccc0d23SEmmanuel Vadot
735f62a964SEmmanuel Vadotrequired:
745f62a964SEmmanuel Vadot  - compatible
755f62a964SEmmanuel Vadot
765f62a964SEmmanuel VadotunevaluatedProperties: false
775f62a964SEmmanuel Vadot
785f62a964SEmmanuel Vadotexamples:
795f62a964SEmmanuel Vadot  - |
805f62a964SEmmanuel Vadot    #include <dt-bindings/interconnect/qcom,icc.h>
815f62a964SEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
828ccc0d23SEmmanuel Vadot    #include <dt-bindings/clock/qcom,sa8775p-dispcc.h>
835f62a964SEmmanuel Vadot    #include <dt-bindings/clock/qcom,sa8775p-gcc.h>
845f62a964SEmmanuel Vadot    #include <dt-bindings/interconnect/qcom,sa8775p-rpmh.h>
855f62a964SEmmanuel Vadot    #include <dt-bindings/power/qcom,rpmhpd.h>
865f62a964SEmmanuel Vadot    #include <dt-bindings/power/qcom-rpmpd.h>
875f62a964SEmmanuel Vadot
885f62a964SEmmanuel Vadot    display-subsystem@ae00000 {
895f62a964SEmmanuel Vadot        compatible = "qcom,sa8775p-mdss";
905f62a964SEmmanuel Vadot        reg = <0x0ae00000 0x1000>;
915f62a964SEmmanuel Vadot        reg-names = "mdss";
925f62a964SEmmanuel Vadot
935f62a964SEmmanuel Vadot        interconnects = <&mmss_noc MASTER_MDP0 &mc_virt SLAVE_EBI1>,
945f62a964SEmmanuel Vadot                        <&mmss_noc MASTER_MDP1 &mc_virt SLAVE_EBI1>,
955f62a964SEmmanuel Vadot                        <&gem_noc MASTER_APPSS_PROC &config_noc SLAVE_DISPLAY_CFG>;
965f62a964SEmmanuel Vadot        interconnect-names = "mdp0-mem",
975f62a964SEmmanuel Vadot                             "mdp1-mem",
985f62a964SEmmanuel Vadot                             "cpu-cfg";
995f62a964SEmmanuel Vadot
1005f62a964SEmmanuel Vadot        resets = <&dispcc_core_bcr>;
1015f62a964SEmmanuel Vadot        power-domains = <&dispcc_gdsc>;
1025f62a964SEmmanuel Vadot
1035f62a964SEmmanuel Vadot        clocks = <&dispcc_ahb_clk>,
1045f62a964SEmmanuel Vadot                 <&gcc GCC_DISP_HF_AXI_CLK>,
1055f62a964SEmmanuel Vadot                 <&dispcc_mdp_clk>;
1065f62a964SEmmanuel Vadot
1075f62a964SEmmanuel Vadot        interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>;
1085f62a964SEmmanuel Vadot        interrupt-controller;
1095f62a964SEmmanuel Vadot        #interrupt-cells = <1>;
1105f62a964SEmmanuel Vadot
1115f62a964SEmmanuel Vadot        iommus = <&apps_smmu 0x1000 0x402>;
1125f62a964SEmmanuel Vadot
1135f62a964SEmmanuel Vadot        #address-cells = <1>;
1145f62a964SEmmanuel Vadot        #size-cells = <1>;
1155f62a964SEmmanuel Vadot        ranges;
1165f62a964SEmmanuel Vadot
1175f62a964SEmmanuel Vadot        display-controller@ae01000 {
1185f62a964SEmmanuel Vadot            compatible = "qcom,sa8775p-dpu";
1195f62a964SEmmanuel Vadot            reg = <0x0ae01000 0x8f000>,
1205f62a964SEmmanuel Vadot                  <0x0aeb0000 0x2008>;
1215f62a964SEmmanuel Vadot            reg-names = "mdp", "vbif";
1225f62a964SEmmanuel Vadot
1235f62a964SEmmanuel Vadot            clocks = <&gcc GCC_DISP_HF_AXI_CLK>,
1245f62a964SEmmanuel Vadot                     <&dispcc_ahb_clk>,
1255f62a964SEmmanuel Vadot                     <&dispcc_mdp_lut_clk>,
1265f62a964SEmmanuel Vadot                     <&dispcc_mdp_clk>,
1275f62a964SEmmanuel Vadot                     <&dispcc_mdp_vsync_clk>;
1285f62a964SEmmanuel Vadot            clock-names = "nrt_bus",
1295f62a964SEmmanuel Vadot                          "iface",
1305f62a964SEmmanuel Vadot                          "lut",
1315f62a964SEmmanuel Vadot                          "core",
1325f62a964SEmmanuel Vadot                          "vsync";
1335f62a964SEmmanuel Vadot
1345f62a964SEmmanuel Vadot            assigned-clocks = <&dispcc_mdp_vsync_clk>;
1355f62a964SEmmanuel Vadot            assigned-clock-rates = <19200000>;
1365f62a964SEmmanuel Vadot
1375f62a964SEmmanuel Vadot            operating-points-v2 = <&mdss0_mdp_opp_table>;
1385f62a964SEmmanuel Vadot            power-domains = <&rpmhpd RPMHPD_MMCX>;
1395f62a964SEmmanuel Vadot
1405f62a964SEmmanuel Vadot            interrupt-parent = <&mdss0>;
1415f62a964SEmmanuel Vadot            interrupts = <0>;
1425f62a964SEmmanuel Vadot
1435f62a964SEmmanuel Vadot            ports {
1445f62a964SEmmanuel Vadot                #address-cells = <1>;
1455f62a964SEmmanuel Vadot                #size-cells = <0>;
1465f62a964SEmmanuel Vadot
1475f62a964SEmmanuel Vadot                port@0 {
1485f62a964SEmmanuel Vadot                    reg = <0>;
1495f62a964SEmmanuel Vadot                    dpu_intf0_out: endpoint {
1505f62a964SEmmanuel Vadot                        remote-endpoint = <&mdss0_dp0_in>;
1515f62a964SEmmanuel Vadot                    };
1525f62a964SEmmanuel Vadot                };
153*ae5de77eSEmmanuel Vadot
154*ae5de77eSEmmanuel Vadot                port@1 {
155*ae5de77eSEmmanuel Vadot                    reg = <1>;
156*ae5de77eSEmmanuel Vadot                    dpu_intf1_out: endpoint {
157*ae5de77eSEmmanuel Vadot                        remote-endpoint = <&mdss0_dsi0_in>;
158*ae5de77eSEmmanuel Vadot                    };
159*ae5de77eSEmmanuel Vadot                };
160*ae5de77eSEmmanuel Vadot
161*ae5de77eSEmmanuel Vadot                port@2 {
162*ae5de77eSEmmanuel Vadot                    reg = <2>;
163*ae5de77eSEmmanuel Vadot                    dpu_intf2_out: endpoint {
164*ae5de77eSEmmanuel Vadot                        remote-endpoint = <&mdss0_dsi1_in>;
165*ae5de77eSEmmanuel Vadot                    };
166*ae5de77eSEmmanuel Vadot                };
1675f62a964SEmmanuel Vadot            };
1685f62a964SEmmanuel Vadot
1695f62a964SEmmanuel Vadot            mdss0_mdp_opp_table: opp-table {
1705f62a964SEmmanuel Vadot                compatible = "operating-points-v2";
1715f62a964SEmmanuel Vadot
1725f62a964SEmmanuel Vadot                opp-375000000 {
1735f62a964SEmmanuel Vadot                    opp-hz = /bits/ 64 <375000000>;
1745f62a964SEmmanuel Vadot                    required-opps = <&rpmhpd_opp_svs_l1>;
1755f62a964SEmmanuel Vadot                };
1765f62a964SEmmanuel Vadot
1775f62a964SEmmanuel Vadot                opp-500000000 {
1785f62a964SEmmanuel Vadot                    opp-hz = /bits/ 64 <500000000>;
1795f62a964SEmmanuel Vadot                    required-opps = <&rpmhpd_opp_nom>;
1805f62a964SEmmanuel Vadot                };
1815f62a964SEmmanuel Vadot
1825f62a964SEmmanuel Vadot                opp-575000000 {
1835f62a964SEmmanuel Vadot                    opp-hz = /bits/ 64 <575000000>;
1845f62a964SEmmanuel Vadot                    required-opps = <&rpmhpd_opp_turbo>;
1855f62a964SEmmanuel Vadot                };
1865f62a964SEmmanuel Vadot
1875f62a964SEmmanuel Vadot                opp-650000000 {
1885f62a964SEmmanuel Vadot                    opp-hz = /bits/ 64 <650000000>;
1895f62a964SEmmanuel Vadot                    required-opps = <&rpmhpd_opp_turbo_l1>;
1905f62a964SEmmanuel Vadot                };
1915f62a964SEmmanuel Vadot            };
1925f62a964SEmmanuel Vadot        };
1935f62a964SEmmanuel Vadot
1948ccc0d23SEmmanuel Vadot        mdss0_dp0_phy: phy@aec2a00 {
1958ccc0d23SEmmanuel Vadot            compatible = "qcom,sa8775p-edp-phy";
1968ccc0d23SEmmanuel Vadot
1978ccc0d23SEmmanuel Vadot            reg = <0x0aec2a00 0x200>,
1988ccc0d23SEmmanuel Vadot                  <0x0aec2200 0xd0>,
1998ccc0d23SEmmanuel Vadot                  <0x0aec2600 0xd0>,
2008ccc0d23SEmmanuel Vadot                  <0x0aec2000 0x1c8>;
2018ccc0d23SEmmanuel Vadot
2028ccc0d23SEmmanuel Vadot            clocks = <&dispcc0 MDSS_DISP_CC_MDSS_DPTX0_AUX_CLK>,
2038ccc0d23SEmmanuel Vadot                     <&dispcc0 MDSS_DISP_CC_MDSS_AHB_CLK>;
2048ccc0d23SEmmanuel Vadot            clock-names = "aux",
2058ccc0d23SEmmanuel Vadot                          "cfg_ahb";
2068ccc0d23SEmmanuel Vadot
2078ccc0d23SEmmanuel Vadot            #clock-cells = <1>;
2088ccc0d23SEmmanuel Vadot            #phy-cells = <0>;
2098ccc0d23SEmmanuel Vadot
2108ccc0d23SEmmanuel Vadot            vdda-phy-supply = <&vreg_l1c>;
2118ccc0d23SEmmanuel Vadot            vdda-pll-supply = <&vreg_l4a>;
2128ccc0d23SEmmanuel Vadot        };
2138ccc0d23SEmmanuel Vadot
214*ae5de77eSEmmanuel Vadot        dsi@ae94000 {
215*ae5de77eSEmmanuel Vadot            compatible = "qcom,sa8775p-dsi-ctrl", "qcom,mdss-dsi-ctrl";
216*ae5de77eSEmmanuel Vadot            reg = <0x0ae94000 0x400>;
217*ae5de77eSEmmanuel Vadot            reg-names = "dsi_ctrl";
218*ae5de77eSEmmanuel Vadot
219*ae5de77eSEmmanuel Vadot            interrupt-parent = <&mdss>;
220*ae5de77eSEmmanuel Vadot            interrupts = <4>;
221*ae5de77eSEmmanuel Vadot
222*ae5de77eSEmmanuel Vadot            clocks = <&dispc_byte_clk>,
223*ae5de77eSEmmanuel Vadot                     <&dispcc_intf_clk>,
224*ae5de77eSEmmanuel Vadot                     <&dispcc_pclk>,
225*ae5de77eSEmmanuel Vadot                     <&dispcc_esc_clk>,
226*ae5de77eSEmmanuel Vadot                     <&dispcc_ahb_clk>,
227*ae5de77eSEmmanuel Vadot                     <&gcc_bus_clk>;
228*ae5de77eSEmmanuel Vadot            clock-names = "byte",
229*ae5de77eSEmmanuel Vadot                          "byte_intf",
230*ae5de77eSEmmanuel Vadot                          "pixel",
231*ae5de77eSEmmanuel Vadot                          "core",
232*ae5de77eSEmmanuel Vadot                          "iface",
233*ae5de77eSEmmanuel Vadot                          "bus";
234*ae5de77eSEmmanuel Vadot            assigned-clocks = <&dispcc_byte_clk>,
235*ae5de77eSEmmanuel Vadot                              <&dispcc_pclk>;
236*ae5de77eSEmmanuel Vadot            assigned-clock-parents = <&mdss0_dsi0_phy 0>, <&mdss0_dsi0_phy 1>;
237*ae5de77eSEmmanuel Vadot            phys = <&mdss0_dsi0_phy>;
238*ae5de77eSEmmanuel Vadot
239*ae5de77eSEmmanuel Vadot            operating-points-v2 = <&dsi0_opp_table>;
240*ae5de77eSEmmanuel Vadot            power-domains = <&rpmhpd SA8775P_MMCX>;
241*ae5de77eSEmmanuel Vadot
242*ae5de77eSEmmanuel Vadot            #address-cells = <1>;
243*ae5de77eSEmmanuel Vadot            #size-cells = <0>;
244*ae5de77eSEmmanuel Vadot
245*ae5de77eSEmmanuel Vadot            ports {
246*ae5de77eSEmmanuel Vadot                #address-cells = <1>;
247*ae5de77eSEmmanuel Vadot                #size-cells = <0>;
248*ae5de77eSEmmanuel Vadot
249*ae5de77eSEmmanuel Vadot                port@0 {
250*ae5de77eSEmmanuel Vadot                    reg = <0>;
251*ae5de77eSEmmanuel Vadot                    mdss0_dsi0_in: endpoint {
252*ae5de77eSEmmanuel Vadot                        remote-endpoint = <&dpu_intf1_out>;
253*ae5de77eSEmmanuel Vadot                    };
254*ae5de77eSEmmanuel Vadot                };
255*ae5de77eSEmmanuel Vadot
256*ae5de77eSEmmanuel Vadot                port@1 {
257*ae5de77eSEmmanuel Vadot                    reg = <1>;
258*ae5de77eSEmmanuel Vadot                    mdss0_dsi0_out: endpoint { };
259*ae5de77eSEmmanuel Vadot                };
260*ae5de77eSEmmanuel Vadot            };
261*ae5de77eSEmmanuel Vadot
262*ae5de77eSEmmanuel Vadot            dsi0_opp_table: opp-table {
263*ae5de77eSEmmanuel Vadot                compatible = "operating-points-v2";
264*ae5de77eSEmmanuel Vadot
265*ae5de77eSEmmanuel Vadot                opp-358000000 {
266*ae5de77eSEmmanuel Vadot                    opp-hz = /bits/ 64 <358000000>;
267*ae5de77eSEmmanuel Vadot                    required-opps = <&rpmhpd_opp_svs_l1>;
268*ae5de77eSEmmanuel Vadot                };
269*ae5de77eSEmmanuel Vadot            };
270*ae5de77eSEmmanuel Vadot        };
271*ae5de77eSEmmanuel Vadot
272*ae5de77eSEmmanuel Vadot        mdss0_dsi0_phy: phy@ae94400 {
273*ae5de77eSEmmanuel Vadot            compatible = "qcom,sa8775p-dsi-phy-5nm";
274*ae5de77eSEmmanuel Vadot            reg = <0x0ae94400 0x200>,
275*ae5de77eSEmmanuel Vadot                  <0x0ae94600 0x280>,
276*ae5de77eSEmmanuel Vadot                  <0x0ae94900 0x27c>;
277*ae5de77eSEmmanuel Vadot            reg-names = "dsi_phy",
278*ae5de77eSEmmanuel Vadot                        "dsi_phy_lane",
279*ae5de77eSEmmanuel Vadot                        "dsi_pll";
280*ae5de77eSEmmanuel Vadot
281*ae5de77eSEmmanuel Vadot            #clock-cells = <1>;
282*ae5de77eSEmmanuel Vadot            #phy-cells = <0>;
283*ae5de77eSEmmanuel Vadot
284*ae5de77eSEmmanuel Vadot            clocks = <&dispcc_iface_clk>,
285*ae5de77eSEmmanuel Vadot                     <&rpmhcc_ref_clk>;
286*ae5de77eSEmmanuel Vadot            clock-names = "iface", "ref";
287*ae5de77eSEmmanuel Vadot
288*ae5de77eSEmmanuel Vadot            vdds-supply = <&vreg_dsi_supply>;
289*ae5de77eSEmmanuel Vadot        };
290*ae5de77eSEmmanuel Vadot
291*ae5de77eSEmmanuel Vadot        dsi@ae96000 {
292*ae5de77eSEmmanuel Vadot            compatible = "qcom,sa8775p-dsi-ctrl", "qcom,mdss-dsi-ctrl";
293*ae5de77eSEmmanuel Vadot            reg = <0x0ae96000 0x400>;
294*ae5de77eSEmmanuel Vadot            reg-names = "dsi_ctrl";
295*ae5de77eSEmmanuel Vadot
296*ae5de77eSEmmanuel Vadot            interrupt-parent = <&mdss>;
297*ae5de77eSEmmanuel Vadot            interrupts = <4>;
298*ae5de77eSEmmanuel Vadot
299*ae5de77eSEmmanuel Vadot            clocks = <&dispc_byte_clk>,
300*ae5de77eSEmmanuel Vadot                     <&dispcc_intf_clk>,
301*ae5de77eSEmmanuel Vadot                     <&dispcc_pclk>,
302*ae5de77eSEmmanuel Vadot                     <&dispcc_esc_clk>,
303*ae5de77eSEmmanuel Vadot                     <&dispcc_ahb_clk>,
304*ae5de77eSEmmanuel Vadot                     <&gcc_bus_clk>;
305*ae5de77eSEmmanuel Vadot            clock-names = "byte",
306*ae5de77eSEmmanuel Vadot                          "byte_intf",
307*ae5de77eSEmmanuel Vadot                          "pixel",
308*ae5de77eSEmmanuel Vadot                          "core",
309*ae5de77eSEmmanuel Vadot                          "iface",
310*ae5de77eSEmmanuel Vadot                          "bus";
311*ae5de77eSEmmanuel Vadot            assigned-clocks = <&dispcc_byte_clk>,
312*ae5de77eSEmmanuel Vadot                              <&dispcc_pclk>;
313*ae5de77eSEmmanuel Vadot            assigned-clock-parents = <&mdss0_dsi1_phy 0>, <&mdss0_dsi1_phy 1>;
314*ae5de77eSEmmanuel Vadot            phys = <&mdss0_dsi1_phy>;
315*ae5de77eSEmmanuel Vadot
316*ae5de77eSEmmanuel Vadot            operating-points-v2 = <&dsi1_opp_table>;
317*ae5de77eSEmmanuel Vadot            power-domains = <&rpmhpd SA8775P_MMCX>;
318*ae5de77eSEmmanuel Vadot
319*ae5de77eSEmmanuel Vadot            #address-cells = <1>;
320*ae5de77eSEmmanuel Vadot            #size-cells = <0>;
321*ae5de77eSEmmanuel Vadot
322*ae5de77eSEmmanuel Vadot            ports {
323*ae5de77eSEmmanuel Vadot                #address-cells = <1>;
324*ae5de77eSEmmanuel Vadot                #size-cells = <0>;
325*ae5de77eSEmmanuel Vadot
326*ae5de77eSEmmanuel Vadot                port@0 {
327*ae5de77eSEmmanuel Vadot                    reg = <0>;
328*ae5de77eSEmmanuel Vadot                    mdss0_dsi1_in: endpoint {
329*ae5de77eSEmmanuel Vadot                        remote-endpoint = <&dpu_intf2_out>;
330*ae5de77eSEmmanuel Vadot                    };
331*ae5de77eSEmmanuel Vadot                };
332*ae5de77eSEmmanuel Vadot
333*ae5de77eSEmmanuel Vadot                port@1 {
334*ae5de77eSEmmanuel Vadot                    reg = <1>;
335*ae5de77eSEmmanuel Vadot                    mdss0_dsi1_out: endpoint { };
336*ae5de77eSEmmanuel Vadot                };
337*ae5de77eSEmmanuel Vadot            };
338*ae5de77eSEmmanuel Vadot
339*ae5de77eSEmmanuel Vadot            dsi1_opp_table: opp-table {
340*ae5de77eSEmmanuel Vadot                compatible = "operating-points-v2";
341*ae5de77eSEmmanuel Vadot
342*ae5de77eSEmmanuel Vadot                opp-358000000 {
343*ae5de77eSEmmanuel Vadot                    opp-hz = /bits/ 64 <358000000>;
344*ae5de77eSEmmanuel Vadot                    required-opps = <&rpmhpd_opp_svs_l1>;
345*ae5de77eSEmmanuel Vadot                };
346*ae5de77eSEmmanuel Vadot            };
347*ae5de77eSEmmanuel Vadot        };
348*ae5de77eSEmmanuel Vadot
349*ae5de77eSEmmanuel Vadot        mdss0_dsi1_phy: phy@ae96400 {
350*ae5de77eSEmmanuel Vadot            compatible = "qcom,sa8775p-dsi-phy-5nm";
351*ae5de77eSEmmanuel Vadot            reg = <0x0ae96400 0x200>,
352*ae5de77eSEmmanuel Vadot                  <0x0ae96600 0x280>,
353*ae5de77eSEmmanuel Vadot                  <0x0ae96900 0x27c>;
354*ae5de77eSEmmanuel Vadot            reg-names = "dsi_phy",
355*ae5de77eSEmmanuel Vadot                        "dsi_phy_lane",
356*ae5de77eSEmmanuel Vadot                        "dsi_pll";
357*ae5de77eSEmmanuel Vadot
358*ae5de77eSEmmanuel Vadot            #clock-cells = <1>;
359*ae5de77eSEmmanuel Vadot            #phy-cells = <0>;
360*ae5de77eSEmmanuel Vadot
361*ae5de77eSEmmanuel Vadot            clocks = <&dispcc_iface_clk>,
362*ae5de77eSEmmanuel Vadot                     <&rpmhcc_ref_clk>;
363*ae5de77eSEmmanuel Vadot            clock-names = "iface", "ref";
364*ae5de77eSEmmanuel Vadot
365*ae5de77eSEmmanuel Vadot            vdds-supply = <&vreg_dsi_supply>;
366*ae5de77eSEmmanuel Vadot        };
367*ae5de77eSEmmanuel Vadot
3685f62a964SEmmanuel Vadot        displayport-controller@af54000 {
3695f62a964SEmmanuel Vadot            compatible = "qcom,sa8775p-dp";
3705f62a964SEmmanuel Vadot
3715f62a964SEmmanuel Vadot            pinctrl-0 = <&dp_hot_plug_det>;
3725f62a964SEmmanuel Vadot            pinctrl-names = "default";
3735f62a964SEmmanuel Vadot
3745f62a964SEmmanuel Vadot            reg = <0xaf54000 0x104>,
3755f62a964SEmmanuel Vadot                  <0xaf54200 0x0c0>,
3765f62a964SEmmanuel Vadot                  <0xaf55000 0x770>,
3772846c905SEmmanuel Vadot                  <0xaf56000 0x09c>,
3782846c905SEmmanuel Vadot                  <0xaf57000 0x09c>;
3795f62a964SEmmanuel Vadot
3805f62a964SEmmanuel Vadot            interrupt-parent = <&mdss0>;
3815f62a964SEmmanuel Vadot            interrupts = <12>;
3825f62a964SEmmanuel Vadot
3835f62a964SEmmanuel Vadot            clocks = <&dispcc_mdss_ahb_clk>,
3845f62a964SEmmanuel Vadot                     <&dispcc_dptx0_aux_clk>,
3855f62a964SEmmanuel Vadot                     <&dispcc_dptx0_link_clk>,
3865f62a964SEmmanuel Vadot                     <&dispcc_dptx0_link_intf_clk>,
3875f62a964SEmmanuel Vadot                     <&dispcc_dptx0_pixel0_clk>;
3885f62a964SEmmanuel Vadot            clock-names = "core_iface",
3895f62a964SEmmanuel Vadot                          "core_aux",
3905f62a964SEmmanuel Vadot                          "ctrl_link",
3915f62a964SEmmanuel Vadot                          "ctrl_link_iface",
3925f62a964SEmmanuel Vadot                          "stream_pixel";
3935f62a964SEmmanuel Vadot
3945f62a964SEmmanuel Vadot            assigned-clocks = <&dispcc_mdss_dptx0_link_clk_src>,
3955f62a964SEmmanuel Vadot                              <&dispcc_mdss_dptx0_pixel0_clk_src>;
3968ccc0d23SEmmanuel Vadot            assigned-clock-parents = <&mdss0_dp0_phy 0>, <&mdss0_dp0_phy 1>;
3975f62a964SEmmanuel Vadot
3988ccc0d23SEmmanuel Vadot            phys = <&mdss0_dp0_phy>;
3995f62a964SEmmanuel Vadot            phy-names = "dp";
4005f62a964SEmmanuel Vadot
4015f62a964SEmmanuel Vadot            operating-points-v2 = <&dp_opp_table>;
4025f62a964SEmmanuel Vadot            power-domains = <&rpmhpd SA8775P_MMCX>;
4035f62a964SEmmanuel Vadot
4045f62a964SEmmanuel Vadot            #sound-dai-cells = <0>;
4055f62a964SEmmanuel Vadot
4065f62a964SEmmanuel Vadot            ports {
4075f62a964SEmmanuel Vadot                #address-cells = <1>;
4085f62a964SEmmanuel Vadot                #size-cells = <0>;
4095f62a964SEmmanuel Vadot
4105f62a964SEmmanuel Vadot                port@0 {
4115f62a964SEmmanuel Vadot                    reg = <0>;
4125f62a964SEmmanuel Vadot                    mdss0_dp0_in: endpoint {
4135f62a964SEmmanuel Vadot                        remote-endpoint = <&dpu_intf0_out>;
4145f62a964SEmmanuel Vadot                    };
4155f62a964SEmmanuel Vadot                };
4165f62a964SEmmanuel Vadot
4175f62a964SEmmanuel Vadot                port@1 {
4185f62a964SEmmanuel Vadot                    reg = <1>;
4195f62a964SEmmanuel Vadot                    mdss0_dp_out: endpoint { };
4205f62a964SEmmanuel Vadot                };
4215f62a964SEmmanuel Vadot            };
4225f62a964SEmmanuel Vadot
4235f62a964SEmmanuel Vadot            dp_opp_table: opp-table {
4245f62a964SEmmanuel Vadot                compatible = "operating-points-v2";
4255f62a964SEmmanuel Vadot
4265f62a964SEmmanuel Vadot                opp-160000000 {
4275f62a964SEmmanuel Vadot                    opp-hz = /bits/ 64 <160000000>;
4285f62a964SEmmanuel Vadot                    required-opps = <&rpmhpd_opp_low_svs>;
4295f62a964SEmmanuel Vadot                };
4305f62a964SEmmanuel Vadot
4315f62a964SEmmanuel Vadot                opp-270000000 {
4325f62a964SEmmanuel Vadot                    opp-hz = /bits/ 64 <270000000>;
4335f62a964SEmmanuel Vadot                    required-opps = <&rpmhpd_opp_svs>;
4345f62a964SEmmanuel Vadot                };
4355f62a964SEmmanuel Vadot
4365f62a964SEmmanuel Vadot                opp-540000000 {
4375f62a964SEmmanuel Vadot                    opp-hz = /bits/ 64 <540000000>;
4385f62a964SEmmanuel Vadot                    required-opps = <&rpmhpd_opp_svs_l1>;
4395f62a964SEmmanuel Vadot                };
4405f62a964SEmmanuel Vadot
4415f62a964SEmmanuel Vadot                opp-810000000 {
4425f62a964SEmmanuel Vadot                    opp-hz = /bits/ 64 <810000000>;
4435f62a964SEmmanuel Vadot                    required-opps = <&rpmhpd_opp_nom>;
4445f62a964SEmmanuel Vadot                };
4455f62a964SEmmanuel Vadot            };
4465f62a964SEmmanuel Vadot        };
4475f62a964SEmmanuel Vadot    };
4485f62a964SEmmanuel Vadot...
449