xref: /freebsd/sys/contrib/device-tree/Bindings/display/msm/qcom,sa8775p-mdss.yaml (revision 2846c90520eb4cc74e24d586a0ea0f4a0006bc73)
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
555f62a964SEmmanuel Vadotrequired:
565f62a964SEmmanuel Vadot  - compatible
575f62a964SEmmanuel Vadot
585f62a964SEmmanuel VadotunevaluatedProperties: false
595f62a964SEmmanuel Vadot
605f62a964SEmmanuel Vadotexamples:
615f62a964SEmmanuel Vadot  - |
625f62a964SEmmanuel Vadot    #include <dt-bindings/interconnect/qcom,icc.h>
635f62a964SEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
645f62a964SEmmanuel Vadot    #include <dt-bindings/clock/qcom,sa8775p-gcc.h>
655f62a964SEmmanuel Vadot    #include <dt-bindings/interconnect/qcom,sa8775p-rpmh.h>
665f62a964SEmmanuel Vadot    #include <dt-bindings/power/qcom,rpmhpd.h>
675f62a964SEmmanuel Vadot    #include <dt-bindings/power/qcom-rpmpd.h>
685f62a964SEmmanuel Vadot
695f62a964SEmmanuel Vadot    display-subsystem@ae00000 {
705f62a964SEmmanuel Vadot        compatible = "qcom,sa8775p-mdss";
715f62a964SEmmanuel Vadot        reg = <0x0ae00000 0x1000>;
725f62a964SEmmanuel Vadot        reg-names = "mdss";
735f62a964SEmmanuel Vadot
745f62a964SEmmanuel Vadot        interconnects = <&mmss_noc MASTER_MDP0 &mc_virt SLAVE_EBI1>,
755f62a964SEmmanuel Vadot                        <&mmss_noc MASTER_MDP1 &mc_virt SLAVE_EBI1>,
765f62a964SEmmanuel Vadot                        <&gem_noc MASTER_APPSS_PROC &config_noc SLAVE_DISPLAY_CFG>;
775f62a964SEmmanuel Vadot        interconnect-names = "mdp0-mem",
785f62a964SEmmanuel Vadot                             "mdp1-mem",
795f62a964SEmmanuel Vadot                             "cpu-cfg";
805f62a964SEmmanuel Vadot
815f62a964SEmmanuel Vadot        resets = <&dispcc_core_bcr>;
825f62a964SEmmanuel Vadot        power-domains = <&dispcc_gdsc>;
835f62a964SEmmanuel Vadot
845f62a964SEmmanuel Vadot        clocks = <&dispcc_ahb_clk>,
855f62a964SEmmanuel Vadot                 <&gcc GCC_DISP_HF_AXI_CLK>,
865f62a964SEmmanuel Vadot                 <&dispcc_mdp_clk>;
875f62a964SEmmanuel Vadot
885f62a964SEmmanuel Vadot        interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>;
895f62a964SEmmanuel Vadot        interrupt-controller;
905f62a964SEmmanuel Vadot        #interrupt-cells = <1>;
915f62a964SEmmanuel Vadot
925f62a964SEmmanuel Vadot        iommus = <&apps_smmu 0x1000 0x402>;
935f62a964SEmmanuel Vadot
945f62a964SEmmanuel Vadot        #address-cells = <1>;
955f62a964SEmmanuel Vadot        #size-cells = <1>;
965f62a964SEmmanuel Vadot        ranges;
975f62a964SEmmanuel Vadot
985f62a964SEmmanuel Vadot        display-controller@ae01000 {
995f62a964SEmmanuel Vadot            compatible = "qcom,sa8775p-dpu";
1005f62a964SEmmanuel Vadot            reg = <0x0ae01000 0x8f000>,
1015f62a964SEmmanuel Vadot                  <0x0aeb0000 0x2008>;
1025f62a964SEmmanuel Vadot            reg-names = "mdp", "vbif";
1035f62a964SEmmanuel Vadot
1045f62a964SEmmanuel Vadot            clocks = <&gcc GCC_DISP_HF_AXI_CLK>,
1055f62a964SEmmanuel Vadot                     <&dispcc_ahb_clk>,
1065f62a964SEmmanuel Vadot                     <&dispcc_mdp_lut_clk>,
1075f62a964SEmmanuel Vadot                     <&dispcc_mdp_clk>,
1085f62a964SEmmanuel Vadot                     <&dispcc_mdp_vsync_clk>;
1095f62a964SEmmanuel Vadot            clock-names = "nrt_bus",
1105f62a964SEmmanuel Vadot                          "iface",
1115f62a964SEmmanuel Vadot                          "lut",
1125f62a964SEmmanuel Vadot                          "core",
1135f62a964SEmmanuel Vadot                          "vsync";
1145f62a964SEmmanuel Vadot
1155f62a964SEmmanuel Vadot            assigned-clocks = <&dispcc_mdp_vsync_clk>;
1165f62a964SEmmanuel Vadot            assigned-clock-rates = <19200000>;
1175f62a964SEmmanuel Vadot
1185f62a964SEmmanuel Vadot            operating-points-v2 = <&mdss0_mdp_opp_table>;
1195f62a964SEmmanuel Vadot            power-domains = <&rpmhpd RPMHPD_MMCX>;
1205f62a964SEmmanuel Vadot
1215f62a964SEmmanuel Vadot            interrupt-parent = <&mdss0>;
1225f62a964SEmmanuel Vadot            interrupts = <0>;
1235f62a964SEmmanuel Vadot
1245f62a964SEmmanuel Vadot            ports {
1255f62a964SEmmanuel Vadot                #address-cells = <1>;
1265f62a964SEmmanuel Vadot                #size-cells = <0>;
1275f62a964SEmmanuel Vadot
1285f62a964SEmmanuel Vadot                port@0 {
1295f62a964SEmmanuel Vadot                    reg = <0>;
1305f62a964SEmmanuel Vadot                    dpu_intf0_out: endpoint {
1315f62a964SEmmanuel Vadot                        remote-endpoint = <&mdss0_dp0_in>;
1325f62a964SEmmanuel Vadot                    };
1335f62a964SEmmanuel Vadot                };
1345f62a964SEmmanuel Vadot            };
1355f62a964SEmmanuel Vadot
1365f62a964SEmmanuel Vadot            mdss0_mdp_opp_table: opp-table {
1375f62a964SEmmanuel Vadot                compatible = "operating-points-v2";
1385f62a964SEmmanuel Vadot
1395f62a964SEmmanuel Vadot                opp-375000000 {
1405f62a964SEmmanuel Vadot                    opp-hz = /bits/ 64 <375000000>;
1415f62a964SEmmanuel Vadot                    required-opps = <&rpmhpd_opp_svs_l1>;
1425f62a964SEmmanuel Vadot                };
1435f62a964SEmmanuel Vadot
1445f62a964SEmmanuel Vadot                opp-500000000 {
1455f62a964SEmmanuel Vadot                    opp-hz = /bits/ 64 <500000000>;
1465f62a964SEmmanuel Vadot                    required-opps = <&rpmhpd_opp_nom>;
1475f62a964SEmmanuel Vadot                };
1485f62a964SEmmanuel Vadot
1495f62a964SEmmanuel Vadot                opp-575000000 {
1505f62a964SEmmanuel Vadot                    opp-hz = /bits/ 64 <575000000>;
1515f62a964SEmmanuel Vadot                    required-opps = <&rpmhpd_opp_turbo>;
1525f62a964SEmmanuel Vadot                };
1535f62a964SEmmanuel Vadot
1545f62a964SEmmanuel Vadot                opp-650000000 {
1555f62a964SEmmanuel Vadot                    opp-hz = /bits/ 64 <650000000>;
1565f62a964SEmmanuel Vadot                    required-opps = <&rpmhpd_opp_turbo_l1>;
1575f62a964SEmmanuel Vadot                };
1585f62a964SEmmanuel Vadot            };
1595f62a964SEmmanuel Vadot        };
1605f62a964SEmmanuel Vadot
1615f62a964SEmmanuel Vadot        displayport-controller@af54000 {
1625f62a964SEmmanuel Vadot            compatible = "qcom,sa8775p-dp";
1635f62a964SEmmanuel Vadot
1645f62a964SEmmanuel Vadot            pinctrl-0 = <&dp_hot_plug_det>;
1655f62a964SEmmanuel Vadot            pinctrl-names = "default";
1665f62a964SEmmanuel Vadot
1675f62a964SEmmanuel Vadot            reg = <0xaf54000 0x104>,
1685f62a964SEmmanuel Vadot                  <0xaf54200 0x0c0>,
1695f62a964SEmmanuel Vadot                  <0xaf55000 0x770>,
170*2846c905SEmmanuel Vadot                  <0xaf56000 0x09c>,
171*2846c905SEmmanuel Vadot                  <0xaf57000 0x09c>;
1725f62a964SEmmanuel Vadot
1735f62a964SEmmanuel Vadot            interrupt-parent = <&mdss0>;
1745f62a964SEmmanuel Vadot            interrupts = <12>;
1755f62a964SEmmanuel Vadot
1765f62a964SEmmanuel Vadot            clocks = <&dispcc_mdss_ahb_clk>,
1775f62a964SEmmanuel Vadot                     <&dispcc_dptx0_aux_clk>,
1785f62a964SEmmanuel Vadot                     <&dispcc_dptx0_link_clk>,
1795f62a964SEmmanuel Vadot                     <&dispcc_dptx0_link_intf_clk>,
1805f62a964SEmmanuel Vadot                     <&dispcc_dptx0_pixel0_clk>;
1815f62a964SEmmanuel Vadot            clock-names = "core_iface",
1825f62a964SEmmanuel Vadot                          "core_aux",
1835f62a964SEmmanuel Vadot                          "ctrl_link",
1845f62a964SEmmanuel Vadot                          "ctrl_link_iface",
1855f62a964SEmmanuel Vadot                          "stream_pixel";
1865f62a964SEmmanuel Vadot
1875f62a964SEmmanuel Vadot            assigned-clocks = <&dispcc_mdss_dptx0_link_clk_src>,
1885f62a964SEmmanuel Vadot                              <&dispcc_mdss_dptx0_pixel0_clk_src>;
1895f62a964SEmmanuel Vadot            assigned-clock-parents = <&mdss0_edp_phy 0>, <&mdss0_edp_phy 1>;
1905f62a964SEmmanuel Vadot
1915f62a964SEmmanuel Vadot            phys = <&mdss0_edp_phy>;
1925f62a964SEmmanuel Vadot            phy-names = "dp";
1935f62a964SEmmanuel Vadot
1945f62a964SEmmanuel Vadot            operating-points-v2 = <&dp_opp_table>;
1955f62a964SEmmanuel Vadot            power-domains = <&rpmhpd SA8775P_MMCX>;
1965f62a964SEmmanuel Vadot
1975f62a964SEmmanuel Vadot            #sound-dai-cells = <0>;
1985f62a964SEmmanuel Vadot
1995f62a964SEmmanuel Vadot            ports {
2005f62a964SEmmanuel Vadot                #address-cells = <1>;
2015f62a964SEmmanuel Vadot                #size-cells = <0>;
2025f62a964SEmmanuel Vadot
2035f62a964SEmmanuel Vadot                port@0 {
2045f62a964SEmmanuel Vadot                    reg = <0>;
2055f62a964SEmmanuel Vadot                    mdss0_dp0_in: endpoint {
2065f62a964SEmmanuel Vadot                        remote-endpoint = <&dpu_intf0_out>;
2075f62a964SEmmanuel Vadot                    };
2085f62a964SEmmanuel Vadot                };
2095f62a964SEmmanuel Vadot
2105f62a964SEmmanuel Vadot                port@1 {
2115f62a964SEmmanuel Vadot                    reg = <1>;
2125f62a964SEmmanuel Vadot                    mdss0_dp_out: endpoint { };
2135f62a964SEmmanuel Vadot                };
2145f62a964SEmmanuel Vadot            };
2155f62a964SEmmanuel Vadot
2165f62a964SEmmanuel Vadot            dp_opp_table: opp-table {
2175f62a964SEmmanuel Vadot                compatible = "operating-points-v2";
2185f62a964SEmmanuel Vadot
2195f62a964SEmmanuel Vadot                opp-160000000 {
2205f62a964SEmmanuel Vadot                    opp-hz = /bits/ 64 <160000000>;
2215f62a964SEmmanuel Vadot                    required-opps = <&rpmhpd_opp_low_svs>;
2225f62a964SEmmanuel Vadot                };
2235f62a964SEmmanuel Vadot
2245f62a964SEmmanuel Vadot                opp-270000000 {
2255f62a964SEmmanuel Vadot                    opp-hz = /bits/ 64 <270000000>;
2265f62a964SEmmanuel Vadot                    required-opps = <&rpmhpd_opp_svs>;
2275f62a964SEmmanuel Vadot                };
2285f62a964SEmmanuel Vadot
2295f62a964SEmmanuel Vadot                opp-540000000 {
2305f62a964SEmmanuel Vadot                    opp-hz = /bits/ 64 <540000000>;
2315f62a964SEmmanuel Vadot                    required-opps = <&rpmhpd_opp_svs_l1>;
2325f62a964SEmmanuel Vadot                };
2335f62a964SEmmanuel Vadot
2345f62a964SEmmanuel Vadot                opp-810000000 {
2355f62a964SEmmanuel Vadot                    opp-hz = /bits/ 64 <810000000>;
2365f62a964SEmmanuel Vadot                    required-opps = <&rpmhpd_opp_nom>;
2375f62a964SEmmanuel Vadot                };
2385f62a964SEmmanuel Vadot            };
2395f62a964SEmmanuel Vadot        };
2405f62a964SEmmanuel Vadot    };
2415f62a964SEmmanuel Vadot...
242