18d13bc63SEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 28d13bc63SEmmanuel Vadot%YAML 1.2 38d13bc63SEmmanuel Vadot--- 48d13bc63SEmmanuel Vadot$id: http://devicetree.org/schemas/display/msm/qcom,sm8650-mdss.yaml# 58d13bc63SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 68d13bc63SEmmanuel Vadot 78d13bc63SEmmanuel Vadottitle: Qualcomm SM8650 Display MDSS 88d13bc63SEmmanuel Vadot 98d13bc63SEmmanuel Vadotmaintainers: 108d13bc63SEmmanuel Vadot - Neil Armstrong <neil.armstrong@linaro.org> 118d13bc63SEmmanuel Vadot 128d13bc63SEmmanuel Vadotdescription: 138d13bc63SEmmanuel Vadot SM8650 MSM Mobile Display Subsystem(MDSS), which encapsulates sub-blocks like 148d13bc63SEmmanuel Vadot DPU display controller, DSI and DP interfaces etc. 158d13bc63SEmmanuel Vadot 168d13bc63SEmmanuel Vadot$ref: /schemas/display/msm/mdss-common.yaml# 178d13bc63SEmmanuel Vadot 188d13bc63SEmmanuel Vadotproperties: 198d13bc63SEmmanuel Vadot compatible: 208d13bc63SEmmanuel Vadot const: qcom,sm8650-mdss 218d13bc63SEmmanuel Vadot 228d13bc63SEmmanuel Vadot clocks: 238d13bc63SEmmanuel Vadot items: 248d13bc63SEmmanuel Vadot - description: Display AHB 258d13bc63SEmmanuel Vadot - description: Display hf AXI 268d13bc63SEmmanuel Vadot - description: Display core 278d13bc63SEmmanuel Vadot 288d13bc63SEmmanuel Vadot iommus: 298d13bc63SEmmanuel Vadot maxItems: 1 308d13bc63SEmmanuel Vadot 318d13bc63SEmmanuel Vadot interconnects: 328d13bc63SEmmanuel Vadot maxItems: 2 338d13bc63SEmmanuel Vadot 348d13bc63SEmmanuel Vadot interconnect-names: 358d13bc63SEmmanuel Vadot maxItems: 2 368d13bc63SEmmanuel Vadot 378d13bc63SEmmanuel VadotpatternProperties: 388d13bc63SEmmanuel Vadot "^display-controller@[0-9a-f]+$": 398d13bc63SEmmanuel Vadot type: object 40*01950c46SEmmanuel Vadot additionalProperties: true 418d13bc63SEmmanuel Vadot properties: 428d13bc63SEmmanuel Vadot compatible: 438d13bc63SEmmanuel Vadot const: qcom,sm8650-dpu 448d13bc63SEmmanuel Vadot 458d13bc63SEmmanuel Vadot "^displayport-controller@[0-9a-f]+$": 468d13bc63SEmmanuel Vadot type: object 47*01950c46SEmmanuel Vadot additionalProperties: true 488d13bc63SEmmanuel Vadot properties: 498d13bc63SEmmanuel Vadot compatible: 508d13bc63SEmmanuel Vadot const: qcom,sm8650-dp 518d13bc63SEmmanuel Vadot 528d13bc63SEmmanuel Vadot "^dsi@[0-9a-f]+$": 538d13bc63SEmmanuel Vadot type: object 54*01950c46SEmmanuel Vadot additionalProperties: true 558d13bc63SEmmanuel Vadot properties: 568d13bc63SEmmanuel Vadot compatible: 578d13bc63SEmmanuel Vadot items: 588d13bc63SEmmanuel Vadot - const: qcom,sm8650-dsi-ctrl 598d13bc63SEmmanuel Vadot - const: qcom,mdss-dsi-ctrl 608d13bc63SEmmanuel Vadot 618d13bc63SEmmanuel Vadot "^phy@[0-9a-f]+$": 628d13bc63SEmmanuel Vadot type: object 63*01950c46SEmmanuel Vadot additionalProperties: true 648d13bc63SEmmanuel Vadot properties: 658d13bc63SEmmanuel Vadot compatible: 668d13bc63SEmmanuel Vadot const: qcom,sm8650-dsi-phy-4nm 678d13bc63SEmmanuel Vadot 688d13bc63SEmmanuel Vadotrequired: 698d13bc63SEmmanuel Vadot - compatible 708d13bc63SEmmanuel Vadot 718d13bc63SEmmanuel VadotunevaluatedProperties: false 728d13bc63SEmmanuel Vadot 738d13bc63SEmmanuel Vadotexamples: 748d13bc63SEmmanuel Vadot - | 758d13bc63SEmmanuel Vadot #include <dt-bindings/clock/qcom,rpmh.h> 768d13bc63SEmmanuel Vadot #include <dt-bindings/interrupt-controller/arm-gic.h> 778d13bc63SEmmanuel Vadot #include <dt-bindings/power/qcom,rpmhpd.h> 788d13bc63SEmmanuel Vadot 798d13bc63SEmmanuel Vadot display-subsystem@ae00000 { 808d13bc63SEmmanuel Vadot compatible = "qcom,sm8650-mdss"; 818d13bc63SEmmanuel Vadot reg = <0x0ae00000 0x1000>; 828d13bc63SEmmanuel Vadot reg-names = "mdss"; 838d13bc63SEmmanuel Vadot 848d13bc63SEmmanuel Vadot resets = <&dispcc_core_bcr>; 858d13bc63SEmmanuel Vadot 868d13bc63SEmmanuel Vadot power-domains = <&dispcc_gdsc>; 878d13bc63SEmmanuel Vadot 888d13bc63SEmmanuel Vadot clocks = <&gcc_ahb_clk>, 898d13bc63SEmmanuel Vadot <&gcc_axi_clk>, 908d13bc63SEmmanuel Vadot <&dispcc_mdp_clk>; 918d13bc63SEmmanuel Vadot clock-names = "bus", "nrt_bus", "core"; 928d13bc63SEmmanuel Vadot 938d13bc63SEmmanuel Vadot interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>; 948d13bc63SEmmanuel Vadot interrupt-controller; 958d13bc63SEmmanuel Vadot #interrupt-cells = <1>; 968d13bc63SEmmanuel Vadot 978d13bc63SEmmanuel Vadot iommus = <&apps_smmu 0x1c00 0x2>; 988d13bc63SEmmanuel Vadot 998d13bc63SEmmanuel Vadot #address-cells = <1>; 1008d13bc63SEmmanuel Vadot #size-cells = <1>; 1018d13bc63SEmmanuel Vadot ranges; 1028d13bc63SEmmanuel Vadot 1038d13bc63SEmmanuel Vadot display-controller@ae01000 { 1048d13bc63SEmmanuel Vadot compatible = "qcom,sm8650-dpu"; 1058d13bc63SEmmanuel Vadot reg = <0x0ae01000 0x8f000>, 1068d13bc63SEmmanuel Vadot <0x0aeb0000 0x2008>; 1078d13bc63SEmmanuel Vadot reg-names = "mdp", "vbif"; 1088d13bc63SEmmanuel Vadot 1098d13bc63SEmmanuel Vadot clocks = <&gcc_axi_clk>, 1108d13bc63SEmmanuel Vadot <&dispcc_ahb_clk>, 1118d13bc63SEmmanuel Vadot <&dispcc_mdp_lut_clk>, 1128d13bc63SEmmanuel Vadot <&dispcc_mdp_clk>, 1138d13bc63SEmmanuel Vadot <&dispcc_mdp_vsync_clk>; 1148d13bc63SEmmanuel Vadot clock-names = "nrt_bus", 1158d13bc63SEmmanuel Vadot "iface", 1168d13bc63SEmmanuel Vadot "lut", 1178d13bc63SEmmanuel Vadot "core", 1188d13bc63SEmmanuel Vadot "vsync"; 1198d13bc63SEmmanuel Vadot 1208d13bc63SEmmanuel Vadot assigned-clocks = <&dispcc_mdp_vsync_clk>; 1218d13bc63SEmmanuel Vadot assigned-clock-rates = <19200000>; 1228d13bc63SEmmanuel Vadot 1238d13bc63SEmmanuel Vadot operating-points-v2 = <&mdp_opp_table>; 1248d13bc63SEmmanuel Vadot power-domains = <&rpmhpd RPMHPD_MMCX>; 1258d13bc63SEmmanuel Vadot 1268d13bc63SEmmanuel Vadot interrupt-parent = <&mdss>; 1278d13bc63SEmmanuel Vadot interrupts = <0>; 1288d13bc63SEmmanuel Vadot 1298d13bc63SEmmanuel Vadot ports { 1308d13bc63SEmmanuel Vadot #address-cells = <1>; 1318d13bc63SEmmanuel Vadot #size-cells = <0>; 1328d13bc63SEmmanuel Vadot 1338d13bc63SEmmanuel Vadot port@0 { 1348d13bc63SEmmanuel Vadot reg = <0>; 1358d13bc63SEmmanuel Vadot dpu_intf1_out: endpoint { 1368d13bc63SEmmanuel Vadot remote-endpoint = <&dsi0_in>; 1378d13bc63SEmmanuel Vadot }; 1388d13bc63SEmmanuel Vadot }; 1398d13bc63SEmmanuel Vadot 1408d13bc63SEmmanuel Vadot port@1 { 1418d13bc63SEmmanuel Vadot reg = <1>; 1428d13bc63SEmmanuel Vadot dpu_intf2_out: endpoint { 1438d13bc63SEmmanuel Vadot remote-endpoint = <&dsi1_in>; 1448d13bc63SEmmanuel Vadot }; 1458d13bc63SEmmanuel Vadot }; 1468d13bc63SEmmanuel Vadot }; 1478d13bc63SEmmanuel Vadot 1488d13bc63SEmmanuel Vadot mdp_opp_table: opp-table { 1498d13bc63SEmmanuel Vadot compatible = "operating-points-v2"; 1508d13bc63SEmmanuel Vadot 1518d13bc63SEmmanuel Vadot opp-200000000 { 1528d13bc63SEmmanuel Vadot opp-hz = /bits/ 64 <200000000>; 1538d13bc63SEmmanuel Vadot required-opps = <&rpmhpd_opp_low_svs>; 1548d13bc63SEmmanuel Vadot }; 1558d13bc63SEmmanuel Vadot 1568d13bc63SEmmanuel Vadot opp-325000000 { 1578d13bc63SEmmanuel Vadot opp-hz = /bits/ 64 <325000000>; 1588d13bc63SEmmanuel Vadot required-opps = <&rpmhpd_opp_svs>; 1598d13bc63SEmmanuel Vadot }; 1608d13bc63SEmmanuel Vadot 1618d13bc63SEmmanuel Vadot opp-375000000 { 1628d13bc63SEmmanuel Vadot opp-hz = /bits/ 64 <375000000>; 1638d13bc63SEmmanuel Vadot required-opps = <&rpmhpd_opp_svs_l1>; 1648d13bc63SEmmanuel Vadot }; 1658d13bc63SEmmanuel Vadot 1668d13bc63SEmmanuel Vadot opp-514000000 { 1678d13bc63SEmmanuel Vadot opp-hz = /bits/ 64 <514000000>; 1688d13bc63SEmmanuel Vadot required-opps = <&rpmhpd_opp_nom>; 1698d13bc63SEmmanuel Vadot }; 1708d13bc63SEmmanuel Vadot }; 1718d13bc63SEmmanuel Vadot }; 1728d13bc63SEmmanuel Vadot 1738d13bc63SEmmanuel Vadot dsi@ae94000 { 1748d13bc63SEmmanuel Vadot compatible = "qcom,sm8650-dsi-ctrl", "qcom,mdss-dsi-ctrl"; 1758d13bc63SEmmanuel Vadot reg = <0x0ae94000 0x400>; 1768d13bc63SEmmanuel Vadot reg-names = "dsi_ctrl"; 1778d13bc63SEmmanuel Vadot 1788d13bc63SEmmanuel Vadot interrupt-parent = <&mdss>; 1798d13bc63SEmmanuel Vadot interrupts = <4>; 1808d13bc63SEmmanuel Vadot 1818d13bc63SEmmanuel Vadot clocks = <&dispc_byte_clk>, 1828d13bc63SEmmanuel Vadot <&dispcc_intf_clk>, 1838d13bc63SEmmanuel Vadot <&dispcc_pclk>, 1848d13bc63SEmmanuel Vadot <&dispcc_esc_clk>, 1858d13bc63SEmmanuel Vadot <&dispcc_ahb_clk>, 1868d13bc63SEmmanuel Vadot <&gcc_bus_clk>; 1878d13bc63SEmmanuel Vadot clock-names = "byte", 1888d13bc63SEmmanuel Vadot "byte_intf", 1898d13bc63SEmmanuel Vadot "pixel", 1908d13bc63SEmmanuel Vadot "core", 1918d13bc63SEmmanuel Vadot "iface", 1928d13bc63SEmmanuel Vadot "bus"; 1938d13bc63SEmmanuel Vadot 1948d13bc63SEmmanuel Vadot assigned-clocks = <&dispcc_byte_clk>, 1958d13bc63SEmmanuel Vadot <&dispcc_pclk>; 1968d13bc63SEmmanuel Vadot assigned-clock-parents = <&dsi0_phy 0>, <&dsi0_phy 1>; 1978d13bc63SEmmanuel Vadot 1988d13bc63SEmmanuel Vadot operating-points-v2 = <&dsi_opp_table>; 1998d13bc63SEmmanuel Vadot power-domains = <&rpmhpd RPMHPD_MMCX>; 2008d13bc63SEmmanuel Vadot 2018d13bc63SEmmanuel Vadot phys = <&dsi0_phy>; 2028d13bc63SEmmanuel Vadot phy-names = "dsi"; 2038d13bc63SEmmanuel Vadot 2048d13bc63SEmmanuel Vadot #address-cells = <1>; 2058d13bc63SEmmanuel Vadot #size-cells = <0>; 2068d13bc63SEmmanuel Vadot 2078d13bc63SEmmanuel Vadot ports { 2088d13bc63SEmmanuel Vadot #address-cells = <1>; 2098d13bc63SEmmanuel Vadot #size-cells = <0>; 2108d13bc63SEmmanuel Vadot 2118d13bc63SEmmanuel Vadot port@0 { 2128d13bc63SEmmanuel Vadot reg = <0>; 2138d13bc63SEmmanuel Vadot dsi0_in: endpoint { 2148d13bc63SEmmanuel Vadot remote-endpoint = <&dpu_intf1_out>; 2158d13bc63SEmmanuel Vadot }; 2168d13bc63SEmmanuel Vadot }; 2178d13bc63SEmmanuel Vadot 2188d13bc63SEmmanuel Vadot port@1 { 2198d13bc63SEmmanuel Vadot reg = <1>; 2208d13bc63SEmmanuel Vadot dsi0_out: endpoint { 2218d13bc63SEmmanuel Vadot }; 2228d13bc63SEmmanuel Vadot }; 2238d13bc63SEmmanuel Vadot }; 2248d13bc63SEmmanuel Vadot 2258d13bc63SEmmanuel Vadot dsi_opp_table: opp-table { 2268d13bc63SEmmanuel Vadot compatible = "operating-points-v2"; 2278d13bc63SEmmanuel Vadot 2288d13bc63SEmmanuel Vadot opp-187500000 { 2298d13bc63SEmmanuel Vadot opp-hz = /bits/ 64 <187500000>; 2308d13bc63SEmmanuel Vadot required-opps = <&rpmhpd_opp_low_svs>; 2318d13bc63SEmmanuel Vadot }; 2328d13bc63SEmmanuel Vadot 2338d13bc63SEmmanuel Vadot opp-300000000 { 2348d13bc63SEmmanuel Vadot opp-hz = /bits/ 64 <300000000>; 2358d13bc63SEmmanuel Vadot required-opps = <&rpmhpd_opp_svs>; 2368d13bc63SEmmanuel Vadot }; 2378d13bc63SEmmanuel Vadot 2388d13bc63SEmmanuel Vadot opp-358000000 { 2398d13bc63SEmmanuel Vadot opp-hz = /bits/ 64 <358000000>; 2408d13bc63SEmmanuel Vadot required-opps = <&rpmhpd_opp_svs_l1>; 2418d13bc63SEmmanuel Vadot }; 2428d13bc63SEmmanuel Vadot }; 2438d13bc63SEmmanuel Vadot }; 2448d13bc63SEmmanuel Vadot 2458d13bc63SEmmanuel Vadot dsi0_phy: phy@ae94400 { 2468d13bc63SEmmanuel Vadot compatible = "qcom,sm8650-dsi-phy-4nm"; 2478d13bc63SEmmanuel Vadot reg = <0x0ae95000 0x200>, 2488d13bc63SEmmanuel Vadot <0x0ae95200 0x280>, 2498d13bc63SEmmanuel Vadot <0x0ae95500 0x400>; 2508d13bc63SEmmanuel Vadot reg-names = "dsi_phy", 2518d13bc63SEmmanuel Vadot "dsi_phy_lane", 2528d13bc63SEmmanuel Vadot "dsi_pll"; 2538d13bc63SEmmanuel Vadot 2548d13bc63SEmmanuel Vadot #clock-cells = <1>; 2558d13bc63SEmmanuel Vadot #phy-cells = <0>; 2568d13bc63SEmmanuel Vadot 2578d13bc63SEmmanuel Vadot clocks = <&dispcc_iface_clk>, 2588d13bc63SEmmanuel Vadot <&rpmhcc_ref_clk>; 2598d13bc63SEmmanuel Vadot clock-names = "iface", "ref"; 2608d13bc63SEmmanuel Vadot }; 2618d13bc63SEmmanuel Vadot 2628d13bc63SEmmanuel Vadot dsi@ae96000 { 2638d13bc63SEmmanuel Vadot compatible = "qcom,sm8650-dsi-ctrl", "qcom,mdss-dsi-ctrl"; 2648d13bc63SEmmanuel Vadot reg = <0x0ae96000 0x400>; 2658d13bc63SEmmanuel Vadot reg-names = "dsi_ctrl"; 2668d13bc63SEmmanuel Vadot 2678d13bc63SEmmanuel Vadot interrupt-parent = <&mdss>; 2688d13bc63SEmmanuel Vadot interrupts = <5>; 2698d13bc63SEmmanuel Vadot 2708d13bc63SEmmanuel Vadot clocks = <&dispc_byte_clk>, 2718d13bc63SEmmanuel Vadot <&dispcc_intf_clk>, 2728d13bc63SEmmanuel Vadot <&dispcc_pclk>, 2738d13bc63SEmmanuel Vadot <&dispcc_esc_clk>, 2748d13bc63SEmmanuel Vadot <&dispcc_ahb_clk>, 2758d13bc63SEmmanuel Vadot <&gcc_bus_clk>; 2768d13bc63SEmmanuel Vadot clock-names = "byte", 2778d13bc63SEmmanuel Vadot "byte_intf", 2788d13bc63SEmmanuel Vadot "pixel", 2798d13bc63SEmmanuel Vadot "core", 2808d13bc63SEmmanuel Vadot "iface", 2818d13bc63SEmmanuel Vadot "bus"; 2828d13bc63SEmmanuel Vadot 2838d13bc63SEmmanuel Vadot assigned-clocks = <&dispcc_byte_clk>, 2848d13bc63SEmmanuel Vadot <&dispcc_pclk>; 2858d13bc63SEmmanuel Vadot assigned-clock-parents = <&dsi1_phy 0>, <&dsi1_phy 1>; 2868d13bc63SEmmanuel Vadot 2878d13bc63SEmmanuel Vadot operating-points-v2 = <&dsi_opp_table>; 2888d13bc63SEmmanuel Vadot power-domains = <&rpmhpd RPMHPD_MMCX>; 2898d13bc63SEmmanuel Vadot 2908d13bc63SEmmanuel Vadot phys = <&dsi1_phy>; 2918d13bc63SEmmanuel Vadot phy-names = "dsi"; 2928d13bc63SEmmanuel Vadot 2938d13bc63SEmmanuel Vadot #address-cells = <1>; 2948d13bc63SEmmanuel Vadot #size-cells = <0>; 2958d13bc63SEmmanuel Vadot 2968d13bc63SEmmanuel Vadot ports { 2978d13bc63SEmmanuel Vadot #address-cells = <1>; 2988d13bc63SEmmanuel Vadot #size-cells = <0>; 2998d13bc63SEmmanuel Vadot 3008d13bc63SEmmanuel Vadot port@0 { 3018d13bc63SEmmanuel Vadot reg = <0>; 3028d13bc63SEmmanuel Vadot dsi1_in: endpoint { 3038d13bc63SEmmanuel Vadot remote-endpoint = <&dpu_intf2_out>; 3048d13bc63SEmmanuel Vadot }; 3058d13bc63SEmmanuel Vadot }; 3068d13bc63SEmmanuel Vadot 3078d13bc63SEmmanuel Vadot port@1 { 3088d13bc63SEmmanuel Vadot reg = <1>; 3098d13bc63SEmmanuel Vadot dsi1_out: endpoint { 3108d13bc63SEmmanuel Vadot }; 3118d13bc63SEmmanuel Vadot }; 3128d13bc63SEmmanuel Vadot }; 3138d13bc63SEmmanuel Vadot }; 3148d13bc63SEmmanuel Vadot 3158d13bc63SEmmanuel Vadot dsi1_phy: phy@ae96400 { 3168d13bc63SEmmanuel Vadot compatible = "qcom,sm8650-dsi-phy-4nm"; 3178d13bc63SEmmanuel Vadot reg = <0x0ae97000 0x200>, 3188d13bc63SEmmanuel Vadot <0x0ae97200 0x280>, 3198d13bc63SEmmanuel Vadot <0x0ae97500 0x400>; 3208d13bc63SEmmanuel Vadot reg-names = "dsi_phy", 3218d13bc63SEmmanuel Vadot "dsi_phy_lane", 3228d13bc63SEmmanuel Vadot "dsi_pll"; 3238d13bc63SEmmanuel Vadot 3248d13bc63SEmmanuel Vadot #clock-cells = <1>; 3258d13bc63SEmmanuel Vadot #phy-cells = <0>; 3268d13bc63SEmmanuel Vadot 3278d13bc63SEmmanuel Vadot clocks = <&dispcc_iface_clk>, 3288d13bc63SEmmanuel Vadot <&rpmhcc_ref_clk>; 3298d13bc63SEmmanuel Vadot clock-names = "iface", "ref"; 3308d13bc63SEmmanuel Vadot }; 3318d13bc63SEmmanuel Vadot }; 3328d13bc63SEmmanuel Vadot... 333