1*440b075bSKrzysztof Kozlowski# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 22abfd6a2SDmitry Baryshkov%YAML 1.2 32abfd6a2SDmitry Baryshkov--- 42abfd6a2SDmitry Baryshkov$id: http://devicetree.org/schemas/display/msm/qcom,sdm845-mdss.yaml# 52abfd6a2SDmitry Baryshkov$schema: http://devicetree.org/meta-schemas/core.yaml# 62abfd6a2SDmitry Baryshkov 72abfd6a2SDmitry Baryshkovtitle: Qualcomm SDM845 Display MDSS 82abfd6a2SDmitry Baryshkov 92abfd6a2SDmitry Baryshkovmaintainers: 102abfd6a2SDmitry Baryshkov - Krishna Manikandan <quic_mkrishn@quicinc.com> 112abfd6a2SDmitry Baryshkov 122abfd6a2SDmitry Baryshkovdescription: 132abfd6a2SDmitry Baryshkov Device tree bindings for MSM Mobile Display Subsystem(MDSS) that encapsulates 142abfd6a2SDmitry Baryshkov sub-blocks like DPU display controller, DSI and DP interfaces etc. Device tree 152abfd6a2SDmitry Baryshkov bindings of MDSS are mentioned for SDM845 target. 162abfd6a2SDmitry Baryshkov 172abfd6a2SDmitry Baryshkov$ref: /schemas/display/msm/mdss-common.yaml# 182abfd6a2SDmitry Baryshkov 192abfd6a2SDmitry Baryshkovproperties: 202abfd6a2SDmitry Baryshkov compatible: 217ad65866SKrzysztof Kozlowski const: qcom,sdm845-mdss 222abfd6a2SDmitry Baryshkov 232abfd6a2SDmitry Baryshkov clocks: 242abfd6a2SDmitry Baryshkov items: 252abfd6a2SDmitry Baryshkov - description: Display AHB clock from gcc 262abfd6a2SDmitry Baryshkov - description: Display core clock 272abfd6a2SDmitry Baryshkov 282abfd6a2SDmitry Baryshkov clock-names: 292abfd6a2SDmitry Baryshkov items: 302abfd6a2SDmitry Baryshkov - const: iface 312abfd6a2SDmitry Baryshkov - const: core 322abfd6a2SDmitry Baryshkov 332abfd6a2SDmitry Baryshkov iommus: 342abfd6a2SDmitry Baryshkov maxItems: 2 352abfd6a2SDmitry Baryshkov 362abfd6a2SDmitry Baryshkov interconnects: 372abfd6a2SDmitry Baryshkov maxItems: 2 382abfd6a2SDmitry Baryshkov 392abfd6a2SDmitry Baryshkov interconnect-names: 402abfd6a2SDmitry Baryshkov maxItems: 2 412abfd6a2SDmitry Baryshkov 422abfd6a2SDmitry BaryshkovpatternProperties: 432abfd6a2SDmitry Baryshkov "^display-controller@[0-9a-f]+$": 442abfd6a2SDmitry Baryshkov type: object 452abfd6a2SDmitry Baryshkov properties: 462abfd6a2SDmitry Baryshkov compatible: 472abfd6a2SDmitry Baryshkov const: qcom,sdm845-dpu 482abfd6a2SDmitry Baryshkov 49d2640778SDmitry Baryshkov "^displayport-controller@[0-9a-f]+$": 50d2640778SDmitry Baryshkov type: object 51d2640778SDmitry Baryshkov properties: 52d2640778SDmitry Baryshkov compatible: 53d2640778SDmitry Baryshkov const: qcom,sdm845-dp 54d2640778SDmitry Baryshkov 554b32e466SDmitry Baryshkov "^dsi@[0-9a-f]+$": 564b32e466SDmitry Baryshkov type: object 574b32e466SDmitry Baryshkov properties: 584b32e466SDmitry Baryshkov compatible: 590c0f65c6SBryan O'Donoghue items: 600c0f65c6SBryan O'Donoghue - const: qcom,sdm845-dsi-ctrl 610c0f65c6SBryan O'Donoghue - const: qcom,mdss-dsi-ctrl 624b32e466SDmitry Baryshkov 634b32e466SDmitry Baryshkov "^phy@[0-9a-f]+$": 644b32e466SDmitry Baryshkov type: object 654b32e466SDmitry Baryshkov properties: 664b32e466SDmitry Baryshkov compatible: 674b32e466SDmitry Baryshkov const: qcom,dsi-phy-10nm 684b32e466SDmitry Baryshkov 69e96150a6SDmitry Baryshkovrequired: 70e96150a6SDmitry Baryshkov - compatible 71e96150a6SDmitry Baryshkov 722abfd6a2SDmitry BaryshkovunevaluatedProperties: false 732abfd6a2SDmitry Baryshkov 742abfd6a2SDmitry Baryshkovexamples: 752abfd6a2SDmitry Baryshkov - | 762abfd6a2SDmitry Baryshkov #include <dt-bindings/clock/qcom,dispcc-sdm845.h> 772abfd6a2SDmitry Baryshkov #include <dt-bindings/clock/qcom,gcc-sdm845.h> 784b32e466SDmitry Baryshkov #include <dt-bindings/clock/qcom,rpmh.h> 792abfd6a2SDmitry Baryshkov #include <dt-bindings/interrupt-controller/arm-gic.h> 802abfd6a2SDmitry Baryshkov #include <dt-bindings/power/qcom-rpmpd.h> 812abfd6a2SDmitry Baryshkov 822abfd6a2SDmitry Baryshkov display-subsystem@ae00000 { 832abfd6a2SDmitry Baryshkov #address-cells = <1>; 842abfd6a2SDmitry Baryshkov #size-cells = <1>; 852abfd6a2SDmitry Baryshkov compatible = "qcom,sdm845-mdss"; 862abfd6a2SDmitry Baryshkov reg = <0x0ae00000 0x1000>; 872abfd6a2SDmitry Baryshkov reg-names = "mdss"; 882abfd6a2SDmitry Baryshkov power-domains = <&dispcc MDSS_GDSC>; 892abfd6a2SDmitry Baryshkov 902abfd6a2SDmitry Baryshkov clocks = <&gcc GCC_DISP_AHB_CLK>, 912abfd6a2SDmitry Baryshkov <&dispcc DISP_CC_MDSS_MDP_CLK>; 922abfd6a2SDmitry Baryshkov clock-names = "iface", "core"; 932abfd6a2SDmitry Baryshkov 942abfd6a2SDmitry Baryshkov interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>; 952abfd6a2SDmitry Baryshkov interrupt-controller; 962abfd6a2SDmitry Baryshkov #interrupt-cells = <1>; 972abfd6a2SDmitry Baryshkov 982abfd6a2SDmitry Baryshkov iommus = <&apps_smmu 0x880 0x8>, 992abfd6a2SDmitry Baryshkov <&apps_smmu 0xc80 0x8>; 1002abfd6a2SDmitry Baryshkov ranges; 1012abfd6a2SDmitry Baryshkov 1022abfd6a2SDmitry Baryshkov display-controller@ae01000 { 1032abfd6a2SDmitry Baryshkov compatible = "qcom,sdm845-dpu"; 1042abfd6a2SDmitry Baryshkov reg = <0x0ae01000 0x8f000>, 1052abfd6a2SDmitry Baryshkov <0x0aeb0000 0x2008>; 1062abfd6a2SDmitry Baryshkov reg-names = "mdp", "vbif"; 1072abfd6a2SDmitry Baryshkov 1082abfd6a2SDmitry Baryshkov clocks = <&gcc GCC_DISP_AXI_CLK>, 1092abfd6a2SDmitry Baryshkov <&dispcc DISP_CC_MDSS_AHB_CLK>, 1102abfd6a2SDmitry Baryshkov <&dispcc DISP_CC_MDSS_AXI_CLK>, 1112abfd6a2SDmitry Baryshkov <&dispcc DISP_CC_MDSS_MDP_CLK>, 1122abfd6a2SDmitry Baryshkov <&dispcc DISP_CC_MDSS_VSYNC_CLK>; 1132abfd6a2SDmitry Baryshkov clock-names = "gcc-bus", "iface", "bus", "core", "vsync"; 1142abfd6a2SDmitry Baryshkov 1152abfd6a2SDmitry Baryshkov interrupt-parent = <&mdss>; 1162abfd6a2SDmitry Baryshkov interrupts = <0>; 1172abfd6a2SDmitry Baryshkov power-domains = <&rpmhpd SDM845_CX>; 1182abfd6a2SDmitry Baryshkov operating-points-v2 = <&mdp_opp_table>; 1192abfd6a2SDmitry Baryshkov 1202abfd6a2SDmitry Baryshkov ports { 1212abfd6a2SDmitry Baryshkov #address-cells = <1>; 1222abfd6a2SDmitry Baryshkov #size-cells = <0>; 1232abfd6a2SDmitry Baryshkov 1242abfd6a2SDmitry Baryshkov port@0 { 1252abfd6a2SDmitry Baryshkov reg = <0>; 1262abfd6a2SDmitry Baryshkov dpu_intf1_out: endpoint { 1272abfd6a2SDmitry Baryshkov remote-endpoint = <&dsi0_in>; 1282abfd6a2SDmitry Baryshkov }; 1292abfd6a2SDmitry Baryshkov }; 1302abfd6a2SDmitry Baryshkov 1312abfd6a2SDmitry Baryshkov port@1 { 1322abfd6a2SDmitry Baryshkov reg = <1>; 1332abfd6a2SDmitry Baryshkov dpu_intf2_out: endpoint { 1342abfd6a2SDmitry Baryshkov remote-endpoint = <&dsi1_in>; 1352abfd6a2SDmitry Baryshkov }; 1362abfd6a2SDmitry Baryshkov }; 1372abfd6a2SDmitry Baryshkov }; 1382abfd6a2SDmitry Baryshkov }; 1394b32e466SDmitry Baryshkov 1404b32e466SDmitry Baryshkov dsi@ae94000 { 1410c0f65c6SBryan O'Donoghue compatible = "qcom,sdm845-dsi-ctrl", "qcom,mdss-dsi-ctrl"; 1424b32e466SDmitry Baryshkov reg = <0x0ae94000 0x400>; 1434b32e466SDmitry Baryshkov reg-names = "dsi_ctrl"; 1444b32e466SDmitry Baryshkov 1454b32e466SDmitry Baryshkov interrupt-parent = <&mdss>; 1464b32e466SDmitry Baryshkov interrupts = <4>; 1474b32e466SDmitry Baryshkov 1484b32e466SDmitry Baryshkov clocks = <&dispcc DISP_CC_MDSS_BYTE0_CLK>, 1494b32e466SDmitry Baryshkov <&dispcc DISP_CC_MDSS_BYTE0_INTF_CLK>, 1504b32e466SDmitry Baryshkov <&dispcc DISP_CC_MDSS_PCLK0_CLK>, 1514b32e466SDmitry Baryshkov <&dispcc DISP_CC_MDSS_ESC0_CLK>, 1524b32e466SDmitry Baryshkov <&dispcc DISP_CC_MDSS_AHB_CLK>, 1534b32e466SDmitry Baryshkov <&dispcc DISP_CC_MDSS_AXI_CLK>; 1544b32e466SDmitry Baryshkov clock-names = "byte", 1554b32e466SDmitry Baryshkov "byte_intf", 1564b32e466SDmitry Baryshkov "pixel", 1574b32e466SDmitry Baryshkov "core", 1584b32e466SDmitry Baryshkov "iface", 1594b32e466SDmitry Baryshkov "bus"; 1604b32e466SDmitry Baryshkov assigned-clocks = <&dispcc DISP_CC_MDSS_BYTE0_CLK_SRC>, 1614b32e466SDmitry Baryshkov <&dispcc DISP_CC_MDSS_PCLK0_CLK_SRC>; 1624b32e466SDmitry Baryshkov assigned-clock-parents = <&dsi0_phy 0>, <&dsi0_phy 1>; 1634b32e466SDmitry Baryshkov 1644b32e466SDmitry Baryshkov operating-points-v2 = <&dsi_opp_table>; 1654b32e466SDmitry Baryshkov power-domains = <&rpmhpd SDM845_CX>; 1664b32e466SDmitry Baryshkov 1674b32e466SDmitry Baryshkov phys = <&dsi0_phy>; 1684b32e466SDmitry Baryshkov phy-names = "dsi"; 1694b32e466SDmitry Baryshkov 1704b32e466SDmitry Baryshkov #address-cells = <1>; 1714b32e466SDmitry Baryshkov #size-cells = <0>; 1724b32e466SDmitry Baryshkov 1734b32e466SDmitry Baryshkov ports { 1744b32e466SDmitry Baryshkov #address-cells = <1>; 1754b32e466SDmitry Baryshkov #size-cells = <0>; 1764b32e466SDmitry Baryshkov 1774b32e466SDmitry Baryshkov port@0 { 1784b32e466SDmitry Baryshkov reg = <0>; 1794b32e466SDmitry Baryshkov dsi0_in: endpoint { 1804b32e466SDmitry Baryshkov remote-endpoint = <&dpu_intf1_out>; 1814b32e466SDmitry Baryshkov }; 1824b32e466SDmitry Baryshkov }; 1834b32e466SDmitry Baryshkov 1844b32e466SDmitry Baryshkov port@1 { 1854b32e466SDmitry Baryshkov reg = <1>; 1864b32e466SDmitry Baryshkov dsi0_out: endpoint { 1874b32e466SDmitry Baryshkov }; 1884b32e466SDmitry Baryshkov }; 1894b32e466SDmitry Baryshkov }; 1904b32e466SDmitry Baryshkov }; 1914b32e466SDmitry Baryshkov 1924b32e466SDmitry Baryshkov dsi0_phy: phy@ae94400 { 1934b32e466SDmitry Baryshkov compatible = "qcom,dsi-phy-10nm"; 1944b32e466SDmitry Baryshkov reg = <0x0ae94400 0x200>, 1954b32e466SDmitry Baryshkov <0x0ae94600 0x280>, 1964b32e466SDmitry Baryshkov <0x0ae94a00 0x1e0>; 1974b32e466SDmitry Baryshkov reg-names = "dsi_phy", 1984b32e466SDmitry Baryshkov "dsi_phy_lane", 1994b32e466SDmitry Baryshkov "dsi_pll"; 2004b32e466SDmitry Baryshkov 2014b32e466SDmitry Baryshkov #clock-cells = <1>; 2024b32e466SDmitry Baryshkov #phy-cells = <0>; 2034b32e466SDmitry Baryshkov 2044b32e466SDmitry Baryshkov clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>, 2054b32e466SDmitry Baryshkov <&rpmhcc RPMH_CXO_CLK>; 2064b32e466SDmitry Baryshkov clock-names = "iface", "ref"; 2074b32e466SDmitry Baryshkov vdds-supply = <&vreg_dsi_phy>; 2084b32e466SDmitry Baryshkov }; 2094b32e466SDmitry Baryshkov 2104b32e466SDmitry Baryshkov dsi@ae96000 { 2110c0f65c6SBryan O'Donoghue compatible = "qcom,sdm845-dsi-ctrl", "qcom,mdss-dsi-ctrl"; 2124b32e466SDmitry Baryshkov reg = <0x0ae96000 0x400>; 2134b32e466SDmitry Baryshkov reg-names = "dsi_ctrl"; 2144b32e466SDmitry Baryshkov 2154b32e466SDmitry Baryshkov interrupt-parent = <&mdss>; 2164b32e466SDmitry Baryshkov interrupts = <5>; 2174b32e466SDmitry Baryshkov 2184b32e466SDmitry Baryshkov clocks = <&dispcc DISP_CC_MDSS_BYTE1_CLK>, 2194b32e466SDmitry Baryshkov <&dispcc DISP_CC_MDSS_BYTE1_INTF_CLK>, 2204b32e466SDmitry Baryshkov <&dispcc DISP_CC_MDSS_PCLK1_CLK>, 2214b32e466SDmitry Baryshkov <&dispcc DISP_CC_MDSS_ESC1_CLK>, 2224b32e466SDmitry Baryshkov <&dispcc DISP_CC_MDSS_AHB_CLK>, 2234b32e466SDmitry Baryshkov <&dispcc DISP_CC_MDSS_AXI_CLK>; 2244b32e466SDmitry Baryshkov clock-names = "byte", 2254b32e466SDmitry Baryshkov "byte_intf", 2264b32e466SDmitry Baryshkov "pixel", 2274b32e466SDmitry Baryshkov "core", 2284b32e466SDmitry Baryshkov "iface", 2294b32e466SDmitry Baryshkov "bus"; 2304b32e466SDmitry Baryshkov assigned-clocks = <&dispcc DISP_CC_MDSS_BYTE1_CLK_SRC>, 2314b32e466SDmitry Baryshkov <&dispcc DISP_CC_MDSS_PCLK1_CLK_SRC>; 2324b32e466SDmitry Baryshkov assigned-clock-parents = <&dsi1_phy 0>, <&dsi1_phy 1>; 2334b32e466SDmitry Baryshkov 2344b32e466SDmitry Baryshkov operating-points-v2 = <&dsi_opp_table>; 2354b32e466SDmitry Baryshkov power-domains = <&rpmhpd SDM845_CX>; 2364b32e466SDmitry Baryshkov 2374b32e466SDmitry Baryshkov phys = <&dsi1_phy>; 2384b32e466SDmitry Baryshkov phy-names = "dsi"; 2394b32e466SDmitry Baryshkov 2404b32e466SDmitry Baryshkov #address-cells = <1>; 2414b32e466SDmitry Baryshkov #size-cells = <0>; 2424b32e466SDmitry Baryshkov 2434b32e466SDmitry Baryshkov ports { 2444b32e466SDmitry Baryshkov #address-cells = <1>; 2454b32e466SDmitry Baryshkov #size-cells = <0>; 2464b32e466SDmitry Baryshkov 2474b32e466SDmitry Baryshkov port@0 { 2484b32e466SDmitry Baryshkov reg = <0>; 2494b32e466SDmitry Baryshkov dsi1_in: endpoint { 2504b32e466SDmitry Baryshkov remote-endpoint = <&dpu_intf2_out>; 2514b32e466SDmitry Baryshkov }; 2524b32e466SDmitry Baryshkov }; 2534b32e466SDmitry Baryshkov 2544b32e466SDmitry Baryshkov port@1 { 2554b32e466SDmitry Baryshkov reg = <1>; 2564b32e466SDmitry Baryshkov dsi1_out: endpoint { 2574b32e466SDmitry Baryshkov }; 2584b32e466SDmitry Baryshkov }; 2594b32e466SDmitry Baryshkov }; 2604b32e466SDmitry Baryshkov }; 2614b32e466SDmitry Baryshkov 2624b32e466SDmitry Baryshkov dsi1_phy: phy@ae96400 { 2634b32e466SDmitry Baryshkov compatible = "qcom,dsi-phy-10nm"; 2644b32e466SDmitry Baryshkov reg = <0x0ae96400 0x200>, 2654b32e466SDmitry Baryshkov <0x0ae96600 0x280>, 2664b32e466SDmitry Baryshkov <0x0ae96a00 0x10e>; 2674b32e466SDmitry Baryshkov reg-names = "dsi_phy", 2684b32e466SDmitry Baryshkov "dsi_phy_lane", 2694b32e466SDmitry Baryshkov "dsi_pll"; 2704b32e466SDmitry Baryshkov 2714b32e466SDmitry Baryshkov #clock-cells = <1>; 2724b32e466SDmitry Baryshkov #phy-cells = <0>; 2734b32e466SDmitry Baryshkov 2744b32e466SDmitry Baryshkov clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>, 2754b32e466SDmitry Baryshkov <&rpmhcc RPMH_CXO_CLK>; 2764b32e466SDmitry Baryshkov clock-names = "iface", "ref"; 2774b32e466SDmitry Baryshkov vdds-supply = <&vreg_dsi_phy>; 2784b32e466SDmitry Baryshkov }; 2792abfd6a2SDmitry Baryshkov }; 2802abfd6a2SDmitry Baryshkov... 281