1*440b075bSKrzysztof Kozlowski# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 29410872fSDmitry Baryshkov%YAML 1.2 39410872fSDmitry Baryshkov--- 49410872fSDmitry Baryshkov$id: http://devicetree.org/schemas/display/msm/qcom,msm8998-mdss.yaml# 59410872fSDmitry Baryshkov$schema: http://devicetree.org/meta-schemas/core.yaml# 69410872fSDmitry Baryshkov 79410872fSDmitry Baryshkovtitle: Qualcomm MSM8998 Display MDSS 89410872fSDmitry Baryshkov 99410872fSDmitry Baryshkovmaintainers: 109410872fSDmitry Baryshkov - AngeloGioacchino Del Regno <angelogioacchino.delregno@somainline.org> 119410872fSDmitry Baryshkov 129410872fSDmitry Baryshkovdescription: 139410872fSDmitry Baryshkov Device tree bindings for MSM Mobile Display Subsystem(MDSS) that encapsulates 149410872fSDmitry Baryshkov sub-blocks like DPU display controller, DSI and DP interfaces etc. Device tree 159410872fSDmitry Baryshkov bindings of MDSS are mentioned for MSM8998 target. 169410872fSDmitry Baryshkov 179410872fSDmitry Baryshkov$ref: /schemas/display/msm/mdss-common.yaml# 189410872fSDmitry Baryshkov 199410872fSDmitry Baryshkovproperties: 209410872fSDmitry Baryshkov compatible: 217ad65866SKrzysztof Kozlowski const: qcom,msm8998-mdss 229410872fSDmitry Baryshkov 239410872fSDmitry Baryshkov clocks: 249410872fSDmitry Baryshkov items: 259410872fSDmitry Baryshkov - description: Display AHB clock 269410872fSDmitry Baryshkov - description: Display AXI clock 279410872fSDmitry Baryshkov - description: Display core clock 289410872fSDmitry Baryshkov 299410872fSDmitry Baryshkov clock-names: 309410872fSDmitry Baryshkov items: 319410872fSDmitry Baryshkov - const: iface 329410872fSDmitry Baryshkov - const: bus 339410872fSDmitry Baryshkov - const: core 349410872fSDmitry Baryshkov 359410872fSDmitry Baryshkov iommus: 369410872fSDmitry Baryshkov maxItems: 1 379410872fSDmitry Baryshkov 389410872fSDmitry BaryshkovpatternProperties: 399410872fSDmitry Baryshkov "^display-controller@[0-9a-f]+$": 409410872fSDmitry Baryshkov type: object 419410872fSDmitry Baryshkov properties: 429410872fSDmitry Baryshkov compatible: 439410872fSDmitry Baryshkov const: qcom,msm8998-dpu 449410872fSDmitry Baryshkov 454b32e466SDmitry Baryshkov "^dsi@[0-9a-f]+$": 464b32e466SDmitry Baryshkov type: object 474b32e466SDmitry Baryshkov properties: 484b32e466SDmitry Baryshkov compatible: 490c0f65c6SBryan O'Donoghue items: 500c0f65c6SBryan O'Donoghue - const: qcom,msm8998-dsi-ctrl 510c0f65c6SBryan O'Donoghue - const: qcom,mdss-dsi-ctrl 524b32e466SDmitry Baryshkov 534b32e466SDmitry Baryshkov "^phy@[0-9a-f]+$": 544b32e466SDmitry Baryshkov type: object 554b32e466SDmitry Baryshkov properties: 564b32e466SDmitry Baryshkov compatible: 574b32e466SDmitry Baryshkov const: qcom,dsi-phy-10nm-8998 584b32e466SDmitry Baryshkov 59e96150a6SDmitry Baryshkovrequired: 60e96150a6SDmitry Baryshkov - compatible 61e96150a6SDmitry Baryshkov 629410872fSDmitry BaryshkovunevaluatedProperties: false 639410872fSDmitry Baryshkov 649410872fSDmitry Baryshkovexamples: 659410872fSDmitry Baryshkov - | 669410872fSDmitry Baryshkov #include <dt-bindings/clock/qcom,mmcc-msm8998.h> 674b32e466SDmitry Baryshkov #include <dt-bindings/clock/qcom,rpmcc.h> 689410872fSDmitry Baryshkov #include <dt-bindings/interrupt-controller/arm-gic.h> 699410872fSDmitry Baryshkov #include <dt-bindings/power/qcom-rpmpd.h> 709410872fSDmitry Baryshkov 719410872fSDmitry Baryshkov display-subsystem@c900000 { 729410872fSDmitry Baryshkov compatible = "qcom,msm8998-mdss"; 739410872fSDmitry Baryshkov reg = <0x0c900000 0x1000>; 749410872fSDmitry Baryshkov reg-names = "mdss"; 759410872fSDmitry Baryshkov 769410872fSDmitry Baryshkov clocks = <&mmcc MDSS_AHB_CLK>, 779410872fSDmitry Baryshkov <&mmcc MDSS_AXI_CLK>, 789410872fSDmitry Baryshkov <&mmcc MDSS_MDP_CLK>; 799410872fSDmitry Baryshkov clock-names = "iface", "bus", "core"; 809410872fSDmitry Baryshkov 819410872fSDmitry Baryshkov #address-cells = <1>; 829410872fSDmitry Baryshkov #interrupt-cells = <1>; 839410872fSDmitry Baryshkov #size-cells = <1>; 849410872fSDmitry Baryshkov 859410872fSDmitry Baryshkov interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>; 869410872fSDmitry Baryshkov interrupt-controller; 879410872fSDmitry Baryshkov iommus = <&mmss_smmu 0>; 889410872fSDmitry Baryshkov 899410872fSDmitry Baryshkov power-domains = <&mmcc MDSS_GDSC>; 909410872fSDmitry Baryshkov ranges; 919410872fSDmitry Baryshkov 929410872fSDmitry Baryshkov display-controller@c901000 { 939410872fSDmitry Baryshkov compatible = "qcom,msm8998-dpu"; 949410872fSDmitry Baryshkov reg = <0x0c901000 0x8f000>, 959410872fSDmitry Baryshkov <0x0c9a8e00 0xf0>, 969410872fSDmitry Baryshkov <0x0c9b0000 0x2008>, 979410872fSDmitry Baryshkov <0x0c9b8000 0x1040>; 989410872fSDmitry Baryshkov reg-names = "mdp", "regdma", "vbif", "vbif_nrt"; 999410872fSDmitry Baryshkov 1009410872fSDmitry Baryshkov clocks = <&mmcc MDSS_AHB_CLK>, 1019410872fSDmitry Baryshkov <&mmcc MDSS_AXI_CLK>, 1029410872fSDmitry Baryshkov <&mmcc MNOC_AHB_CLK>, 1039410872fSDmitry Baryshkov <&mmcc MDSS_MDP_CLK>, 1049410872fSDmitry Baryshkov <&mmcc MDSS_VSYNC_CLK>; 1059410872fSDmitry Baryshkov clock-names = "iface", "bus", "mnoc", "core", "vsync"; 1069410872fSDmitry Baryshkov 1079410872fSDmitry Baryshkov interrupt-parent = <&mdss>; 1089410872fSDmitry Baryshkov interrupts = <0>; 1099410872fSDmitry Baryshkov operating-points-v2 = <&mdp_opp_table>; 1109410872fSDmitry Baryshkov power-domains = <&rpmpd MSM8998_VDDMX>; 1119410872fSDmitry Baryshkov 1129410872fSDmitry Baryshkov ports { 1139410872fSDmitry Baryshkov #address-cells = <1>; 1149410872fSDmitry Baryshkov #size-cells = <0>; 1159410872fSDmitry Baryshkov 1169410872fSDmitry Baryshkov port@0 { 1179410872fSDmitry Baryshkov reg = <0>; 1189410872fSDmitry Baryshkov dpu_intf1_out: endpoint { 1199410872fSDmitry Baryshkov remote-endpoint = <&dsi0_in>; 1209410872fSDmitry Baryshkov }; 1219410872fSDmitry Baryshkov }; 1229410872fSDmitry Baryshkov 1239410872fSDmitry Baryshkov port@1 { 1249410872fSDmitry Baryshkov reg = <1>; 1259410872fSDmitry Baryshkov dpu_intf2_out: endpoint { 1269410872fSDmitry Baryshkov remote-endpoint = <&dsi1_in>; 1279410872fSDmitry Baryshkov }; 1289410872fSDmitry Baryshkov }; 1299410872fSDmitry Baryshkov }; 1309410872fSDmitry Baryshkov }; 1314b32e466SDmitry Baryshkov 1324b32e466SDmitry Baryshkov dsi@c994000 { 1330c0f65c6SBryan O'Donoghue compatible = "qcom,msm8998-dsi-ctrl", "qcom,mdss-dsi-ctrl"; 1344b32e466SDmitry Baryshkov reg = <0x0c994000 0x400>; 1354b32e466SDmitry Baryshkov reg-names = "dsi_ctrl"; 1364b32e466SDmitry Baryshkov 1374b32e466SDmitry Baryshkov interrupt-parent = <&mdss>; 1384b32e466SDmitry Baryshkov interrupts = <4>; 1394b32e466SDmitry Baryshkov 1404b32e466SDmitry Baryshkov clocks = <&mmcc MDSS_BYTE0_CLK>, 1414b32e466SDmitry Baryshkov <&mmcc MDSS_BYTE0_INTF_CLK>, 1424b32e466SDmitry Baryshkov <&mmcc MDSS_PCLK0_CLK>, 1434b32e466SDmitry Baryshkov <&mmcc MDSS_ESC0_CLK>, 1444b32e466SDmitry Baryshkov <&mmcc MDSS_AHB_CLK>, 1454b32e466SDmitry Baryshkov <&mmcc MDSS_AXI_CLK>; 1464b32e466SDmitry Baryshkov clock-names = "byte", 1474b32e466SDmitry Baryshkov "byte_intf", 1484b32e466SDmitry Baryshkov "pixel", 1494b32e466SDmitry Baryshkov "core", 1504b32e466SDmitry Baryshkov "iface", 1514b32e466SDmitry Baryshkov "bus"; 1524b32e466SDmitry Baryshkov assigned-clocks = <&mmcc BYTE0_CLK_SRC>, <&mmcc PCLK0_CLK_SRC>; 1534b32e466SDmitry Baryshkov assigned-clock-parents = <&dsi0_phy 0>, <&dsi0_phy 1>; 1544b32e466SDmitry Baryshkov 1554b32e466SDmitry Baryshkov operating-points-v2 = <&dsi_opp_table>; 1564b32e466SDmitry Baryshkov power-domains = <&rpmpd MSM8998_VDDCX>; 1574b32e466SDmitry Baryshkov 1584b32e466SDmitry Baryshkov phys = <&dsi0_phy>; 1594b32e466SDmitry Baryshkov phy-names = "dsi"; 1604b32e466SDmitry Baryshkov 1614b32e466SDmitry Baryshkov #address-cells = <1>; 1624b32e466SDmitry Baryshkov #size-cells = <0>; 1634b32e466SDmitry Baryshkov 1644b32e466SDmitry Baryshkov ports { 1654b32e466SDmitry Baryshkov #address-cells = <1>; 1664b32e466SDmitry Baryshkov #size-cells = <0>; 1674b32e466SDmitry Baryshkov 1684b32e466SDmitry Baryshkov port@0 { 1694b32e466SDmitry Baryshkov reg = <0>; 1704b32e466SDmitry Baryshkov dsi0_in: endpoint { 1714b32e466SDmitry Baryshkov remote-endpoint = <&dpu_intf1_out>; 1724b32e466SDmitry Baryshkov }; 1734b32e466SDmitry Baryshkov }; 1744b32e466SDmitry Baryshkov 1754b32e466SDmitry Baryshkov port@1 { 1764b32e466SDmitry Baryshkov reg = <1>; 1774b32e466SDmitry Baryshkov dsi0_out: endpoint { 1784b32e466SDmitry Baryshkov }; 1794b32e466SDmitry Baryshkov }; 1804b32e466SDmitry Baryshkov }; 1814b32e466SDmitry Baryshkov }; 1824b32e466SDmitry Baryshkov 1834b32e466SDmitry Baryshkov dsi0_phy: phy@c994400 { 1844b32e466SDmitry Baryshkov compatible = "qcom,dsi-phy-10nm-8998"; 1854b32e466SDmitry Baryshkov reg = <0x0c994400 0x200>, 1864b32e466SDmitry Baryshkov <0x0c994600 0x280>, 1874b32e466SDmitry Baryshkov <0x0c994a00 0x1e0>; 1884b32e466SDmitry Baryshkov reg-names = "dsi_phy", 1894b32e466SDmitry Baryshkov "dsi_phy_lane", 1904b32e466SDmitry Baryshkov "dsi_pll"; 1914b32e466SDmitry Baryshkov 1924b32e466SDmitry Baryshkov #clock-cells = <1>; 1934b32e466SDmitry Baryshkov #phy-cells = <0>; 1944b32e466SDmitry Baryshkov 1954b32e466SDmitry Baryshkov clocks = <&mmcc MDSS_AHB_CLK>, 1964b32e466SDmitry Baryshkov <&rpmcc RPM_SMD_XO_CLK_SRC>; 1974b32e466SDmitry Baryshkov clock-names = "iface", "ref"; 1984b32e466SDmitry Baryshkov 1994b32e466SDmitry Baryshkov vdds-supply = <&pm8998_l1>; 2004b32e466SDmitry Baryshkov }; 2014b32e466SDmitry Baryshkov 2024b32e466SDmitry Baryshkov dsi@c996000 { 2030c0f65c6SBryan O'Donoghue compatible = "qcom,msm8998-dsi-ctrl", "qcom,mdss-dsi-ctrl"; 2044b32e466SDmitry Baryshkov reg = <0x0c996000 0x400>; 2054b32e466SDmitry Baryshkov reg-names = "dsi_ctrl"; 2064b32e466SDmitry Baryshkov 2074b32e466SDmitry Baryshkov interrupt-parent = <&mdss>; 2084b32e466SDmitry Baryshkov interrupts = <5>; 2094b32e466SDmitry Baryshkov 2104b32e466SDmitry Baryshkov clocks = <&mmcc MDSS_BYTE1_CLK>, 2114b32e466SDmitry Baryshkov <&mmcc MDSS_BYTE1_INTF_CLK>, 2124b32e466SDmitry Baryshkov <&mmcc MDSS_PCLK1_CLK>, 2134b32e466SDmitry Baryshkov <&mmcc MDSS_ESC1_CLK>, 2144b32e466SDmitry Baryshkov <&mmcc MDSS_AHB_CLK>, 2154b32e466SDmitry Baryshkov <&mmcc MDSS_AXI_CLK>; 2164b32e466SDmitry Baryshkov clock-names = "byte", 2174b32e466SDmitry Baryshkov "byte_intf", 2184b32e466SDmitry Baryshkov "pixel", 2194b32e466SDmitry Baryshkov "core", 2204b32e466SDmitry Baryshkov "iface", 2214b32e466SDmitry Baryshkov "bus"; 2224b32e466SDmitry Baryshkov assigned-clocks = <&mmcc BYTE1_CLK_SRC>, <&mmcc PCLK1_CLK_SRC>; 2234b32e466SDmitry Baryshkov assigned-clock-parents = <&dsi1_phy 0>, <&dsi1_phy 1>; 2244b32e466SDmitry Baryshkov 2254b32e466SDmitry Baryshkov operating-points-v2 = <&dsi_opp_table>; 2264b32e466SDmitry Baryshkov power-domains = <&rpmpd MSM8998_VDDCX>; 2274b32e466SDmitry Baryshkov 2284b32e466SDmitry Baryshkov phys = <&dsi1_phy>; 2294b32e466SDmitry Baryshkov phy-names = "dsi"; 2304b32e466SDmitry Baryshkov 2314b32e466SDmitry Baryshkov #address-cells = <1>; 2324b32e466SDmitry Baryshkov #size-cells = <0>; 2334b32e466SDmitry Baryshkov 2344b32e466SDmitry Baryshkov ports { 2354b32e466SDmitry Baryshkov #address-cells = <1>; 2364b32e466SDmitry Baryshkov #size-cells = <0>; 2374b32e466SDmitry Baryshkov 2384b32e466SDmitry Baryshkov port@0 { 2394b32e466SDmitry Baryshkov reg = <0>; 2404b32e466SDmitry Baryshkov dsi1_in: endpoint { 2414b32e466SDmitry Baryshkov remote-endpoint = <&dpu_intf2_out>; 2424b32e466SDmitry Baryshkov }; 2434b32e466SDmitry Baryshkov }; 2444b32e466SDmitry Baryshkov 2454b32e466SDmitry Baryshkov port@1 { 2464b32e466SDmitry Baryshkov reg = <1>; 2474b32e466SDmitry Baryshkov dsi1_out: endpoint { 2484b32e466SDmitry Baryshkov }; 2494b32e466SDmitry Baryshkov }; 2504b32e466SDmitry Baryshkov }; 2514b32e466SDmitry Baryshkov }; 2524b32e466SDmitry Baryshkov 2534b32e466SDmitry Baryshkov dsi1_phy: phy@c996400 { 2544b32e466SDmitry Baryshkov compatible = "qcom,dsi-phy-10nm-8998"; 2554b32e466SDmitry Baryshkov reg = <0x0c996400 0x200>, 2564b32e466SDmitry Baryshkov <0x0c996600 0x280>, 2574b32e466SDmitry Baryshkov <0x0c996a00 0x10e>; 2584b32e466SDmitry Baryshkov reg-names = "dsi_phy", 2594b32e466SDmitry Baryshkov "dsi_phy_lane", 2604b32e466SDmitry Baryshkov "dsi_pll"; 2614b32e466SDmitry Baryshkov 2624b32e466SDmitry Baryshkov #clock-cells = <1>; 2634b32e466SDmitry Baryshkov #phy-cells = <0>; 2644b32e466SDmitry Baryshkov 2654b32e466SDmitry Baryshkov clocks = <&mmcc MDSS_AHB_CLK>, 2664b32e466SDmitry Baryshkov <&rpmcc RPM_SMD_XO_CLK_SRC>; 2674b32e466SDmitry Baryshkov clock-names = "iface", "ref"; 2684b32e466SDmitry Baryshkov 2694b32e466SDmitry Baryshkov vdds-supply = <&pm8998_l1>; 2704b32e466SDmitry Baryshkov }; 2719410872fSDmitry Baryshkov }; 2729410872fSDmitry Baryshkov... 273