1aa1a8ff2SEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 28bab661aSEmmanuel Vadot%YAML 1.2 38bab661aSEmmanuel Vadot--- 48bab661aSEmmanuel Vadot$id: http://devicetree.org/schemas/display/msm/qcom,sc7180-mdss.yaml# 58bab661aSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 68bab661aSEmmanuel Vadot 78bab661aSEmmanuel Vadottitle: Qualcomm SC7180 Display MDSS 88bab661aSEmmanuel Vadot 98bab661aSEmmanuel Vadotmaintainers: 108bab661aSEmmanuel Vadot - Krishna Manikandan <quic_mkrishn@quicinc.com> 118bab661aSEmmanuel Vadot 128bab661aSEmmanuel Vadotdescription: 138bab661aSEmmanuel Vadot Device tree bindings for MSM Mobile Display Subsystem(MDSS) that encapsulates 148bab661aSEmmanuel Vadot sub-blocks like DPU display controller, DSI and DP interfaces etc. Device tree 158bab661aSEmmanuel Vadot bindings of MDSS are mentioned for SC7180 target. 168bab661aSEmmanuel Vadot 178bab661aSEmmanuel Vadot$ref: /schemas/display/msm/mdss-common.yaml# 188bab661aSEmmanuel Vadot 198bab661aSEmmanuel Vadotproperties: 208bab661aSEmmanuel Vadot compatible: 21cb7aa33aSEmmanuel Vadot const: qcom,sc7180-mdss 228bab661aSEmmanuel Vadot 238bab661aSEmmanuel Vadot clocks: 248bab661aSEmmanuel Vadot items: 258bab661aSEmmanuel Vadot - description: Display AHB clock from gcc 268bab661aSEmmanuel Vadot - description: Display AHB clock from dispcc 278bab661aSEmmanuel Vadot - description: Display core clock 288bab661aSEmmanuel Vadot 298bab661aSEmmanuel Vadot clock-names: 308bab661aSEmmanuel Vadot items: 318bab661aSEmmanuel Vadot - const: iface 328bab661aSEmmanuel Vadot - const: ahb 338bab661aSEmmanuel Vadot - const: core 348bab661aSEmmanuel Vadot 358bab661aSEmmanuel Vadot iommus: 368bab661aSEmmanuel Vadot maxItems: 1 378bab661aSEmmanuel Vadot 388bab661aSEmmanuel Vadot interconnects: 39*8d13bc63SEmmanuel Vadot items: 40*8d13bc63SEmmanuel Vadot - description: Interconnect path from mdp0 port to the data bus 41*8d13bc63SEmmanuel Vadot - description: Interconnect path from CPU to the reg bus 428bab661aSEmmanuel Vadot 438bab661aSEmmanuel Vadot interconnect-names: 44*8d13bc63SEmmanuel Vadot items: 45*8d13bc63SEmmanuel Vadot - const: mdp0-mem 46*8d13bc63SEmmanuel Vadot - const: cpu-cfg 478bab661aSEmmanuel Vadot 488bab661aSEmmanuel VadotpatternProperties: 498bab661aSEmmanuel Vadot "^display-controller@[0-9a-f]+$": 508bab661aSEmmanuel Vadot type: object 5184943d6fSEmmanuel Vadot additionalProperties: true 5284943d6fSEmmanuel Vadot 538bab661aSEmmanuel Vadot properties: 548bab661aSEmmanuel Vadot compatible: 558bab661aSEmmanuel Vadot const: qcom,sc7180-dpu 568bab661aSEmmanuel Vadot 578bab661aSEmmanuel Vadot "^displayport-controller@[0-9a-f]+$": 588bab661aSEmmanuel Vadot type: object 5984943d6fSEmmanuel Vadot additionalProperties: true 6084943d6fSEmmanuel Vadot 618bab661aSEmmanuel Vadot properties: 628bab661aSEmmanuel Vadot compatible: 638bab661aSEmmanuel Vadot const: qcom,sc7180-dp 648bab661aSEmmanuel Vadot 658bab661aSEmmanuel Vadot "^dsi@[0-9a-f]+$": 668bab661aSEmmanuel Vadot type: object 6784943d6fSEmmanuel Vadot additionalProperties: true 6884943d6fSEmmanuel Vadot 698bab661aSEmmanuel Vadot properties: 708bab661aSEmmanuel Vadot compatible: 71cb7aa33aSEmmanuel Vadot items: 72cb7aa33aSEmmanuel Vadot - const: qcom,sc7180-dsi-ctrl 73cb7aa33aSEmmanuel Vadot - const: qcom,mdss-dsi-ctrl 748bab661aSEmmanuel Vadot 758bab661aSEmmanuel Vadot "^phy@[0-9a-f]+$": 768bab661aSEmmanuel Vadot type: object 7784943d6fSEmmanuel Vadot additionalProperties: true 7884943d6fSEmmanuel Vadot 798bab661aSEmmanuel Vadot properties: 808bab661aSEmmanuel Vadot compatible: 818bab661aSEmmanuel Vadot const: qcom,dsi-phy-10nm 828bab661aSEmmanuel Vadot 83cb7aa33aSEmmanuel Vadotrequired: 84cb7aa33aSEmmanuel Vadot - compatible 85cb7aa33aSEmmanuel Vadot 868bab661aSEmmanuel VadotunevaluatedProperties: false 878bab661aSEmmanuel Vadot 888bab661aSEmmanuel Vadotexamples: 898bab661aSEmmanuel Vadot - | 908bab661aSEmmanuel Vadot #include <dt-bindings/clock/qcom,dispcc-sc7180.h> 918bab661aSEmmanuel Vadot #include <dt-bindings/clock/qcom,gcc-sc7180.h> 928bab661aSEmmanuel Vadot #include <dt-bindings/clock/qcom,rpmh.h> 938bab661aSEmmanuel Vadot #include <dt-bindings/interrupt-controller/arm-gic.h> 948bab661aSEmmanuel Vadot #include <dt-bindings/interconnect/qcom,sdm845.h> 958bab661aSEmmanuel Vadot #include <dt-bindings/power/qcom-rpmpd.h> 968bab661aSEmmanuel Vadot 978bab661aSEmmanuel Vadot display-subsystem@ae00000 { 988bab661aSEmmanuel Vadot #address-cells = <1>; 998bab661aSEmmanuel Vadot #size-cells = <1>; 1008bab661aSEmmanuel Vadot compatible = "qcom,sc7180-mdss"; 1018bab661aSEmmanuel Vadot reg = <0xae00000 0x1000>; 1028bab661aSEmmanuel Vadot reg-names = "mdss"; 1038bab661aSEmmanuel Vadot power-domains = <&dispcc MDSS_GDSC>; 1048bab661aSEmmanuel Vadot clocks = <&gcc GCC_DISP_AHB_CLK>, 1058bab661aSEmmanuel Vadot <&dispcc DISP_CC_MDSS_AHB_CLK>, 1068bab661aSEmmanuel Vadot <&dispcc DISP_CC_MDSS_MDP_CLK>; 1078bab661aSEmmanuel Vadot clock-names = "iface", "ahb", "core"; 1088bab661aSEmmanuel Vadot 1098bab661aSEmmanuel Vadot interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>; 1108bab661aSEmmanuel Vadot interrupt-controller; 1118bab661aSEmmanuel Vadot #interrupt-cells = <1>; 1128bab661aSEmmanuel Vadot 113*8d13bc63SEmmanuel Vadot interconnects = <&mmss_noc MASTER_MDP0 &mc_virt SLAVE_EBI1>, 114*8d13bc63SEmmanuel Vadot <&gem_noc MASTER_APPSS_PROC &config_noc SLAVE_DISPLAY_CFG>; 115*8d13bc63SEmmanuel Vadot interconnect-names = "mdp0-mem", 116*8d13bc63SEmmanuel Vadot "cpu-cfg"; 1178bab661aSEmmanuel Vadot 1188bab661aSEmmanuel Vadot iommus = <&apps_smmu 0x800 0x2>; 1198bab661aSEmmanuel Vadot ranges; 1208bab661aSEmmanuel Vadot 1218bab661aSEmmanuel Vadot display-controller@ae01000 { 1228bab661aSEmmanuel Vadot compatible = "qcom,sc7180-dpu"; 1238bab661aSEmmanuel Vadot reg = <0x0ae01000 0x8f000>, 1248bab661aSEmmanuel Vadot <0x0aeb0000 0x2008>; 1258bab661aSEmmanuel Vadot 1268bab661aSEmmanuel Vadot reg-names = "mdp", "vbif"; 1278bab661aSEmmanuel Vadot 1288bab661aSEmmanuel Vadot clocks = <&gcc GCC_DISP_HF_AXI_CLK>, 1298bab661aSEmmanuel Vadot <&dispcc DISP_CC_MDSS_AHB_CLK>, 1308bab661aSEmmanuel Vadot <&dispcc DISP_CC_MDSS_ROT_CLK>, 1318bab661aSEmmanuel Vadot <&dispcc DISP_CC_MDSS_MDP_LUT_CLK>, 1328bab661aSEmmanuel Vadot <&dispcc DISP_CC_MDSS_MDP_CLK>, 1338bab661aSEmmanuel Vadot <&dispcc DISP_CC_MDSS_VSYNC_CLK>; 1348bab661aSEmmanuel Vadot clock-names = "bus", "iface", "rot", "lut", "core", 1358bab661aSEmmanuel Vadot "vsync"; 1368bab661aSEmmanuel Vadot 1378bab661aSEmmanuel Vadot interrupt-parent = <&mdss>; 1388bab661aSEmmanuel Vadot interrupts = <0>; 1398bab661aSEmmanuel Vadot power-domains = <&rpmhpd SC7180_CX>; 1408bab661aSEmmanuel Vadot operating-points-v2 = <&mdp_opp_table>; 1418bab661aSEmmanuel Vadot 1428bab661aSEmmanuel Vadot ports { 1438bab661aSEmmanuel Vadot #address-cells = <1>; 1448bab661aSEmmanuel Vadot #size-cells = <0>; 1458bab661aSEmmanuel Vadot 1468bab661aSEmmanuel Vadot port@0 { 1478bab661aSEmmanuel Vadot reg = <0>; 1488bab661aSEmmanuel Vadot dpu_intf1_out: endpoint { 1498bab661aSEmmanuel Vadot remote-endpoint = <&dsi0_in>; 1508bab661aSEmmanuel Vadot }; 1518bab661aSEmmanuel Vadot }; 1528bab661aSEmmanuel Vadot 1538bab661aSEmmanuel Vadot port@2 { 1548bab661aSEmmanuel Vadot reg = <2>; 1558bab661aSEmmanuel Vadot dpu_intf0_out: endpoint { 1568bab661aSEmmanuel Vadot remote-endpoint = <&dp_in>; 1578bab661aSEmmanuel Vadot }; 1588bab661aSEmmanuel Vadot }; 1598bab661aSEmmanuel Vadot }; 1608bab661aSEmmanuel Vadot }; 1618bab661aSEmmanuel Vadot 1628bab661aSEmmanuel Vadot dsi@ae94000 { 163cb7aa33aSEmmanuel Vadot compatible = "qcom,sc7180-dsi-ctrl", "qcom,mdss-dsi-ctrl"; 1648bab661aSEmmanuel Vadot reg = <0x0ae94000 0x400>; 1658bab661aSEmmanuel Vadot reg-names = "dsi_ctrl"; 1668bab661aSEmmanuel Vadot 1678bab661aSEmmanuel Vadot interrupt-parent = <&mdss>; 1688bab661aSEmmanuel Vadot interrupts = <4>; 1698bab661aSEmmanuel Vadot 1708bab661aSEmmanuel Vadot clocks = <&dispcc DISP_CC_MDSS_BYTE0_CLK>, 1718bab661aSEmmanuel Vadot <&dispcc DISP_CC_MDSS_BYTE0_INTF_CLK>, 1728bab661aSEmmanuel Vadot <&dispcc DISP_CC_MDSS_PCLK0_CLK>, 1738bab661aSEmmanuel Vadot <&dispcc DISP_CC_MDSS_ESC0_CLK>, 1748bab661aSEmmanuel Vadot <&dispcc DISP_CC_MDSS_AHB_CLK>, 1758bab661aSEmmanuel Vadot <&gcc GCC_DISP_HF_AXI_CLK>; 1768bab661aSEmmanuel Vadot clock-names = "byte", 1778bab661aSEmmanuel Vadot "byte_intf", 1788bab661aSEmmanuel Vadot "pixel", 1798bab661aSEmmanuel Vadot "core", 1808bab661aSEmmanuel Vadot "iface", 1818bab661aSEmmanuel Vadot "bus"; 1828bab661aSEmmanuel Vadot 1838bab661aSEmmanuel Vadot assigned-clocks = <&dispcc DISP_CC_MDSS_BYTE0_CLK_SRC>, <&dispcc DISP_CC_MDSS_PCLK0_CLK_SRC>; 1848bab661aSEmmanuel Vadot assigned-clock-parents = <&dsi_phy 0>, <&dsi_phy 1>; 1858bab661aSEmmanuel Vadot 1868bab661aSEmmanuel Vadot operating-points-v2 = <&dsi_opp_table>; 1878bab661aSEmmanuel Vadot power-domains = <&rpmhpd SC7180_CX>; 1888bab661aSEmmanuel Vadot 1898bab661aSEmmanuel Vadot phys = <&dsi_phy>; 1908bab661aSEmmanuel Vadot phy-names = "dsi"; 1918bab661aSEmmanuel Vadot 1928bab661aSEmmanuel Vadot #address-cells = <1>; 1938bab661aSEmmanuel Vadot #size-cells = <0>; 1948bab661aSEmmanuel Vadot 1958bab661aSEmmanuel Vadot ports { 1968bab661aSEmmanuel Vadot #address-cells = <1>; 1978bab661aSEmmanuel Vadot #size-cells = <0>; 1988bab661aSEmmanuel Vadot 1998bab661aSEmmanuel Vadot port@0 { 2008bab661aSEmmanuel Vadot reg = <0>; 2018bab661aSEmmanuel Vadot dsi0_in: endpoint { 2028bab661aSEmmanuel Vadot remote-endpoint = <&dpu_intf1_out>; 2038bab661aSEmmanuel Vadot }; 2048bab661aSEmmanuel Vadot }; 2058bab661aSEmmanuel Vadot 2068bab661aSEmmanuel Vadot port@1 { 2078bab661aSEmmanuel Vadot reg = <1>; 2088bab661aSEmmanuel Vadot dsi0_out: endpoint { 2098bab661aSEmmanuel Vadot }; 2108bab661aSEmmanuel Vadot }; 2118bab661aSEmmanuel Vadot }; 2128bab661aSEmmanuel Vadot 2138bab661aSEmmanuel Vadot dsi_opp_table: opp-table { 2148bab661aSEmmanuel Vadot compatible = "operating-points-v2"; 2158bab661aSEmmanuel Vadot 2168bab661aSEmmanuel Vadot opp-187500000 { 2178bab661aSEmmanuel Vadot opp-hz = /bits/ 64 <187500000>; 2188bab661aSEmmanuel Vadot required-opps = <&rpmhpd_opp_low_svs>; 2198bab661aSEmmanuel Vadot }; 2208bab661aSEmmanuel Vadot 2218bab661aSEmmanuel Vadot opp-300000000 { 2228bab661aSEmmanuel Vadot opp-hz = /bits/ 64 <300000000>; 2238bab661aSEmmanuel Vadot required-opps = <&rpmhpd_opp_svs>; 2248bab661aSEmmanuel Vadot }; 2258bab661aSEmmanuel Vadot 2268bab661aSEmmanuel Vadot opp-358000000 { 2278bab661aSEmmanuel Vadot opp-hz = /bits/ 64 <358000000>; 2288bab661aSEmmanuel Vadot required-opps = <&rpmhpd_opp_svs_l1>; 2298bab661aSEmmanuel Vadot }; 2308bab661aSEmmanuel Vadot }; 2318bab661aSEmmanuel Vadot }; 2328bab661aSEmmanuel Vadot 2338bab661aSEmmanuel Vadot dsi_phy: phy@ae94400 { 2348bab661aSEmmanuel Vadot compatible = "qcom,dsi-phy-10nm"; 2358bab661aSEmmanuel Vadot reg = <0x0ae94400 0x200>, 2368bab661aSEmmanuel Vadot <0x0ae94600 0x280>, 2378bab661aSEmmanuel Vadot <0x0ae94a00 0x1e0>; 2388bab661aSEmmanuel Vadot reg-names = "dsi_phy", 2398bab661aSEmmanuel Vadot "dsi_phy_lane", 2408bab661aSEmmanuel Vadot "dsi_pll"; 2418bab661aSEmmanuel Vadot 2428bab661aSEmmanuel Vadot #clock-cells = <1>; 2438bab661aSEmmanuel Vadot #phy-cells = <0>; 2448bab661aSEmmanuel Vadot 2458bab661aSEmmanuel Vadot clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>, 2468bab661aSEmmanuel Vadot <&rpmhcc RPMH_CXO_CLK>; 2478bab661aSEmmanuel Vadot clock-names = "iface", "ref"; 2488bab661aSEmmanuel Vadot vdds-supply = <&vreg_dsi_phy>; 2498bab661aSEmmanuel Vadot }; 2508bab661aSEmmanuel Vadot 2518bab661aSEmmanuel Vadot displayport-controller@ae90000 { 2528bab661aSEmmanuel Vadot compatible = "qcom,sc7180-dp"; 2538bab661aSEmmanuel Vadot 2548bab661aSEmmanuel Vadot reg = <0xae90000 0x200>, 2558bab661aSEmmanuel Vadot <0xae90200 0x200>, 2568bab661aSEmmanuel Vadot <0xae90400 0xc00>, 2578bab661aSEmmanuel Vadot <0xae91000 0x400>, 2588bab661aSEmmanuel Vadot <0xae91400 0x400>; 2598bab661aSEmmanuel Vadot 2608bab661aSEmmanuel Vadot interrupt-parent = <&mdss>; 2618bab661aSEmmanuel Vadot interrupts = <12>; 2628bab661aSEmmanuel Vadot 2638bab661aSEmmanuel Vadot clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>, 2648bab661aSEmmanuel Vadot <&dispcc DISP_CC_MDSS_DP_AUX_CLK>, 2658bab661aSEmmanuel Vadot <&dispcc DISP_CC_MDSS_DP_LINK_CLK>, 2668bab661aSEmmanuel Vadot <&dispcc DISP_CC_MDSS_DP_LINK_INTF_CLK>, 2678bab661aSEmmanuel Vadot <&dispcc DISP_CC_MDSS_DP_PIXEL_CLK>; 2688bab661aSEmmanuel Vadot clock-names = "core_iface", "core_aux", "ctrl_link", 2698bab661aSEmmanuel Vadot "ctrl_link_iface", "stream_pixel"; 2708bab661aSEmmanuel Vadot assigned-clocks = <&dispcc DISP_CC_MDSS_DP_LINK_CLK_SRC>, 2718bab661aSEmmanuel Vadot <&dispcc DISP_CC_MDSS_DP_PIXEL_CLK_SRC>; 2728bab661aSEmmanuel Vadot assigned-clock-parents = <&dp_phy 0>, <&dp_phy 1>; 2738bab661aSEmmanuel Vadot phys = <&dp_phy>; 2748bab661aSEmmanuel Vadot phy-names = "dp"; 2758bab661aSEmmanuel Vadot 2768bab661aSEmmanuel Vadot operating-points-v2 = <&dp_opp_table>; 2778bab661aSEmmanuel Vadot power-domains = <&rpmhpd SC7180_CX>; 2788bab661aSEmmanuel Vadot 2798bab661aSEmmanuel Vadot #sound-dai-cells = <0>; 2808bab661aSEmmanuel Vadot 2818bab661aSEmmanuel Vadot ports { 2828bab661aSEmmanuel Vadot #address-cells = <1>; 2838bab661aSEmmanuel Vadot #size-cells = <0>; 2848bab661aSEmmanuel Vadot port@0 { 2858bab661aSEmmanuel Vadot reg = <0>; 2868bab661aSEmmanuel Vadot dp_in: endpoint { 2878bab661aSEmmanuel Vadot remote-endpoint = <&dpu_intf0_out>; 2888bab661aSEmmanuel Vadot }; 2898bab661aSEmmanuel Vadot }; 2908bab661aSEmmanuel Vadot 2918bab661aSEmmanuel Vadot port@1 { 2928bab661aSEmmanuel Vadot reg = <1>; 2938bab661aSEmmanuel Vadot dp_out: endpoint { }; 2948bab661aSEmmanuel Vadot }; 2958bab661aSEmmanuel Vadot }; 2968bab661aSEmmanuel Vadot 2978bab661aSEmmanuel Vadot dp_opp_table: opp-table { 2988bab661aSEmmanuel Vadot compatible = "operating-points-v2"; 2998bab661aSEmmanuel Vadot 3008bab661aSEmmanuel Vadot opp-160000000 { 3018bab661aSEmmanuel Vadot opp-hz = /bits/ 64 <160000000>; 3028bab661aSEmmanuel Vadot required-opps = <&rpmhpd_opp_low_svs>; 3038bab661aSEmmanuel Vadot }; 3048bab661aSEmmanuel Vadot 3058bab661aSEmmanuel Vadot opp-270000000 { 3068bab661aSEmmanuel Vadot opp-hz = /bits/ 64 <270000000>; 3078bab661aSEmmanuel Vadot required-opps = <&rpmhpd_opp_svs>; 3088bab661aSEmmanuel Vadot }; 3098bab661aSEmmanuel Vadot 3108bab661aSEmmanuel Vadot opp-540000000 { 3118bab661aSEmmanuel Vadot opp-hz = /bits/ 64 <540000000>; 3128bab661aSEmmanuel Vadot required-opps = <&rpmhpd_opp_svs_l1>; 3138bab661aSEmmanuel Vadot }; 3148bab661aSEmmanuel Vadot 3158bab661aSEmmanuel Vadot opp-810000000 { 3168bab661aSEmmanuel Vadot opp-hz = /bits/ 64 <810000000>; 3178bab661aSEmmanuel Vadot required-opps = <&rpmhpd_opp_nom>; 3188bab661aSEmmanuel Vadot }; 3198bab661aSEmmanuel Vadot }; 3208bab661aSEmmanuel Vadot }; 3218bab661aSEmmanuel Vadot }; 3228bab661aSEmmanuel Vadot... 323