1*440b075bSKrzysztof Kozlowski# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 29cf4fc47SNeil Armstrong%YAML 1.2 39cf4fc47SNeil Armstrong--- 49cf4fc47SNeil Armstrong$id: http://devicetree.org/schemas/display/msm/qcom,sm8550-mdss.yaml# 59cf4fc47SNeil Armstrong$schema: http://devicetree.org/meta-schemas/core.yaml# 69cf4fc47SNeil Armstrong 79cf4fc47SNeil Armstrongtitle: Qualcomm SM8550 Display MDSS 89cf4fc47SNeil Armstrong 99cf4fc47SNeil Armstrongmaintainers: 109cf4fc47SNeil Armstrong - Neil Armstrong <neil.armstrong@linaro.org> 119cf4fc47SNeil Armstrong 129cf4fc47SNeil Armstrongdescription: 139cf4fc47SNeil Armstrong SM8550 MSM Mobile Display Subsystem(MDSS), which encapsulates sub-blocks like 149cf4fc47SNeil Armstrong DPU display controller, DSI and DP interfaces etc. 159cf4fc47SNeil Armstrong 169cf4fc47SNeil Armstrong$ref: /schemas/display/msm/mdss-common.yaml# 179cf4fc47SNeil Armstrong 189cf4fc47SNeil Armstrongproperties: 199cf4fc47SNeil Armstrong compatible: 209cf4fc47SNeil Armstrong const: qcom,sm8550-mdss 219cf4fc47SNeil Armstrong 229cf4fc47SNeil Armstrong clocks: 239cf4fc47SNeil Armstrong items: 249cf4fc47SNeil Armstrong - description: Display MDSS AHB 259cf4fc47SNeil Armstrong - description: Display AHB 269cf4fc47SNeil Armstrong - description: Display hf AXI 279cf4fc47SNeil Armstrong - description: Display core 289cf4fc47SNeil Armstrong 299cf4fc47SNeil Armstrong iommus: 309cf4fc47SNeil Armstrong maxItems: 1 319cf4fc47SNeil Armstrong 329cf4fc47SNeil Armstrong interconnects: 339cf4fc47SNeil Armstrong maxItems: 2 349cf4fc47SNeil Armstrong 359cf4fc47SNeil Armstrong interconnect-names: 369cf4fc47SNeil Armstrong maxItems: 2 379cf4fc47SNeil Armstrong 389cf4fc47SNeil ArmstrongpatternProperties: 399cf4fc47SNeil Armstrong "^display-controller@[0-9a-f]+$": 409cf4fc47SNeil Armstrong type: object 419cf4fc47SNeil Armstrong properties: 429cf4fc47SNeil Armstrong compatible: 439cf4fc47SNeil Armstrong const: qcom,sm8550-dpu 449cf4fc47SNeil Armstrong 45d92ae361SNeil Armstrong "^displayport-controller@[0-9a-f]+$": 46d92ae361SNeil Armstrong type: object 47d92ae361SNeil Armstrong properties: 48d92ae361SNeil Armstrong compatible: 49d92ae361SNeil Armstrong items: 50d92ae361SNeil Armstrong - const: qcom,sm8550-dp 51d92ae361SNeil Armstrong - const: qcom,sm8350-dp 52d92ae361SNeil Armstrong 539cf4fc47SNeil Armstrong "^dsi@[0-9a-f]+$": 549cf4fc47SNeil Armstrong type: object 559cf4fc47SNeil Armstrong properties: 569cf4fc47SNeil Armstrong compatible: 579cf4fc47SNeil Armstrong items: 589cf4fc47SNeil Armstrong - const: qcom,sm8550-dsi-ctrl 599cf4fc47SNeil Armstrong - const: qcom,mdss-dsi-ctrl 609cf4fc47SNeil Armstrong 619cf4fc47SNeil Armstrong "^phy@[0-9a-f]+$": 629cf4fc47SNeil Armstrong type: object 639cf4fc47SNeil Armstrong properties: 649cf4fc47SNeil Armstrong compatible: 659cf4fc47SNeil Armstrong const: qcom,sm8550-dsi-phy-4nm 669cf4fc47SNeil Armstrong 679cf4fc47SNeil Armstrongrequired: 689cf4fc47SNeil Armstrong - compatible 699cf4fc47SNeil Armstrong 709cf4fc47SNeil ArmstrongunevaluatedProperties: false 719cf4fc47SNeil Armstrong 729cf4fc47SNeil Armstrongexamples: 739cf4fc47SNeil Armstrong - | 749cf4fc47SNeil Armstrong #include <dt-bindings/clock/qcom,sm8550-dispcc.h> 759cf4fc47SNeil Armstrong #include <dt-bindings/clock/qcom,sm8550-gcc.h> 769cf4fc47SNeil Armstrong #include <dt-bindings/clock/qcom,rpmh.h> 779cf4fc47SNeil Armstrong #include <dt-bindings/interrupt-controller/arm-gic.h> 789cf4fc47SNeil Armstrong #include <dt-bindings/interconnect/qcom,sm8550-rpmh.h> 79014f3272SRohit Agarwal #include <dt-bindings/power/qcom,rpmhpd.h> 809cf4fc47SNeil Armstrong 819cf4fc47SNeil Armstrong display-subsystem@ae00000 { 829cf4fc47SNeil Armstrong compatible = "qcom,sm8550-mdss"; 839cf4fc47SNeil Armstrong reg = <0x0ae00000 0x1000>; 849cf4fc47SNeil Armstrong reg-names = "mdss"; 859cf4fc47SNeil Armstrong 869cf4fc47SNeil Armstrong interconnects = <&mmss_noc MASTER_MDP 0 &gem_noc SLAVE_LLCC 0>, 879cf4fc47SNeil Armstrong <&mc_virt MASTER_LLCC 0 &mc_virt SLAVE_EBI1 0>; 889cf4fc47SNeil Armstrong interconnect-names = "mdp0-mem", "mdp1-mem"; 899cf4fc47SNeil Armstrong 909cf4fc47SNeil Armstrong resets = <&dispcc DISP_CC_MDSS_CORE_BCR>; 919cf4fc47SNeil Armstrong 929cf4fc47SNeil Armstrong power-domains = <&dispcc MDSS_GDSC>; 939cf4fc47SNeil Armstrong 949cf4fc47SNeil Armstrong clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>, 959cf4fc47SNeil Armstrong <&gcc GCC_DISP_AHB_CLK>, 969cf4fc47SNeil Armstrong <&gcc GCC_DISP_HF_AXI_CLK>, 979cf4fc47SNeil Armstrong <&dispcc DISP_CC_MDSS_MDP_CLK>; 989cf4fc47SNeil Armstrong clock-names = "iface", "bus", "nrt_bus", "core"; 999cf4fc47SNeil Armstrong 1009cf4fc47SNeil Armstrong interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>; 1019cf4fc47SNeil Armstrong interrupt-controller; 1029cf4fc47SNeil Armstrong #interrupt-cells = <1>; 1039cf4fc47SNeil Armstrong 1049cf4fc47SNeil Armstrong iommus = <&apps_smmu 0x1c00 0x2>; 1059cf4fc47SNeil Armstrong 1069cf4fc47SNeil Armstrong #address-cells = <1>; 1079cf4fc47SNeil Armstrong #size-cells = <1>; 1089cf4fc47SNeil Armstrong ranges; 1099cf4fc47SNeil Armstrong 1109cf4fc47SNeil Armstrong display-controller@ae01000 { 1119cf4fc47SNeil Armstrong compatible = "qcom,sm8550-dpu"; 1129cf4fc47SNeil Armstrong reg = <0x0ae01000 0x8f000>, 1139cf4fc47SNeil Armstrong <0x0aeb0000 0x2008>; 1149cf4fc47SNeil Armstrong reg-names = "mdp", "vbif"; 1159cf4fc47SNeil Armstrong 1169cf4fc47SNeil Armstrong clocks = <&gcc GCC_DISP_AHB_CLK>, 1179cf4fc47SNeil Armstrong <&gcc GCC_DISP_HF_AXI_CLK>, 1189cf4fc47SNeil Armstrong <&dispcc DISP_CC_MDSS_AHB_CLK>, 1199cf4fc47SNeil Armstrong <&dispcc DISP_CC_MDSS_MDP_LUT_CLK>, 1209cf4fc47SNeil Armstrong <&dispcc DISP_CC_MDSS_MDP_CLK>, 1219cf4fc47SNeil Armstrong <&dispcc DISP_CC_MDSS_VSYNC_CLK>; 1229cf4fc47SNeil Armstrong clock-names = "bus", 1239cf4fc47SNeil Armstrong "nrt_bus", 1249cf4fc47SNeil Armstrong "iface", 1259cf4fc47SNeil Armstrong "lut", 1269cf4fc47SNeil Armstrong "core", 1279cf4fc47SNeil Armstrong "vsync"; 1289cf4fc47SNeil Armstrong 1299cf4fc47SNeil Armstrong assigned-clocks = <&dispcc DISP_CC_MDSS_VSYNC_CLK>; 1309cf4fc47SNeil Armstrong assigned-clock-rates = <19200000>; 1319cf4fc47SNeil Armstrong 1329cf4fc47SNeil Armstrong operating-points-v2 = <&mdp_opp_table>; 133014f3272SRohit Agarwal power-domains = <&rpmhpd RPMHPD_MMCX>; 1349cf4fc47SNeil Armstrong 1359cf4fc47SNeil Armstrong interrupt-parent = <&mdss>; 1369cf4fc47SNeil Armstrong interrupts = <0>; 1379cf4fc47SNeil Armstrong 1389cf4fc47SNeil Armstrong ports { 1399cf4fc47SNeil Armstrong #address-cells = <1>; 1409cf4fc47SNeil Armstrong #size-cells = <0>; 1419cf4fc47SNeil Armstrong 1429cf4fc47SNeil Armstrong port@0 { 1439cf4fc47SNeil Armstrong reg = <0>; 1449cf4fc47SNeil Armstrong dpu_intf1_out: endpoint { 1459cf4fc47SNeil Armstrong remote-endpoint = <&dsi0_in>; 1469cf4fc47SNeil Armstrong }; 1479cf4fc47SNeil Armstrong }; 1489cf4fc47SNeil Armstrong 1499cf4fc47SNeil Armstrong port@1 { 1509cf4fc47SNeil Armstrong reg = <1>; 1519cf4fc47SNeil Armstrong dpu_intf2_out: endpoint { 1529cf4fc47SNeil Armstrong remote-endpoint = <&dsi1_in>; 1539cf4fc47SNeil Armstrong }; 1549cf4fc47SNeil Armstrong }; 1559cf4fc47SNeil Armstrong }; 1569cf4fc47SNeil Armstrong 1579cf4fc47SNeil Armstrong mdp_opp_table: opp-table { 1589cf4fc47SNeil Armstrong compatible = "operating-points-v2"; 1599cf4fc47SNeil Armstrong 1609cf4fc47SNeil Armstrong opp-200000000 { 1619cf4fc47SNeil Armstrong opp-hz = /bits/ 64 <200000000>; 1629cf4fc47SNeil Armstrong required-opps = <&rpmhpd_opp_low_svs>; 1639cf4fc47SNeil Armstrong }; 1649cf4fc47SNeil Armstrong 1659cf4fc47SNeil Armstrong opp-325000000 { 1669cf4fc47SNeil Armstrong opp-hz = /bits/ 64 <325000000>; 1679cf4fc47SNeil Armstrong required-opps = <&rpmhpd_opp_svs>; 1689cf4fc47SNeil Armstrong }; 1699cf4fc47SNeil Armstrong 1709cf4fc47SNeil Armstrong opp-375000000 { 1719cf4fc47SNeil Armstrong opp-hz = /bits/ 64 <375000000>; 1729cf4fc47SNeil Armstrong required-opps = <&rpmhpd_opp_svs_l1>; 1739cf4fc47SNeil Armstrong }; 1749cf4fc47SNeil Armstrong 1759cf4fc47SNeil Armstrong opp-514000000 { 1769cf4fc47SNeil Armstrong opp-hz = /bits/ 64 <514000000>; 1779cf4fc47SNeil Armstrong required-opps = <&rpmhpd_opp_nom>; 1789cf4fc47SNeil Armstrong }; 1799cf4fc47SNeil Armstrong }; 1809cf4fc47SNeil Armstrong }; 1819cf4fc47SNeil Armstrong 1829cf4fc47SNeil Armstrong dsi@ae94000 { 1839cf4fc47SNeil Armstrong compatible = "qcom,sm8550-dsi-ctrl", "qcom,mdss-dsi-ctrl"; 1849cf4fc47SNeil Armstrong reg = <0x0ae94000 0x400>; 1859cf4fc47SNeil Armstrong reg-names = "dsi_ctrl"; 1869cf4fc47SNeil Armstrong 1879cf4fc47SNeil Armstrong interrupt-parent = <&mdss>; 1889cf4fc47SNeil Armstrong interrupts = <4>; 1899cf4fc47SNeil Armstrong 1909cf4fc47SNeil Armstrong clocks = <&dispcc DISP_CC_MDSS_BYTE0_CLK>, 1919cf4fc47SNeil Armstrong <&dispcc DISP_CC_MDSS_BYTE0_INTF_CLK>, 1929cf4fc47SNeil Armstrong <&dispcc DISP_CC_MDSS_PCLK0_CLK>, 1939cf4fc47SNeil Armstrong <&dispcc DISP_CC_MDSS_ESC0_CLK>, 1949cf4fc47SNeil Armstrong <&dispcc DISP_CC_MDSS_AHB_CLK>, 1959cf4fc47SNeil Armstrong <&gcc GCC_DISP_HF_AXI_CLK>; 1969cf4fc47SNeil Armstrong clock-names = "byte", 1979cf4fc47SNeil Armstrong "byte_intf", 1989cf4fc47SNeil Armstrong "pixel", 1999cf4fc47SNeil Armstrong "core", 2009cf4fc47SNeil Armstrong "iface", 2019cf4fc47SNeil Armstrong "bus"; 2029cf4fc47SNeil Armstrong 2039cf4fc47SNeil Armstrong assigned-clocks = <&dispcc DISP_CC_MDSS_BYTE0_CLK_SRC>, 2049cf4fc47SNeil Armstrong <&dispcc DISP_CC_MDSS_PCLK0_CLK_SRC>; 2059cf4fc47SNeil Armstrong assigned-clock-parents = <&dsi0_phy 0>, <&dsi0_phy 1>; 2069cf4fc47SNeil Armstrong 2079cf4fc47SNeil Armstrong operating-points-v2 = <&dsi_opp_table>; 208014f3272SRohit Agarwal power-domains = <&rpmhpd RPMHPD_MMCX>; 2099cf4fc47SNeil Armstrong 2109cf4fc47SNeil Armstrong phys = <&dsi0_phy>; 2119cf4fc47SNeil Armstrong phy-names = "dsi"; 2129cf4fc47SNeil Armstrong 2139cf4fc47SNeil Armstrong #address-cells = <1>; 2149cf4fc47SNeil Armstrong #size-cells = <0>; 2159cf4fc47SNeil Armstrong 2169cf4fc47SNeil Armstrong ports { 2179cf4fc47SNeil Armstrong #address-cells = <1>; 2189cf4fc47SNeil Armstrong #size-cells = <0>; 2199cf4fc47SNeil Armstrong 2209cf4fc47SNeil Armstrong port@0 { 2219cf4fc47SNeil Armstrong reg = <0>; 2229cf4fc47SNeil Armstrong dsi0_in: endpoint { 2239cf4fc47SNeil Armstrong remote-endpoint = <&dpu_intf1_out>; 2249cf4fc47SNeil Armstrong }; 2259cf4fc47SNeil Armstrong }; 2269cf4fc47SNeil Armstrong 2279cf4fc47SNeil Armstrong port@1 { 2289cf4fc47SNeil Armstrong reg = <1>; 2299cf4fc47SNeil Armstrong dsi0_out: endpoint { 2309cf4fc47SNeil Armstrong }; 2319cf4fc47SNeil Armstrong }; 2329cf4fc47SNeil Armstrong }; 2339cf4fc47SNeil Armstrong 2349cf4fc47SNeil Armstrong dsi_opp_table: opp-table { 2359cf4fc47SNeil Armstrong compatible = "operating-points-v2"; 2369cf4fc47SNeil Armstrong 2379cf4fc47SNeil Armstrong opp-187500000 { 2389cf4fc47SNeil Armstrong opp-hz = /bits/ 64 <187500000>; 2399cf4fc47SNeil Armstrong required-opps = <&rpmhpd_opp_low_svs>; 2409cf4fc47SNeil Armstrong }; 2419cf4fc47SNeil Armstrong 2429cf4fc47SNeil Armstrong opp-300000000 { 2439cf4fc47SNeil Armstrong opp-hz = /bits/ 64 <300000000>; 2449cf4fc47SNeil Armstrong required-opps = <&rpmhpd_opp_svs>; 2459cf4fc47SNeil Armstrong }; 2469cf4fc47SNeil Armstrong 2479cf4fc47SNeil Armstrong opp-358000000 { 2489cf4fc47SNeil Armstrong opp-hz = /bits/ 64 <358000000>; 2499cf4fc47SNeil Armstrong required-opps = <&rpmhpd_opp_svs_l1>; 2509cf4fc47SNeil Armstrong }; 2519cf4fc47SNeil Armstrong }; 2529cf4fc47SNeil Armstrong }; 2539cf4fc47SNeil Armstrong 2549cf4fc47SNeil Armstrong dsi0_phy: phy@ae94400 { 2559cf4fc47SNeil Armstrong compatible = "qcom,sm8550-dsi-phy-4nm"; 2569cf4fc47SNeil Armstrong reg = <0x0ae95000 0x200>, 2579cf4fc47SNeil Armstrong <0x0ae95200 0x280>, 2589cf4fc47SNeil Armstrong <0x0ae95500 0x400>; 2599cf4fc47SNeil Armstrong reg-names = "dsi_phy", 2609cf4fc47SNeil Armstrong "dsi_phy_lane", 2619cf4fc47SNeil Armstrong "dsi_pll"; 2629cf4fc47SNeil Armstrong 2639cf4fc47SNeil Armstrong #clock-cells = <1>; 2649cf4fc47SNeil Armstrong #phy-cells = <0>; 2659cf4fc47SNeil Armstrong 2669cf4fc47SNeil Armstrong clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>, 2679cf4fc47SNeil Armstrong <&rpmhcc RPMH_CXO_CLK>; 2689cf4fc47SNeil Armstrong clock-names = "iface", "ref"; 2699cf4fc47SNeil Armstrong }; 2709cf4fc47SNeil Armstrong 2719cf4fc47SNeil Armstrong dsi@ae96000 { 2729cf4fc47SNeil Armstrong compatible = "qcom,sm8550-dsi-ctrl", "qcom,mdss-dsi-ctrl"; 2739cf4fc47SNeil Armstrong reg = <0x0ae96000 0x400>; 2749cf4fc47SNeil Armstrong reg-names = "dsi_ctrl"; 2759cf4fc47SNeil Armstrong 2769cf4fc47SNeil Armstrong interrupt-parent = <&mdss>; 2779cf4fc47SNeil Armstrong interrupts = <5>; 2789cf4fc47SNeil Armstrong 2799cf4fc47SNeil Armstrong clocks = <&dispcc DISP_CC_MDSS_BYTE1_CLK>, 2809cf4fc47SNeil Armstrong <&dispcc DISP_CC_MDSS_BYTE1_INTF_CLK>, 2819cf4fc47SNeil Armstrong <&dispcc DISP_CC_MDSS_PCLK1_CLK>, 2829cf4fc47SNeil Armstrong <&dispcc DISP_CC_MDSS_ESC1_CLK>, 2839cf4fc47SNeil Armstrong <&dispcc DISP_CC_MDSS_AHB_CLK>, 2849cf4fc47SNeil Armstrong <&gcc GCC_DISP_HF_AXI_CLK>; 2859cf4fc47SNeil Armstrong clock-names = "byte", 2869cf4fc47SNeil Armstrong "byte_intf", 2879cf4fc47SNeil Armstrong "pixel", 2889cf4fc47SNeil Armstrong "core", 2899cf4fc47SNeil Armstrong "iface", 2909cf4fc47SNeil Armstrong "bus"; 2919cf4fc47SNeil Armstrong 2929cf4fc47SNeil Armstrong assigned-clocks = <&dispcc DISP_CC_MDSS_BYTE1_CLK_SRC>, 2939cf4fc47SNeil Armstrong <&dispcc DISP_CC_MDSS_PCLK1_CLK_SRC>; 2949cf4fc47SNeil Armstrong assigned-clock-parents = <&dsi1_phy 0>, <&dsi1_phy 1>; 2959cf4fc47SNeil Armstrong 2969cf4fc47SNeil Armstrong operating-points-v2 = <&dsi_opp_table>; 297014f3272SRohit Agarwal power-domains = <&rpmhpd RPMHPD_MMCX>; 2989cf4fc47SNeil Armstrong 2999cf4fc47SNeil Armstrong phys = <&dsi1_phy>; 3009cf4fc47SNeil Armstrong phy-names = "dsi"; 3019cf4fc47SNeil Armstrong 3029cf4fc47SNeil Armstrong #address-cells = <1>; 3039cf4fc47SNeil Armstrong #size-cells = <0>; 3049cf4fc47SNeil Armstrong 3059cf4fc47SNeil Armstrong ports { 3069cf4fc47SNeil Armstrong #address-cells = <1>; 3079cf4fc47SNeil Armstrong #size-cells = <0>; 3089cf4fc47SNeil Armstrong 3099cf4fc47SNeil Armstrong port@0 { 3109cf4fc47SNeil Armstrong reg = <0>; 3119cf4fc47SNeil Armstrong dsi1_in: endpoint { 3129cf4fc47SNeil Armstrong remote-endpoint = <&dpu_intf2_out>; 3139cf4fc47SNeil Armstrong }; 3149cf4fc47SNeil Armstrong }; 3159cf4fc47SNeil Armstrong 3169cf4fc47SNeil Armstrong port@1 { 3179cf4fc47SNeil Armstrong reg = <1>; 3189cf4fc47SNeil Armstrong dsi1_out: endpoint { 3199cf4fc47SNeil Armstrong }; 3209cf4fc47SNeil Armstrong }; 3219cf4fc47SNeil Armstrong }; 3229cf4fc47SNeil Armstrong }; 3239cf4fc47SNeil Armstrong 3249cf4fc47SNeil Armstrong dsi1_phy: phy@ae96400 { 3259cf4fc47SNeil Armstrong compatible = "qcom,sm8550-dsi-phy-4nm"; 3269cf4fc47SNeil Armstrong reg = <0x0ae97000 0x200>, 3279cf4fc47SNeil Armstrong <0x0ae97200 0x280>, 3289cf4fc47SNeil Armstrong <0x0ae97500 0x400>; 3299cf4fc47SNeil Armstrong reg-names = "dsi_phy", 3309cf4fc47SNeil Armstrong "dsi_phy_lane", 3319cf4fc47SNeil Armstrong "dsi_pll"; 3329cf4fc47SNeil Armstrong 3339cf4fc47SNeil Armstrong #clock-cells = <1>; 3349cf4fc47SNeil Armstrong #phy-cells = <0>; 3359cf4fc47SNeil Armstrong 3369cf4fc47SNeil Armstrong clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>, 3379cf4fc47SNeil Armstrong <&rpmhcc RPMH_CXO_CLK>; 3389cf4fc47SNeil Armstrong clock-names = "iface", "ref"; 3399cf4fc47SNeil Armstrong }; 3409cf4fc47SNeil Armstrong }; 3419cf4fc47SNeil Armstrong... 342