1*81de2673SAbel Vesa# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 2*81de2673SAbel Vesa%YAML 1.2 3*81de2673SAbel Vesa--- 4*81de2673SAbel Vesa$id: http://devicetree.org/schemas/display/msm/qcom,x1e80100-mdss.yaml# 5*81de2673SAbel Vesa$schema: http://devicetree.org/meta-schemas/core.yaml# 6*81de2673SAbel Vesa 7*81de2673SAbel Vesatitle: Qualcomm X1E80100 Display MDSS 8*81de2673SAbel Vesa 9*81de2673SAbel Vesamaintainers: 10*81de2673SAbel Vesa - Abel Vesa <abel.vesa@linaro.org> 11*81de2673SAbel Vesa 12*81de2673SAbel Vesadescription: 13*81de2673SAbel Vesa X1E80100 MSM Mobile Display Subsystem(MDSS), which encapsulates sub-blocks like 14*81de2673SAbel Vesa DPU display controller, DP interfaces, etc. 15*81de2673SAbel Vesa 16*81de2673SAbel Vesa$ref: /schemas/display/msm/mdss-common.yaml# 17*81de2673SAbel Vesa 18*81de2673SAbel Vesaproperties: 19*81de2673SAbel Vesa compatible: 20*81de2673SAbel Vesa const: qcom,x1e80100-mdss 21*81de2673SAbel Vesa 22*81de2673SAbel Vesa clocks: 23*81de2673SAbel Vesa items: 24*81de2673SAbel Vesa - description: Display AHB 25*81de2673SAbel Vesa - description: Display hf AXI 26*81de2673SAbel Vesa - description: Display core 27*81de2673SAbel Vesa 28*81de2673SAbel Vesa iommus: 29*81de2673SAbel Vesa maxItems: 1 30*81de2673SAbel Vesa 31*81de2673SAbel Vesa interconnects: 32*81de2673SAbel Vesa maxItems: 3 33*81de2673SAbel Vesa 34*81de2673SAbel Vesa interconnect-names: 35*81de2673SAbel Vesa maxItems: 3 36*81de2673SAbel Vesa 37*81de2673SAbel VesapatternProperties: 38*81de2673SAbel Vesa "^display-controller@[0-9a-f]+$": 39*81de2673SAbel Vesa type: object 40*81de2673SAbel Vesa additionalProperties: true 41*81de2673SAbel Vesa properties: 42*81de2673SAbel Vesa compatible: 43*81de2673SAbel Vesa const: qcom,x1e80100-dpu 44*81de2673SAbel Vesa 45*81de2673SAbel Vesa "^displayport-controller@[0-9a-f]+$": 46*81de2673SAbel Vesa type: object 47*81de2673SAbel Vesa additionalProperties: true 48*81de2673SAbel Vesa properties: 49*81de2673SAbel Vesa compatible: 50*81de2673SAbel Vesa const: qcom,x1e80100-dp 51*81de2673SAbel Vesa 52*81de2673SAbel Vesa "^phy@[0-9a-f]+$": 53*81de2673SAbel Vesa type: object 54*81de2673SAbel Vesa additionalProperties: true 55*81de2673SAbel Vesa properties: 56*81de2673SAbel Vesa compatible: 57*81de2673SAbel Vesa const: qcom,x1e80100-dp-phy 58*81de2673SAbel Vesa 59*81de2673SAbel Vesarequired: 60*81de2673SAbel Vesa - compatible 61*81de2673SAbel Vesa 62*81de2673SAbel VesaunevaluatedProperties: false 63*81de2673SAbel Vesa 64*81de2673SAbel Vesaexamples: 65*81de2673SAbel Vesa - | 66*81de2673SAbel Vesa #include <dt-bindings/clock/qcom,rpmh.h> 67*81de2673SAbel Vesa #include <dt-bindings/interrupt-controller/arm-gic.h> 68*81de2673SAbel Vesa #include <dt-bindings/interconnect/qcom,x1e80100-rpmh.h> 69*81de2673SAbel Vesa #include <dt-bindings/phy/phy-qcom-qmp.h> 70*81de2673SAbel Vesa #include <dt-bindings/power/qcom,rpmhpd.h> 71*81de2673SAbel Vesa 72*81de2673SAbel Vesa display-subsystem@ae00000 { 73*81de2673SAbel Vesa compatible = "qcom,x1e80100-mdss"; 74*81de2673SAbel Vesa reg = <0x0ae00000 0x1000>; 75*81de2673SAbel Vesa reg-names = "mdss"; 76*81de2673SAbel Vesa 77*81de2673SAbel Vesa interconnects = <&mmss_noc MASTER_MDP 0 &gem_noc SLAVE_LLCC 0>, 78*81de2673SAbel Vesa <&mc_virt MASTER_LLCC 0 &mc_virt SLAVE_EBI1 0>, 79*81de2673SAbel Vesa <&gem_noc MASTER_APPSS_PROC 0 &config_noc SLAVE_DISPLAY_CFG 0>; 80*81de2673SAbel Vesa interconnect-names = "mdp0-mem", "mdp1-mem", "cpu-cfg"; 81*81de2673SAbel Vesa 82*81de2673SAbel Vesa resets = <&dispcc_core_bcr>; 83*81de2673SAbel Vesa 84*81de2673SAbel Vesa power-domains = <&dispcc_gdsc>; 85*81de2673SAbel Vesa 86*81de2673SAbel Vesa clocks = <&dispcc_ahb_clk>, 87*81de2673SAbel Vesa <&gcc_disp_hf_axi_clk>, 88*81de2673SAbel Vesa <&dispcc_mdp_clk>; 89*81de2673SAbel Vesa clock-names = "bus", "nrt_bus", "core"; 90*81de2673SAbel Vesa 91*81de2673SAbel Vesa interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>; 92*81de2673SAbel Vesa interrupt-controller; 93*81de2673SAbel Vesa #interrupt-cells = <1>; 94*81de2673SAbel Vesa 95*81de2673SAbel Vesa iommus = <&apps_smmu 0x1c00 0x2>; 96*81de2673SAbel Vesa 97*81de2673SAbel Vesa #address-cells = <1>; 98*81de2673SAbel Vesa #size-cells = <1>; 99*81de2673SAbel Vesa ranges; 100*81de2673SAbel Vesa 101*81de2673SAbel Vesa display-controller@ae01000 { 102*81de2673SAbel Vesa compatible = "qcom,x1e80100-dpu"; 103*81de2673SAbel Vesa reg = <0x0ae01000 0x8f000>, 104*81de2673SAbel Vesa <0x0aeb0000 0x2008>; 105*81de2673SAbel Vesa reg-names = "mdp", "vbif"; 106*81de2673SAbel Vesa 107*81de2673SAbel Vesa clocks = <&gcc_axi_clk>, 108*81de2673SAbel Vesa <&dispcc_ahb_clk>, 109*81de2673SAbel Vesa <&dispcc_mdp_lut_clk>, 110*81de2673SAbel Vesa <&dispcc_mdp_clk>, 111*81de2673SAbel Vesa <&dispcc_mdp_vsync_clk>; 112*81de2673SAbel Vesa clock-names = "nrt_bus", 113*81de2673SAbel Vesa "iface", 114*81de2673SAbel Vesa "lut", 115*81de2673SAbel Vesa "core", 116*81de2673SAbel Vesa "vsync"; 117*81de2673SAbel Vesa 118*81de2673SAbel Vesa assigned-clocks = <&dispcc_mdp_vsync_clk>; 119*81de2673SAbel Vesa assigned-clock-rates = <19200000>; 120*81de2673SAbel Vesa 121*81de2673SAbel Vesa operating-points-v2 = <&mdp_opp_table>; 122*81de2673SAbel Vesa power-domains = <&rpmhpd RPMHPD_MMCX>; 123*81de2673SAbel Vesa 124*81de2673SAbel Vesa interrupt-parent = <&mdss>; 125*81de2673SAbel Vesa interrupts = <0>; 126*81de2673SAbel Vesa 127*81de2673SAbel Vesa ports { 128*81de2673SAbel Vesa #address-cells = <1>; 129*81de2673SAbel Vesa #size-cells = <0>; 130*81de2673SAbel Vesa 131*81de2673SAbel Vesa port@0 { 132*81de2673SAbel Vesa reg = <0>; 133*81de2673SAbel Vesa dpu_intf1_out: endpoint { 134*81de2673SAbel Vesa remote-endpoint = <&dsi0_in>; 135*81de2673SAbel Vesa }; 136*81de2673SAbel Vesa }; 137*81de2673SAbel Vesa 138*81de2673SAbel Vesa port@1 { 139*81de2673SAbel Vesa reg = <1>; 140*81de2673SAbel Vesa dpu_intf2_out: endpoint { 141*81de2673SAbel Vesa remote-endpoint = <&dsi1_in>; 142*81de2673SAbel Vesa }; 143*81de2673SAbel Vesa }; 144*81de2673SAbel Vesa }; 145*81de2673SAbel Vesa 146*81de2673SAbel Vesa mdp_opp_table: opp-table { 147*81de2673SAbel Vesa compatible = "operating-points-v2"; 148*81de2673SAbel Vesa 149*81de2673SAbel Vesa opp-200000000 { 150*81de2673SAbel Vesa opp-hz = /bits/ 64 <200000000>; 151*81de2673SAbel Vesa required-opps = <&rpmhpd_opp_low_svs>; 152*81de2673SAbel Vesa }; 153*81de2673SAbel Vesa 154*81de2673SAbel Vesa opp-325000000 { 155*81de2673SAbel Vesa opp-hz = /bits/ 64 <325000000>; 156*81de2673SAbel Vesa required-opps = <&rpmhpd_opp_svs>; 157*81de2673SAbel Vesa }; 158*81de2673SAbel Vesa 159*81de2673SAbel Vesa opp-375000000 { 160*81de2673SAbel Vesa opp-hz = /bits/ 64 <375000000>; 161*81de2673SAbel Vesa required-opps = <&rpmhpd_opp_svs_l1>; 162*81de2673SAbel Vesa }; 163*81de2673SAbel Vesa 164*81de2673SAbel Vesa opp-514000000 { 165*81de2673SAbel Vesa opp-hz = /bits/ 64 <514000000>; 166*81de2673SAbel Vesa required-opps = <&rpmhpd_opp_nom>; 167*81de2673SAbel Vesa }; 168*81de2673SAbel Vesa }; 169*81de2673SAbel Vesa }; 170*81de2673SAbel Vesa 171*81de2673SAbel Vesa displayport-controller@ae90000 { 172*81de2673SAbel Vesa compatible = "qcom,x1e80100-dp"; 173*81de2673SAbel Vesa reg = <0 0xae90000 0 0x200>, 174*81de2673SAbel Vesa <0 0xae90200 0 0x200>, 175*81de2673SAbel Vesa <0 0xae90400 0 0x600>, 176*81de2673SAbel Vesa <0 0xae91000 0 0x400>, 177*81de2673SAbel Vesa <0 0xae91400 0 0x400>; 178*81de2673SAbel Vesa 179*81de2673SAbel Vesa interrupt-parent = <&mdss>; 180*81de2673SAbel Vesa interrupts = <12>; 181*81de2673SAbel Vesa 182*81de2673SAbel Vesa clocks = <&dispcc_mdss_ahb_clk>, 183*81de2673SAbel Vesa <&dispcc_dptx0_aux_clk>, 184*81de2673SAbel Vesa <&dispcc_dptx0_link_clk>, 185*81de2673SAbel Vesa <&dispcc_dptx0_link_intf_clk>, 186*81de2673SAbel Vesa <&dispcc_dptx0_pixel0_clk>; 187*81de2673SAbel Vesa clock-names = "core_iface", "core_aux", 188*81de2673SAbel Vesa "ctrl_link", 189*81de2673SAbel Vesa "ctrl_link_iface", 190*81de2673SAbel Vesa "stream_pixel"; 191*81de2673SAbel Vesa 192*81de2673SAbel Vesa assigned-clocks = <&dispcc_mdss_dptx0_link_clk_src>, 193*81de2673SAbel Vesa <&dispcc_mdss_dptx0_pixel0_clk_src>; 194*81de2673SAbel Vesa assigned-clock-parents = <&usb_1_ss0_qmpphy QMP_USB43DP_DP_LINK_CLK>, 195*81de2673SAbel Vesa <&usb_1_ss0_qmpphy QMP_USB43DP_DP_VCO_DIV_CLK>; 196*81de2673SAbel Vesa 197*81de2673SAbel Vesa operating-points-v2 = <&mdss_dp0_opp_table>; 198*81de2673SAbel Vesa 199*81de2673SAbel Vesa power-domains = <&rpmhpd RPMHPD_MMCX>; 200*81de2673SAbel Vesa 201*81de2673SAbel Vesa phys = <&usb_1_ss0_qmpphy QMP_USB43DP_DP_PHY>; 202*81de2673SAbel Vesa phy-names = "dp"; 203*81de2673SAbel Vesa 204*81de2673SAbel Vesa #sound-dai-cells = <0>; 205*81de2673SAbel Vesa 206*81de2673SAbel Vesa ports { 207*81de2673SAbel Vesa #address-cells = <1>; 208*81de2673SAbel Vesa #size-cells = <0>; 209*81de2673SAbel Vesa 210*81de2673SAbel Vesa port@0 { 211*81de2673SAbel Vesa reg = <0>; 212*81de2673SAbel Vesa 213*81de2673SAbel Vesa mdss_dp0_in: endpoint { 214*81de2673SAbel Vesa remote-endpoint = <&mdss_intf0_out>; 215*81de2673SAbel Vesa }; 216*81de2673SAbel Vesa }; 217*81de2673SAbel Vesa 218*81de2673SAbel Vesa port@1 { 219*81de2673SAbel Vesa reg = <1>; 220*81de2673SAbel Vesa 221*81de2673SAbel Vesa mdss_dp0_out: endpoint { 222*81de2673SAbel Vesa }; 223*81de2673SAbel Vesa }; 224*81de2673SAbel Vesa }; 225*81de2673SAbel Vesa 226*81de2673SAbel Vesa mdss_dp0_opp_table: opp-table { 227*81de2673SAbel Vesa compatible = "operating-points-v2"; 228*81de2673SAbel Vesa 229*81de2673SAbel Vesa opp-160000000 { 230*81de2673SAbel Vesa opp-hz = /bits/ 64 <160000000>; 231*81de2673SAbel Vesa required-opps = <&rpmhpd_opp_low_svs>; 232*81de2673SAbel Vesa }; 233*81de2673SAbel Vesa 234*81de2673SAbel Vesa opp-270000000 { 235*81de2673SAbel Vesa opp-hz = /bits/ 64 <270000000>; 236*81de2673SAbel Vesa required-opps = <&rpmhpd_opp_svs>; 237*81de2673SAbel Vesa }; 238*81de2673SAbel Vesa 239*81de2673SAbel Vesa opp-540000000 { 240*81de2673SAbel Vesa opp-hz = /bits/ 64 <540000000>; 241*81de2673SAbel Vesa required-opps = <&rpmhpd_opp_svs_l1>; 242*81de2673SAbel Vesa }; 243*81de2673SAbel Vesa 244*81de2673SAbel Vesa opp-810000000 { 245*81de2673SAbel Vesa opp-hz = /bits/ 64 <810000000>; 246*81de2673SAbel Vesa required-opps = <&rpmhpd_opp_nom>; 247*81de2673SAbel Vesa }; 248*81de2673SAbel Vesa }; 249*81de2673SAbel Vesa }; 250*81de2673SAbel Vesa }; 251*81de2673SAbel Vesa... 252