1*440b075bSKrzysztof Kozlowski# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 29ffbefc1SKonrad Dybcio%YAML 1.2 39ffbefc1SKonrad Dybcio--- 49ffbefc1SKonrad Dybcio$id: http://devicetree.org/schemas/display/msm/qcom,sm8150-mdss.yaml# 59ffbefc1SKonrad Dybcio$schema: http://devicetree.org/meta-schemas/core.yaml# 69ffbefc1SKonrad Dybcio 79ffbefc1SKonrad Dybciotitle: Qualcomm SM8150 Display MDSS 89ffbefc1SKonrad Dybcio 99ffbefc1SKonrad Dybciomaintainers: 109ffbefc1SKonrad Dybcio - Dmitry Baryshkov <dmitry.baryshkov@linaro.org> 119ffbefc1SKonrad Dybcio 129ffbefc1SKonrad Dybciodescription: 139ffbefc1SKonrad Dybcio Device tree bindings for MSM Mobile Display Subsystem(MDSS) that encapsulates 149ffbefc1SKonrad Dybcio sub-blocks like DPU display controller, DSI and DP interfaces etc. Device tree 159ffbefc1SKonrad Dybcio bindings of MDSS are mentioned for SM8150 target. 169ffbefc1SKonrad Dybcio 179ffbefc1SKonrad Dybcio$ref: /schemas/display/msm/mdss-common.yaml# 189ffbefc1SKonrad Dybcio 199ffbefc1SKonrad Dybcioproperties: 209ffbefc1SKonrad Dybcio compatible: 219ffbefc1SKonrad Dybcio items: 229ffbefc1SKonrad Dybcio - const: qcom,sm8150-mdss 239ffbefc1SKonrad Dybcio 249ffbefc1SKonrad Dybcio clocks: 259ffbefc1SKonrad Dybcio items: 269ffbefc1SKonrad Dybcio - description: Display AHB clock from gcc 279ffbefc1SKonrad Dybcio - description: Display hf axi clock 289ffbefc1SKonrad Dybcio - description: Display sf axi clock 299ffbefc1SKonrad Dybcio - description: Display core clock 309ffbefc1SKonrad Dybcio 319ffbefc1SKonrad Dybcio clock-names: 329ffbefc1SKonrad Dybcio items: 339ffbefc1SKonrad Dybcio - const: iface 349ffbefc1SKonrad Dybcio - const: bus 359ffbefc1SKonrad Dybcio - const: nrt_bus 369ffbefc1SKonrad Dybcio - const: core 379ffbefc1SKonrad Dybcio 389ffbefc1SKonrad Dybcio iommus: 399ffbefc1SKonrad Dybcio maxItems: 1 409ffbefc1SKonrad Dybcio 419ffbefc1SKonrad Dybcio interconnects: 429ffbefc1SKonrad Dybcio maxItems: 2 439ffbefc1SKonrad Dybcio 449ffbefc1SKonrad Dybcio interconnect-names: 459ffbefc1SKonrad Dybcio maxItems: 2 469ffbefc1SKonrad Dybcio 479ffbefc1SKonrad DybciopatternProperties: 489ffbefc1SKonrad Dybcio "^display-controller@[0-9a-f]+$": 499ffbefc1SKonrad Dybcio type: object 509ffbefc1SKonrad Dybcio properties: 519ffbefc1SKonrad Dybcio compatible: 529ffbefc1SKonrad Dybcio const: qcom,sm8150-dpu 539ffbefc1SKonrad Dybcio 549ffbefc1SKonrad Dybcio "^dsi@[0-9a-f]+$": 559ffbefc1SKonrad Dybcio type: object 569ffbefc1SKonrad Dybcio properties: 579ffbefc1SKonrad Dybcio compatible: 580c0f65c6SBryan O'Donoghue items: 590c0f65c6SBryan O'Donoghue - const: qcom,sm8150-dsi-ctrl 600c0f65c6SBryan O'Donoghue - const: qcom,mdss-dsi-ctrl 619ffbefc1SKonrad Dybcio 629ffbefc1SKonrad Dybcio "^phy@[0-9a-f]+$": 639ffbefc1SKonrad Dybcio type: object 649ffbefc1SKonrad Dybcio properties: 659ffbefc1SKonrad Dybcio compatible: 669ffbefc1SKonrad Dybcio const: qcom,dsi-phy-7nm 679ffbefc1SKonrad Dybcio 689ffbefc1SKonrad DybciounevaluatedProperties: false 699ffbefc1SKonrad Dybcio 709ffbefc1SKonrad Dybcioexamples: 719ffbefc1SKonrad Dybcio - | 729ffbefc1SKonrad Dybcio #include <dt-bindings/clock/qcom,dispcc-sm8150.h> 739ffbefc1SKonrad Dybcio #include <dt-bindings/clock/qcom,gcc-sm8150.h> 749ffbefc1SKonrad Dybcio #include <dt-bindings/clock/qcom,rpmh.h> 759ffbefc1SKonrad Dybcio #include <dt-bindings/interrupt-controller/arm-gic.h> 769ffbefc1SKonrad Dybcio #include <dt-bindings/interconnect/qcom,sm8150.h> 779ffbefc1SKonrad Dybcio #include <dt-bindings/power/qcom-rpmpd.h> 789ffbefc1SKonrad Dybcio 799ffbefc1SKonrad Dybcio display-subsystem@ae00000 { 809ffbefc1SKonrad Dybcio compatible = "qcom,sm8150-mdss"; 819ffbefc1SKonrad Dybcio reg = <0x0ae00000 0x1000>; 829ffbefc1SKonrad Dybcio reg-names = "mdss"; 839ffbefc1SKonrad Dybcio 849ffbefc1SKonrad Dybcio interconnects = <&mmss_noc MASTER_MDP_PORT0 &mc_virt SLAVE_EBI_CH0>, 859ffbefc1SKonrad Dybcio <&mmss_noc MASTER_MDP_PORT1 &mc_virt SLAVE_EBI_CH0>; 869ffbefc1SKonrad Dybcio interconnect-names = "mdp0-mem", "mdp1-mem"; 879ffbefc1SKonrad Dybcio 889ffbefc1SKonrad Dybcio power-domains = <&dispcc MDSS_GDSC>; 899ffbefc1SKonrad Dybcio 909ffbefc1SKonrad Dybcio clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>, 919ffbefc1SKonrad Dybcio <&gcc GCC_DISP_HF_AXI_CLK>, 929ffbefc1SKonrad Dybcio <&gcc GCC_DISP_SF_AXI_CLK>, 939ffbefc1SKonrad Dybcio <&dispcc DISP_CC_MDSS_MDP_CLK>; 949ffbefc1SKonrad Dybcio clock-names = "iface", "bus", "nrt_bus", "core"; 959ffbefc1SKonrad Dybcio 969ffbefc1SKonrad Dybcio interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>; 979ffbefc1SKonrad Dybcio interrupt-controller; 989ffbefc1SKonrad Dybcio #interrupt-cells = <1>; 999ffbefc1SKonrad Dybcio 1009ffbefc1SKonrad Dybcio iommus = <&apps_smmu 0x800 0x420>; 1019ffbefc1SKonrad Dybcio 1029ffbefc1SKonrad Dybcio #address-cells = <1>; 1039ffbefc1SKonrad Dybcio #size-cells = <1>; 1049ffbefc1SKonrad Dybcio ranges; 1059ffbefc1SKonrad Dybcio 1069ffbefc1SKonrad Dybcio display-controller@ae01000 { 1079ffbefc1SKonrad Dybcio compatible = "qcom,sm8150-dpu"; 1089ffbefc1SKonrad Dybcio reg = <0x0ae01000 0x8f000>, 1099ffbefc1SKonrad Dybcio <0x0aeb0000 0x2008>; 1109ffbefc1SKonrad Dybcio reg-names = "mdp", "vbif"; 1119ffbefc1SKonrad Dybcio 1129ffbefc1SKonrad Dybcio clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>, 1139ffbefc1SKonrad Dybcio <&gcc GCC_DISP_HF_AXI_CLK>, 1149ffbefc1SKonrad Dybcio <&dispcc DISP_CC_MDSS_MDP_CLK>, 1159ffbefc1SKonrad Dybcio <&dispcc DISP_CC_MDSS_VSYNC_CLK>; 1169ffbefc1SKonrad Dybcio clock-names = "iface", "bus", "core", "vsync"; 1179ffbefc1SKonrad Dybcio 1189ffbefc1SKonrad Dybcio assigned-clocks = <&dispcc DISP_CC_MDSS_VSYNC_CLK>; 1199ffbefc1SKonrad Dybcio assigned-clock-rates = <19200000>; 1209ffbefc1SKonrad Dybcio 1219ffbefc1SKonrad Dybcio operating-points-v2 = <&mdp_opp_table>; 1229ffbefc1SKonrad Dybcio power-domains = <&rpmhpd SM8150_MMCX>; 1239ffbefc1SKonrad Dybcio 1249ffbefc1SKonrad Dybcio interrupt-parent = <&mdss>; 1259ffbefc1SKonrad Dybcio interrupts = <0>; 1269ffbefc1SKonrad Dybcio 1279ffbefc1SKonrad Dybcio ports { 1289ffbefc1SKonrad Dybcio #address-cells = <1>; 1299ffbefc1SKonrad Dybcio #size-cells = <0>; 1309ffbefc1SKonrad Dybcio 1319ffbefc1SKonrad Dybcio port@0 { 1329ffbefc1SKonrad Dybcio reg = <0>; 1339ffbefc1SKonrad Dybcio dpu_intf1_out: endpoint { 1349ffbefc1SKonrad Dybcio remote-endpoint = <&dsi0_in>; 1359ffbefc1SKonrad Dybcio }; 1369ffbefc1SKonrad Dybcio }; 1379ffbefc1SKonrad Dybcio 1389ffbefc1SKonrad Dybcio port@1 { 1399ffbefc1SKonrad Dybcio reg = <1>; 1409ffbefc1SKonrad Dybcio dpu_intf2_out: endpoint { 1419ffbefc1SKonrad Dybcio remote-endpoint = <&dsi1_in>; 1429ffbefc1SKonrad Dybcio }; 1439ffbefc1SKonrad Dybcio }; 1449ffbefc1SKonrad Dybcio }; 1459ffbefc1SKonrad Dybcio 1469ffbefc1SKonrad Dybcio mdp_opp_table: opp-table { 1479ffbefc1SKonrad Dybcio compatible = "operating-points-v2"; 1489ffbefc1SKonrad Dybcio 1499ffbefc1SKonrad Dybcio opp-171428571 { 1509ffbefc1SKonrad Dybcio opp-hz = /bits/ 64 <171428571>; 1519ffbefc1SKonrad Dybcio required-opps = <&rpmhpd_opp_low_svs>; 1529ffbefc1SKonrad Dybcio }; 1539ffbefc1SKonrad Dybcio 1549ffbefc1SKonrad Dybcio opp-300000000 { 1559ffbefc1SKonrad Dybcio opp-hz = /bits/ 64 <300000000>; 1569ffbefc1SKonrad Dybcio required-opps = <&rpmhpd_opp_svs>; 1579ffbefc1SKonrad Dybcio }; 1589ffbefc1SKonrad Dybcio 1599ffbefc1SKonrad Dybcio opp-345000000 { 1609ffbefc1SKonrad Dybcio opp-hz = /bits/ 64 <345000000>; 1619ffbefc1SKonrad Dybcio required-opps = <&rpmhpd_opp_svs_l1>; 1629ffbefc1SKonrad Dybcio }; 1639ffbefc1SKonrad Dybcio 1649ffbefc1SKonrad Dybcio opp-460000000 { 1659ffbefc1SKonrad Dybcio opp-hz = /bits/ 64 <460000000>; 1669ffbefc1SKonrad Dybcio required-opps = <&rpmhpd_opp_nom>; 1679ffbefc1SKonrad Dybcio }; 1689ffbefc1SKonrad Dybcio }; 1699ffbefc1SKonrad Dybcio }; 1709ffbefc1SKonrad Dybcio 1719ffbefc1SKonrad Dybcio dsi@ae94000 { 1720c0f65c6SBryan O'Donoghue compatible = "qcom,sm8150-dsi-ctrl", "qcom,mdss-dsi-ctrl"; 1739ffbefc1SKonrad Dybcio reg = <0x0ae94000 0x400>; 1749ffbefc1SKonrad Dybcio reg-names = "dsi_ctrl"; 1759ffbefc1SKonrad Dybcio 1769ffbefc1SKonrad Dybcio interrupt-parent = <&mdss>; 1779ffbefc1SKonrad Dybcio interrupts = <4>; 1789ffbefc1SKonrad Dybcio 1799ffbefc1SKonrad Dybcio clocks = <&dispcc DISP_CC_MDSS_BYTE0_CLK>, 1809ffbefc1SKonrad Dybcio <&dispcc DISP_CC_MDSS_BYTE0_INTF_CLK>, 1819ffbefc1SKonrad Dybcio <&dispcc DISP_CC_MDSS_PCLK0_CLK>, 1829ffbefc1SKonrad Dybcio <&dispcc DISP_CC_MDSS_ESC0_CLK>, 1839ffbefc1SKonrad Dybcio <&dispcc DISP_CC_MDSS_AHB_CLK>, 1849ffbefc1SKonrad Dybcio <&gcc GCC_DISP_HF_AXI_CLK>; 1859ffbefc1SKonrad Dybcio clock-names = "byte", 1869ffbefc1SKonrad Dybcio "byte_intf", 1879ffbefc1SKonrad Dybcio "pixel", 1889ffbefc1SKonrad Dybcio "core", 1899ffbefc1SKonrad Dybcio "iface", 1909ffbefc1SKonrad Dybcio "bus"; 1919ffbefc1SKonrad Dybcio 1929ffbefc1SKonrad Dybcio assigned-clocks = <&dispcc DISP_CC_MDSS_BYTE0_CLK_SRC>, 1939ffbefc1SKonrad Dybcio <&dispcc DISP_CC_MDSS_PCLK0_CLK_SRC>; 1949ffbefc1SKonrad Dybcio assigned-clock-parents = <&dsi0_phy 0>, <&dsi0_phy 1>; 1959ffbefc1SKonrad Dybcio 1969ffbefc1SKonrad Dybcio operating-points-v2 = <&dsi_opp_table>; 1979ffbefc1SKonrad Dybcio power-domains = <&rpmhpd SM8150_MMCX>; 1989ffbefc1SKonrad Dybcio 1999ffbefc1SKonrad Dybcio phys = <&dsi0_phy>; 2009ffbefc1SKonrad Dybcio phy-names = "dsi"; 2019ffbefc1SKonrad Dybcio 2029ffbefc1SKonrad Dybcio #address-cells = <1>; 2039ffbefc1SKonrad Dybcio #size-cells = <0>; 2049ffbefc1SKonrad Dybcio 2059ffbefc1SKonrad Dybcio ports { 2069ffbefc1SKonrad Dybcio #address-cells = <1>; 2079ffbefc1SKonrad Dybcio #size-cells = <0>; 2089ffbefc1SKonrad Dybcio 2099ffbefc1SKonrad Dybcio port@0 { 2109ffbefc1SKonrad Dybcio reg = <0>; 2119ffbefc1SKonrad Dybcio dsi0_in: endpoint { 2129ffbefc1SKonrad Dybcio remote-endpoint = <&dpu_intf1_out>; 2139ffbefc1SKonrad Dybcio }; 2149ffbefc1SKonrad Dybcio }; 2159ffbefc1SKonrad Dybcio 2169ffbefc1SKonrad Dybcio port@1 { 2179ffbefc1SKonrad Dybcio reg = <1>; 2189ffbefc1SKonrad Dybcio dsi0_out: endpoint { 2199ffbefc1SKonrad Dybcio }; 2209ffbefc1SKonrad Dybcio }; 2219ffbefc1SKonrad Dybcio }; 2229ffbefc1SKonrad Dybcio 2239ffbefc1SKonrad Dybcio dsi_opp_table: opp-table { 2249ffbefc1SKonrad Dybcio compatible = "operating-points-v2"; 2259ffbefc1SKonrad Dybcio 2269ffbefc1SKonrad Dybcio opp-187500000 { 2279ffbefc1SKonrad Dybcio opp-hz = /bits/ 64 <187500000>; 2289ffbefc1SKonrad Dybcio required-opps = <&rpmhpd_opp_low_svs>; 2299ffbefc1SKonrad Dybcio }; 2309ffbefc1SKonrad Dybcio 2319ffbefc1SKonrad Dybcio opp-300000000 { 2329ffbefc1SKonrad Dybcio opp-hz = /bits/ 64 <300000000>; 2339ffbefc1SKonrad Dybcio required-opps = <&rpmhpd_opp_svs>; 2349ffbefc1SKonrad Dybcio }; 2359ffbefc1SKonrad Dybcio 2369ffbefc1SKonrad Dybcio opp-358000000 { 2379ffbefc1SKonrad Dybcio opp-hz = /bits/ 64 <358000000>; 2389ffbefc1SKonrad Dybcio required-opps = <&rpmhpd_opp_svs_l1>; 2399ffbefc1SKonrad Dybcio }; 2409ffbefc1SKonrad Dybcio }; 2419ffbefc1SKonrad Dybcio }; 2429ffbefc1SKonrad Dybcio 2439ffbefc1SKonrad Dybcio dsi0_phy: phy@ae94400 { 2449ffbefc1SKonrad Dybcio compatible = "qcom,dsi-phy-7nm"; 2459ffbefc1SKonrad Dybcio reg = <0x0ae94400 0x200>, 2469ffbefc1SKonrad Dybcio <0x0ae94600 0x280>, 2479ffbefc1SKonrad Dybcio <0x0ae94900 0x260>; 2489ffbefc1SKonrad Dybcio reg-names = "dsi_phy", 2499ffbefc1SKonrad Dybcio "dsi_phy_lane", 2509ffbefc1SKonrad Dybcio "dsi_pll"; 2519ffbefc1SKonrad Dybcio 2529ffbefc1SKonrad Dybcio #clock-cells = <1>; 2539ffbefc1SKonrad Dybcio #phy-cells = <0>; 2549ffbefc1SKonrad Dybcio 2559ffbefc1SKonrad Dybcio clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>, 2569ffbefc1SKonrad Dybcio <&rpmhcc RPMH_CXO_CLK>; 2579ffbefc1SKonrad Dybcio clock-names = "iface", "ref"; 2589ffbefc1SKonrad Dybcio vdds-supply = <&vreg_dsi_phy>; 2599ffbefc1SKonrad Dybcio }; 2609ffbefc1SKonrad Dybcio 2619ffbefc1SKonrad Dybcio dsi@ae96000 { 2620c0f65c6SBryan O'Donoghue compatible = "qcom,sm8150-dsi-ctrl", "qcom,mdss-dsi-ctrl"; 2639ffbefc1SKonrad Dybcio reg = <0x0ae96000 0x400>; 2649ffbefc1SKonrad Dybcio reg-names = "dsi_ctrl"; 2659ffbefc1SKonrad Dybcio 2669ffbefc1SKonrad Dybcio interrupt-parent = <&mdss>; 2679ffbefc1SKonrad Dybcio interrupts = <5>; 2689ffbefc1SKonrad Dybcio 2699ffbefc1SKonrad Dybcio clocks = <&dispcc DISP_CC_MDSS_BYTE1_CLK>, 2709ffbefc1SKonrad Dybcio <&dispcc DISP_CC_MDSS_BYTE1_INTF_CLK>, 2719ffbefc1SKonrad Dybcio <&dispcc DISP_CC_MDSS_PCLK1_CLK>, 2729ffbefc1SKonrad Dybcio <&dispcc DISP_CC_MDSS_ESC1_CLK>, 2739ffbefc1SKonrad Dybcio <&dispcc DISP_CC_MDSS_AHB_CLK>, 2749ffbefc1SKonrad Dybcio <&gcc GCC_DISP_HF_AXI_CLK>; 2759ffbefc1SKonrad Dybcio clock-names = "byte", 2769ffbefc1SKonrad Dybcio "byte_intf", 2779ffbefc1SKonrad Dybcio "pixel", 2789ffbefc1SKonrad Dybcio "core", 2799ffbefc1SKonrad Dybcio "iface", 2809ffbefc1SKonrad Dybcio "bus"; 2819ffbefc1SKonrad Dybcio 2829ffbefc1SKonrad Dybcio assigned-clocks = <&dispcc DISP_CC_MDSS_BYTE1_CLK_SRC>, 2839ffbefc1SKonrad Dybcio <&dispcc DISP_CC_MDSS_PCLK1_CLK_SRC>; 2849ffbefc1SKonrad Dybcio assigned-clock-parents = <&dsi1_phy 0>, <&dsi1_phy 1>; 2859ffbefc1SKonrad Dybcio 2869ffbefc1SKonrad Dybcio operating-points-v2 = <&dsi_opp_table>; 2879ffbefc1SKonrad Dybcio power-domains = <&rpmhpd SM8150_MMCX>; 2889ffbefc1SKonrad Dybcio 2899ffbefc1SKonrad Dybcio phys = <&dsi1_phy>; 2909ffbefc1SKonrad Dybcio phy-names = "dsi"; 2919ffbefc1SKonrad Dybcio 2929ffbefc1SKonrad Dybcio #address-cells = <1>; 2939ffbefc1SKonrad Dybcio #size-cells = <0>; 2949ffbefc1SKonrad Dybcio 2959ffbefc1SKonrad Dybcio ports { 2969ffbefc1SKonrad Dybcio #address-cells = <1>; 2979ffbefc1SKonrad Dybcio #size-cells = <0>; 2989ffbefc1SKonrad Dybcio 2999ffbefc1SKonrad Dybcio port@0 { 3009ffbefc1SKonrad Dybcio reg = <0>; 3019ffbefc1SKonrad Dybcio dsi1_in: endpoint { 3029ffbefc1SKonrad Dybcio remote-endpoint = <&dpu_intf2_out>; 3039ffbefc1SKonrad Dybcio }; 3049ffbefc1SKonrad Dybcio }; 3059ffbefc1SKonrad Dybcio 3069ffbefc1SKonrad Dybcio port@1 { 3079ffbefc1SKonrad Dybcio reg = <1>; 3089ffbefc1SKonrad Dybcio dsi1_out: endpoint { 3099ffbefc1SKonrad Dybcio }; 3109ffbefc1SKonrad Dybcio }; 3119ffbefc1SKonrad Dybcio }; 3129ffbefc1SKonrad Dybcio }; 3139ffbefc1SKonrad Dybcio 3149ffbefc1SKonrad Dybcio dsi1_phy: phy@ae96400 { 3159ffbefc1SKonrad Dybcio compatible = "qcom,dsi-phy-7nm"; 3169ffbefc1SKonrad Dybcio reg = <0x0ae96400 0x200>, 3179ffbefc1SKonrad Dybcio <0x0ae96600 0x280>, 3189ffbefc1SKonrad Dybcio <0x0ae96900 0x260>; 3199ffbefc1SKonrad Dybcio reg-names = "dsi_phy", 3209ffbefc1SKonrad Dybcio "dsi_phy_lane", 3219ffbefc1SKonrad Dybcio "dsi_pll"; 3229ffbefc1SKonrad Dybcio 3239ffbefc1SKonrad Dybcio #clock-cells = <1>; 3249ffbefc1SKonrad Dybcio #phy-cells = <0>; 3259ffbefc1SKonrad Dybcio 3269ffbefc1SKonrad Dybcio clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>, 3279ffbefc1SKonrad Dybcio <&rpmhcc RPMH_CXO_CLK>; 3289ffbefc1SKonrad Dybcio clock-names = "iface", "ref"; 3299ffbefc1SKonrad Dybcio vdds-supply = <&vreg_dsi_phy>; 3309ffbefc1SKonrad Dybcio }; 3319ffbefc1SKonrad Dybcio }; 3329ffbefc1SKonrad Dybcio... 333