1*0a40e2e9SKrzysztof Kozlowski# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 2*0a40e2e9SKrzysztof Kozlowski%YAML 1.2 3*0a40e2e9SKrzysztof Kozlowski--- 4*0a40e2e9SKrzysztof Kozlowski$id: http://devicetree.org/schemas/display/msm/qcom,eliza-mdss.yaml# 5*0a40e2e9SKrzysztof Kozlowski$schema: http://devicetree.org/meta-schemas/core.yaml# 6*0a40e2e9SKrzysztof Kozlowski 7*0a40e2e9SKrzysztof Kozlowskititle: Qualcomm Eliza SoC Display MDSS 8*0a40e2e9SKrzysztof Kozlowski 9*0a40e2e9SKrzysztof Kozlowskimaintainers: 10*0a40e2e9SKrzysztof Kozlowski - Krzysztof Kozlowski <krzk@kernel.org> 11*0a40e2e9SKrzysztof Kozlowski 12*0a40e2e9SKrzysztof Kozlowskidescription: 13*0a40e2e9SKrzysztof Kozlowski Eliza SoC Mobile Display Subsystem (MDSS) encapsulates sub-blocks like DPU 14*0a40e2e9SKrzysztof Kozlowski display controller, DSI and DP interfaces etc. 15*0a40e2e9SKrzysztof Kozlowski 16*0a40e2e9SKrzysztof Kozlowski$ref: /schemas/display/msm/mdss-common.yaml# 17*0a40e2e9SKrzysztof Kozlowski 18*0a40e2e9SKrzysztof Kozlowskiproperties: 19*0a40e2e9SKrzysztof Kozlowski compatible: 20*0a40e2e9SKrzysztof Kozlowski const: qcom,eliza-mdss 21*0a40e2e9SKrzysztof Kozlowski 22*0a40e2e9SKrzysztof Kozlowski clocks: 23*0a40e2e9SKrzysztof Kozlowski items: 24*0a40e2e9SKrzysztof Kozlowski - description: Display AHB 25*0a40e2e9SKrzysztof Kozlowski - description: Display hf AXI 26*0a40e2e9SKrzysztof Kozlowski - description: Display core 27*0a40e2e9SKrzysztof Kozlowski 28*0a40e2e9SKrzysztof Kozlowski iommus: 29*0a40e2e9SKrzysztof Kozlowski maxItems: 1 30*0a40e2e9SKrzysztof Kozlowski 31*0a40e2e9SKrzysztof Kozlowski interconnects: 32*0a40e2e9SKrzysztof Kozlowski items: 33*0a40e2e9SKrzysztof Kozlowski - description: Interconnect path from mdp0 port to the data bus 34*0a40e2e9SKrzysztof Kozlowski - description: Interconnect path from CPU to the reg bus 35*0a40e2e9SKrzysztof Kozlowski 36*0a40e2e9SKrzysztof Kozlowski interconnect-names: 37*0a40e2e9SKrzysztof Kozlowski items: 38*0a40e2e9SKrzysztof Kozlowski - const: mdp0-mem 39*0a40e2e9SKrzysztof Kozlowski - const: cpu-cfg 40*0a40e2e9SKrzysztof Kozlowski 41*0a40e2e9SKrzysztof KozlowskipatternProperties: 42*0a40e2e9SKrzysztof Kozlowski "^display-controller@[0-9a-f]+$": 43*0a40e2e9SKrzysztof Kozlowski type: object 44*0a40e2e9SKrzysztof Kozlowski additionalProperties: true 45*0a40e2e9SKrzysztof Kozlowski properties: 46*0a40e2e9SKrzysztof Kozlowski compatible: 47*0a40e2e9SKrzysztof Kozlowski contains: 48*0a40e2e9SKrzysztof Kozlowski const: qcom,eliza-dpu 49*0a40e2e9SKrzysztof Kozlowski 50*0a40e2e9SKrzysztof Kozlowski "^displayport-controller@[0-9a-f]+$": 51*0a40e2e9SKrzysztof Kozlowski type: object 52*0a40e2e9SKrzysztof Kozlowski additionalProperties: true 53*0a40e2e9SKrzysztof Kozlowski properties: 54*0a40e2e9SKrzysztof Kozlowski compatible: 55*0a40e2e9SKrzysztof Kozlowski contains: 56*0a40e2e9SKrzysztof Kozlowski const: qcom,eliza-dp 57*0a40e2e9SKrzysztof Kozlowski 58*0a40e2e9SKrzysztof Kozlowski "^dsi@[0-9a-f]+$": 59*0a40e2e9SKrzysztof Kozlowski type: object 60*0a40e2e9SKrzysztof Kozlowski additionalProperties: true 61*0a40e2e9SKrzysztof Kozlowski properties: 62*0a40e2e9SKrzysztof Kozlowski compatible: 63*0a40e2e9SKrzysztof Kozlowski contains: 64*0a40e2e9SKrzysztof Kozlowski const: qcom,eliza-dsi-ctrl 65*0a40e2e9SKrzysztof Kozlowski 66*0a40e2e9SKrzysztof Kozlowski "^phy@[0-9a-f]+$": 67*0a40e2e9SKrzysztof Kozlowski type: object 68*0a40e2e9SKrzysztof Kozlowski additionalProperties: true 69*0a40e2e9SKrzysztof Kozlowski properties: 70*0a40e2e9SKrzysztof Kozlowski compatible: 71*0a40e2e9SKrzysztof Kozlowski contains: 72*0a40e2e9SKrzysztof Kozlowski const: qcom,eliza-dsi-phy-4nm 73*0a40e2e9SKrzysztof Kozlowski 74*0a40e2e9SKrzysztof Kozlowskirequired: 75*0a40e2e9SKrzysztof Kozlowski - compatible 76*0a40e2e9SKrzysztof Kozlowski 77*0a40e2e9SKrzysztof KozlowskiunevaluatedProperties: false 78*0a40e2e9SKrzysztof Kozlowski 79*0a40e2e9SKrzysztof Kozlowskiexamples: 80*0a40e2e9SKrzysztof Kozlowski - | 81*0a40e2e9SKrzysztof Kozlowski #include <dt-bindings/clock/qcom,dsi-phy-28nm.h> 82*0a40e2e9SKrzysztof Kozlowski #include <dt-bindings/clock/qcom,rpmh.h> 83*0a40e2e9SKrzysztof Kozlowski #include <dt-bindings/interconnect/qcom,icc.h> 84*0a40e2e9SKrzysztof Kozlowski #include <dt-bindings/interrupt-controller/arm-gic.h> 85*0a40e2e9SKrzysztof Kozlowski #include <dt-bindings/phy/phy-qcom-qmp.h> 86*0a40e2e9SKrzysztof Kozlowski #include <dt-bindings/power/qcom,rpmhpd.h> 87*0a40e2e9SKrzysztof Kozlowski 88*0a40e2e9SKrzysztof Kozlowski display-subsystem@ae00000 { 89*0a40e2e9SKrzysztof Kozlowski compatible = "qcom,eliza-mdss"; 90*0a40e2e9SKrzysztof Kozlowski reg = <0x0ae00000 0x1000>; 91*0a40e2e9SKrzysztof Kozlowski reg-names = "mdss"; 92*0a40e2e9SKrzysztof Kozlowski ranges; 93*0a40e2e9SKrzysztof Kozlowski 94*0a40e2e9SKrzysztof Kozlowski interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>; 95*0a40e2e9SKrzysztof Kozlowski 96*0a40e2e9SKrzysztof Kozlowski clocks = <&disp_cc_mdss_ahb_clk>, 97*0a40e2e9SKrzysztof Kozlowski <&gcc_disp_hf_axi_clk>, 98*0a40e2e9SKrzysztof Kozlowski <&disp_cc_mdss_mdp_clk>; 99*0a40e2e9SKrzysztof Kozlowski 100*0a40e2e9SKrzysztof Kozlowski resets = <&disp_cc_mdss_core_bcr>; 101*0a40e2e9SKrzysztof Kozlowski 102*0a40e2e9SKrzysztof Kozlowski interconnects = <&mmss_noc_master_mdp QCOM_ICC_TAG_ALWAYS 103*0a40e2e9SKrzysztof Kozlowski &mc_virt_slave_ebi1 QCOM_ICC_TAG_ALWAYS>, 104*0a40e2e9SKrzysztof Kozlowski <&gem_noc_master_appss_proc QCOM_ICC_TAG_ACTIVE_ONLY 105*0a40e2e9SKrzysztof Kozlowski &config_noc_slave_display_cfg QCOM_ICC_TAG_ACTIVE_ONLY>; 106*0a40e2e9SKrzysztof Kozlowski interconnect-names = "mdp0-mem", 107*0a40e2e9SKrzysztof Kozlowski "cpu-cfg"; 108*0a40e2e9SKrzysztof Kozlowski 109*0a40e2e9SKrzysztof Kozlowski power-domains = <&mdss_gdsc>; 110*0a40e2e9SKrzysztof Kozlowski 111*0a40e2e9SKrzysztof Kozlowski iommus = <&apps_smmu 0x800 0x2>; 112*0a40e2e9SKrzysztof Kozlowski 113*0a40e2e9SKrzysztof Kozlowski interrupt-controller; 114*0a40e2e9SKrzysztof Kozlowski #interrupt-cells = <1>; 115*0a40e2e9SKrzysztof Kozlowski 116*0a40e2e9SKrzysztof Kozlowski #address-cells = <1>; 117*0a40e2e9SKrzysztof Kozlowski #size-cells = <1>; 118*0a40e2e9SKrzysztof Kozlowski 119*0a40e2e9SKrzysztof Kozlowski mdss_mdp: display-controller@ae01000 { 120*0a40e2e9SKrzysztof Kozlowski compatible = "qcom,eliza-dpu"; 121*0a40e2e9SKrzysztof Kozlowski reg = <0x0ae01000 0x93000>, 122*0a40e2e9SKrzysztof Kozlowski <0x0aeb0000 0x2008>; 123*0a40e2e9SKrzysztof Kozlowski reg-names = "mdp", 124*0a40e2e9SKrzysztof Kozlowski "vbif"; 125*0a40e2e9SKrzysztof Kozlowski 126*0a40e2e9SKrzysztof Kozlowski interrupts-extended = <&mdss 0>; 127*0a40e2e9SKrzysztof Kozlowski 128*0a40e2e9SKrzysztof Kozlowski clocks = <&gcc_disp_hf_axi_clk>, 129*0a40e2e9SKrzysztof Kozlowski <&disp_cc_mdss_ahb_clk>, 130*0a40e2e9SKrzysztof Kozlowski <&disp_cc_mdss_mdp_lut_clk>, 131*0a40e2e9SKrzysztof Kozlowski <&disp_cc_mdss_mdp_clk>, 132*0a40e2e9SKrzysztof Kozlowski <&disp_cc_mdss_vsync_clk>; 133*0a40e2e9SKrzysztof Kozlowski clock-names = "nrt_bus", 134*0a40e2e9SKrzysztof Kozlowski "iface", 135*0a40e2e9SKrzysztof Kozlowski "lut", 136*0a40e2e9SKrzysztof Kozlowski "core", 137*0a40e2e9SKrzysztof Kozlowski "vsync"; 138*0a40e2e9SKrzysztof Kozlowski 139*0a40e2e9SKrzysztof Kozlowski assigned-clocks = <&disp_cc_mdss_vsync_clk>; 140*0a40e2e9SKrzysztof Kozlowski assigned-clock-rates = <19200000>; 141*0a40e2e9SKrzysztof Kozlowski 142*0a40e2e9SKrzysztof Kozlowski operating-points-v2 = <&mdp_opp_table>; 143*0a40e2e9SKrzysztof Kozlowski 144*0a40e2e9SKrzysztof Kozlowski power-domains = <&rpmhpd RPMHPD_MMCX>; 145*0a40e2e9SKrzysztof Kozlowski 146*0a40e2e9SKrzysztof Kozlowski ports { 147*0a40e2e9SKrzysztof Kozlowski #address-cells = <1>; 148*0a40e2e9SKrzysztof Kozlowski #size-cells = <0>; 149*0a40e2e9SKrzysztof Kozlowski 150*0a40e2e9SKrzysztof Kozlowski port@0 { 151*0a40e2e9SKrzysztof Kozlowski reg = <0>; 152*0a40e2e9SKrzysztof Kozlowski 153*0a40e2e9SKrzysztof Kozlowski dpu_intf1_out: endpoint { 154*0a40e2e9SKrzysztof Kozlowski remote-endpoint = <&mdss_dsi0_in>; 155*0a40e2e9SKrzysztof Kozlowski }; 156*0a40e2e9SKrzysztof Kozlowski }; 157*0a40e2e9SKrzysztof Kozlowski 158*0a40e2e9SKrzysztof Kozlowski port@1 { 159*0a40e2e9SKrzysztof Kozlowski reg = <1>; 160*0a40e2e9SKrzysztof Kozlowski 161*0a40e2e9SKrzysztof Kozlowski dpu_intf2_out: endpoint { 162*0a40e2e9SKrzysztof Kozlowski remote-endpoint = <&mdss_dsi1_in>; 163*0a40e2e9SKrzysztof Kozlowski }; 164*0a40e2e9SKrzysztof Kozlowski }; 165*0a40e2e9SKrzysztof Kozlowski 166*0a40e2e9SKrzysztof Kozlowski port@2 { 167*0a40e2e9SKrzysztof Kozlowski reg = <2>; 168*0a40e2e9SKrzysztof Kozlowski 169*0a40e2e9SKrzysztof Kozlowski dpu_intf0_out: endpoint { 170*0a40e2e9SKrzysztof Kozlowski remote-endpoint = <&mdss_dp0_in>; 171*0a40e2e9SKrzysztof Kozlowski }; 172*0a40e2e9SKrzysztof Kozlowski }; 173*0a40e2e9SKrzysztof Kozlowski }; 174*0a40e2e9SKrzysztof Kozlowski 175*0a40e2e9SKrzysztof Kozlowski mdp_opp_table: opp-table { 176*0a40e2e9SKrzysztof Kozlowski compatible = "operating-points-v2"; 177*0a40e2e9SKrzysztof Kozlowski 178*0a40e2e9SKrzysztof Kozlowski opp-150000000 { 179*0a40e2e9SKrzysztof Kozlowski opp-hz = /bits/ 64 <150000000>; 180*0a40e2e9SKrzysztof Kozlowski required-opps = <&rpmhpd_opp_low_svs_d1>; 181*0a40e2e9SKrzysztof Kozlowski }; 182*0a40e2e9SKrzysztof Kozlowski 183*0a40e2e9SKrzysztof Kozlowski opp-207000000 { 184*0a40e2e9SKrzysztof Kozlowski opp-hz = /bits/ 64 <207000000>; 185*0a40e2e9SKrzysztof Kozlowski required-opps = <&rpmhpd_opp_low_svs>; 186*0a40e2e9SKrzysztof Kozlowski }; 187*0a40e2e9SKrzysztof Kozlowski 188*0a40e2e9SKrzysztof Kozlowski opp-342000000 { 189*0a40e2e9SKrzysztof Kozlowski opp-hz = /bits/ 64 <342000000>; 190*0a40e2e9SKrzysztof Kozlowski required-opps = <&rpmhpd_opp_svs>; 191*0a40e2e9SKrzysztof Kozlowski }; 192*0a40e2e9SKrzysztof Kozlowski 193*0a40e2e9SKrzysztof Kozlowski opp-417000000 { 194*0a40e2e9SKrzysztof Kozlowski opp-hz = /bits/ 64 <417000000>; 195*0a40e2e9SKrzysztof Kozlowski required-opps = <&rpmhpd_opp_svs_l1>; 196*0a40e2e9SKrzysztof Kozlowski }; 197*0a40e2e9SKrzysztof Kozlowski 198*0a40e2e9SKrzysztof Kozlowski opp-532000000 { 199*0a40e2e9SKrzysztof Kozlowski opp-hz = /bits/ 64 <532000000>; 200*0a40e2e9SKrzysztof Kozlowski required-opps = <&rpmhpd_opp_nom>; 201*0a40e2e9SKrzysztof Kozlowski }; 202*0a40e2e9SKrzysztof Kozlowski 203*0a40e2e9SKrzysztof Kozlowski opp-600000000 { 204*0a40e2e9SKrzysztof Kozlowski opp-hz = /bits/ 64 <600000000>; 205*0a40e2e9SKrzysztof Kozlowski required-opps = <&rpmhpd_opp_nom_l1>; 206*0a40e2e9SKrzysztof Kozlowski }; 207*0a40e2e9SKrzysztof Kozlowski 208*0a40e2e9SKrzysztof Kozlowski opp-660000000 { 209*0a40e2e9SKrzysztof Kozlowski opp-hz = /bits/ 64 <660000000>; 210*0a40e2e9SKrzysztof Kozlowski required-opps = <&rpmhpd_opp_turbo>; 211*0a40e2e9SKrzysztof Kozlowski }; 212*0a40e2e9SKrzysztof Kozlowski }; 213*0a40e2e9SKrzysztof Kozlowski }; 214*0a40e2e9SKrzysztof Kozlowski 215*0a40e2e9SKrzysztof Kozlowski dsi@ae94000 { 216*0a40e2e9SKrzysztof Kozlowski compatible = "qcom,eliza-dsi-ctrl", "qcom,sm8750-dsi-ctrl", "qcom,mdss-dsi-ctrl"; 217*0a40e2e9SKrzysztof Kozlowski reg = <0x0ae94000 0x400>; 218*0a40e2e9SKrzysztof Kozlowski reg-names = "dsi_ctrl"; 219*0a40e2e9SKrzysztof Kozlowski 220*0a40e2e9SKrzysztof Kozlowski interrupts-extended = <&mdss 4>; 221*0a40e2e9SKrzysztof Kozlowski 222*0a40e2e9SKrzysztof Kozlowski clocks = <&disp_cc_mdss_byte0_clk>, 223*0a40e2e9SKrzysztof Kozlowski <&disp_cc_mdss_byte0_intf_clk>, 224*0a40e2e9SKrzysztof Kozlowski <&disp_cc_mdss_pclk0_clk>, 225*0a40e2e9SKrzysztof Kozlowski <&disp_cc_mdss_esc0_clk>, 226*0a40e2e9SKrzysztof Kozlowski <&disp_cc_mdss_ahb_clk>, 227*0a40e2e9SKrzysztof Kozlowski <&gcc_disp_hf_axi_clk>, 228*0a40e2e9SKrzysztof Kozlowski <&mdss_dsi0_phy DSI_PIXEL_PLL_CLK>, 229*0a40e2e9SKrzysztof Kozlowski <&mdss_dsi0_phy DSI_BYTE_PLL_CLK>, 230*0a40e2e9SKrzysztof Kozlowski <&disp_cc_esync0_clk>, 231*0a40e2e9SKrzysztof Kozlowski <&disp_cc_osc_clk>, 232*0a40e2e9SKrzysztof Kozlowski <&disp_cc_mdss_byte0_clk_src>, 233*0a40e2e9SKrzysztof Kozlowski <&disp_cc_mdss_pclk0_clk_src>; 234*0a40e2e9SKrzysztof Kozlowski clock-names = "byte", 235*0a40e2e9SKrzysztof Kozlowski "byte_intf", 236*0a40e2e9SKrzysztof Kozlowski "pixel", 237*0a40e2e9SKrzysztof Kozlowski "core", 238*0a40e2e9SKrzysztof Kozlowski "iface", 239*0a40e2e9SKrzysztof Kozlowski "bus", 240*0a40e2e9SKrzysztof Kozlowski "dsi_pll_pixel", 241*0a40e2e9SKrzysztof Kozlowski "dsi_pll_byte", 242*0a40e2e9SKrzysztof Kozlowski "esync", 243*0a40e2e9SKrzysztof Kozlowski "osc", 244*0a40e2e9SKrzysztof Kozlowski "byte_src", 245*0a40e2e9SKrzysztof Kozlowski "pixel_src"; 246*0a40e2e9SKrzysztof Kozlowski 247*0a40e2e9SKrzysztof Kozlowski operating-points-v2 = <&mdss_dsi_opp_table>; 248*0a40e2e9SKrzysztof Kozlowski 249*0a40e2e9SKrzysztof Kozlowski power-domains = <&rpmhpd RPMHPD_MMCX>; 250*0a40e2e9SKrzysztof Kozlowski 251*0a40e2e9SKrzysztof Kozlowski phys = <&mdss_dsi0_phy>; 252*0a40e2e9SKrzysztof Kozlowski phy-names = "dsi"; 253*0a40e2e9SKrzysztof Kozlowski 254*0a40e2e9SKrzysztof Kozlowski #address-cells = <1>; 255*0a40e2e9SKrzysztof Kozlowski #size-cells = <0>; 256*0a40e2e9SKrzysztof Kozlowski 257*0a40e2e9SKrzysztof Kozlowski ports { 258*0a40e2e9SKrzysztof Kozlowski #address-cells = <1>; 259*0a40e2e9SKrzysztof Kozlowski #size-cells = <0>; 260*0a40e2e9SKrzysztof Kozlowski 261*0a40e2e9SKrzysztof Kozlowski port@0 { 262*0a40e2e9SKrzysztof Kozlowski reg = <0>; 263*0a40e2e9SKrzysztof Kozlowski 264*0a40e2e9SKrzysztof Kozlowski mdss_dsi0_in: endpoint { 265*0a40e2e9SKrzysztof Kozlowski remote-endpoint = <&dpu_intf1_out>; 266*0a40e2e9SKrzysztof Kozlowski }; 267*0a40e2e9SKrzysztof Kozlowski }; 268*0a40e2e9SKrzysztof Kozlowski 269*0a40e2e9SKrzysztof Kozlowski port@1 { 270*0a40e2e9SKrzysztof Kozlowski reg = <1>; 271*0a40e2e9SKrzysztof Kozlowski 272*0a40e2e9SKrzysztof Kozlowski mdss_dsi0_out: endpoint { 273*0a40e2e9SKrzysztof Kozlowski remote-endpoint = <&panel0_in>; 274*0a40e2e9SKrzysztof Kozlowski data-lanes = <0 1 2 3>; 275*0a40e2e9SKrzysztof Kozlowski }; 276*0a40e2e9SKrzysztof Kozlowski }; 277*0a40e2e9SKrzysztof Kozlowski }; 278*0a40e2e9SKrzysztof Kozlowski 279*0a40e2e9SKrzysztof Kozlowski mdss_dsi_opp_table: opp-table { 280*0a40e2e9SKrzysztof Kozlowski compatible = "operating-points-v2"; 281*0a40e2e9SKrzysztof Kozlowski 282*0a40e2e9SKrzysztof Kozlowski opp-140630000 { 283*0a40e2e9SKrzysztof Kozlowski opp-hz = /bits/ 64 <140630000>; 284*0a40e2e9SKrzysztof Kozlowski required-opps = <&rpmhpd_opp_low_svs_d1>; 285*0a40e2e9SKrzysztof Kozlowski }; 286*0a40e2e9SKrzysztof Kozlowski 287*0a40e2e9SKrzysztof Kozlowski opp-187500000 { 288*0a40e2e9SKrzysztof Kozlowski opp-hz = /bits/ 64 <187500000>; 289*0a40e2e9SKrzysztof Kozlowski required-opps = <&rpmhpd_opp_low_svs>; 290*0a40e2e9SKrzysztof Kozlowski }; 291*0a40e2e9SKrzysztof Kozlowski 292*0a40e2e9SKrzysztof Kozlowski opp-300000000 { 293*0a40e2e9SKrzysztof Kozlowski opp-hz = /bits/ 64 <300000000>; 294*0a40e2e9SKrzysztof Kozlowski required-opps = <&rpmhpd_opp_svs>; 295*0a40e2e9SKrzysztof Kozlowski }; 296*0a40e2e9SKrzysztof Kozlowski 297*0a40e2e9SKrzysztof Kozlowski opp-358000000 { 298*0a40e2e9SKrzysztof Kozlowski opp-hz = /bits/ 64 <358000000>; 299*0a40e2e9SKrzysztof Kozlowski required-opps = <&rpmhpd_opp_svs_l1>; 300*0a40e2e9SKrzysztof Kozlowski }; 301*0a40e2e9SKrzysztof Kozlowski }; 302*0a40e2e9SKrzysztof Kozlowski }; 303*0a40e2e9SKrzysztof Kozlowski 304*0a40e2e9SKrzysztof Kozlowski mdss_dsi0_phy: phy@ae95000 { 305*0a40e2e9SKrzysztof Kozlowski compatible = "qcom,eliza-dsi-phy-4nm", "qcom,sm8650-dsi-phy-4nm"; 306*0a40e2e9SKrzysztof Kozlowski reg = <0x0ae95000 0x200>, 307*0a40e2e9SKrzysztof Kozlowski <0x0ae95200 0x280>, 308*0a40e2e9SKrzysztof Kozlowski <0x0ae95500 0x400>; 309*0a40e2e9SKrzysztof Kozlowski reg-names = "dsi_phy", 310*0a40e2e9SKrzysztof Kozlowski "dsi_phy_lane", 311*0a40e2e9SKrzysztof Kozlowski "dsi_pll"; 312*0a40e2e9SKrzysztof Kozlowski 313*0a40e2e9SKrzysztof Kozlowski clocks = <&disp_cc_mdss_ahb_clk>, 314*0a40e2e9SKrzysztof Kozlowski <&bi_tcxo_div2>; 315*0a40e2e9SKrzysztof Kozlowski clock-names = "iface", 316*0a40e2e9SKrzysztof Kozlowski "ref"; 317*0a40e2e9SKrzysztof Kozlowski 318*0a40e2e9SKrzysztof Kozlowski #clock-cells = <1>; 319*0a40e2e9SKrzysztof Kozlowski #phy-cells = <0>; 320*0a40e2e9SKrzysztof Kozlowski 321*0a40e2e9SKrzysztof Kozlowski vdds-supply = <&vreg_l2b>; 322*0a40e2e9SKrzysztof Kozlowski }; 323*0a40e2e9SKrzysztof Kozlowski 324*0a40e2e9SKrzysztof Kozlowski dsi@ae96000 { 325*0a40e2e9SKrzysztof Kozlowski compatible = "qcom,eliza-dsi-ctrl", "qcom,sm8750-dsi-ctrl", "qcom,mdss-dsi-ctrl"; 326*0a40e2e9SKrzysztof Kozlowski reg = <0x0ae96000 0x400>; 327*0a40e2e9SKrzysztof Kozlowski reg-names = "dsi_ctrl"; 328*0a40e2e9SKrzysztof Kozlowski 329*0a40e2e9SKrzysztof Kozlowski interrupts-extended = <&mdss 5>; 330*0a40e2e9SKrzysztof Kozlowski 331*0a40e2e9SKrzysztof Kozlowski clocks = <&disp_cc_mdss_byte1_clk>, 332*0a40e2e9SKrzysztof Kozlowski <&disp_cc_mdss_byte1_intf_clk>, 333*0a40e2e9SKrzysztof Kozlowski <&disp_cc_mdss_pclk1_clk>, 334*0a40e2e9SKrzysztof Kozlowski <&disp_cc_mdss_esc1_clk>, 335*0a40e2e9SKrzysztof Kozlowski <&disp_cc_mdss_ahb_clk>, 336*0a40e2e9SKrzysztof Kozlowski <&gcc_disp_hf_axi_clk>, 337*0a40e2e9SKrzysztof Kozlowski <&mdss_dsi1_phy DSI_PIXEL_PLL_CLK>, 338*0a40e2e9SKrzysztof Kozlowski <&mdss_dsi1_phy DSI_BYTE_PLL_CLK>, 339*0a40e2e9SKrzysztof Kozlowski <&disp_cc_esync1_clk>, 340*0a40e2e9SKrzysztof Kozlowski <&disp_cc_osc_clk>, 341*0a40e2e9SKrzysztof Kozlowski <&disp_cc_mdss_byte1_clk_src>, 342*0a40e2e9SKrzysztof Kozlowski <&disp_cc_mdss_pclk1_clk_src>; 343*0a40e2e9SKrzysztof Kozlowski clock-names = "byte", 344*0a40e2e9SKrzysztof Kozlowski "byte_intf", 345*0a40e2e9SKrzysztof Kozlowski "pixel", 346*0a40e2e9SKrzysztof Kozlowski "core", 347*0a40e2e9SKrzysztof Kozlowski "iface", 348*0a40e2e9SKrzysztof Kozlowski "bus", 349*0a40e2e9SKrzysztof Kozlowski "dsi_pll_pixel", 350*0a40e2e9SKrzysztof Kozlowski "dsi_pll_byte", 351*0a40e2e9SKrzysztof Kozlowski "esync", 352*0a40e2e9SKrzysztof Kozlowski "osc", 353*0a40e2e9SKrzysztof Kozlowski "byte_src", 354*0a40e2e9SKrzysztof Kozlowski "pixel_src"; 355*0a40e2e9SKrzysztof Kozlowski 356*0a40e2e9SKrzysztof Kozlowski operating-points-v2 = <&mdss_dsi_opp_table>; 357*0a40e2e9SKrzysztof Kozlowski 358*0a40e2e9SKrzysztof Kozlowski power-domains = <&rpmhpd RPMHPD_MMCX>; 359*0a40e2e9SKrzysztof Kozlowski 360*0a40e2e9SKrzysztof Kozlowski phys = <&mdss_dsi1_phy>; 361*0a40e2e9SKrzysztof Kozlowski phy-names = "dsi"; 362*0a40e2e9SKrzysztof Kozlowski 363*0a40e2e9SKrzysztof Kozlowski vdda-supply = <&vreg_l4b>; 364*0a40e2e9SKrzysztof Kozlowski 365*0a40e2e9SKrzysztof Kozlowski ports { 366*0a40e2e9SKrzysztof Kozlowski #address-cells = <1>; 367*0a40e2e9SKrzysztof Kozlowski #size-cells = <0>; 368*0a40e2e9SKrzysztof Kozlowski 369*0a40e2e9SKrzysztof Kozlowski port@0 { 370*0a40e2e9SKrzysztof Kozlowski reg = <0>; 371*0a40e2e9SKrzysztof Kozlowski 372*0a40e2e9SKrzysztof Kozlowski mdss_dsi1_in: endpoint { 373*0a40e2e9SKrzysztof Kozlowski remote-endpoint = <&dpu_intf2_out>; 374*0a40e2e9SKrzysztof Kozlowski }; 375*0a40e2e9SKrzysztof Kozlowski }; 376*0a40e2e9SKrzysztof Kozlowski 377*0a40e2e9SKrzysztof Kozlowski port@1 { 378*0a40e2e9SKrzysztof Kozlowski reg = <1>; 379*0a40e2e9SKrzysztof Kozlowski 380*0a40e2e9SKrzysztof Kozlowski mdss_dsi1_out: endpoint { 381*0a40e2e9SKrzysztof Kozlowski remote-endpoint = <&panel1_in>; 382*0a40e2e9SKrzysztof Kozlowski data-lanes = <0 1 2 3>; 383*0a40e2e9SKrzysztof Kozlowski }; 384*0a40e2e9SKrzysztof Kozlowski }; 385*0a40e2e9SKrzysztof Kozlowski }; 386*0a40e2e9SKrzysztof Kozlowski }; 387*0a40e2e9SKrzysztof Kozlowski 388*0a40e2e9SKrzysztof Kozlowski mdss_dsi1_phy: phy@ae97000 { 389*0a40e2e9SKrzysztof Kozlowski compatible = "qcom,eliza-dsi-phy-4nm", "qcom,sm8650-dsi-phy-4nm"; 390*0a40e2e9SKrzysztof Kozlowski reg = <0x0ae97000 0x200>, 391*0a40e2e9SKrzysztof Kozlowski <0x0ae97200 0x280>, 392*0a40e2e9SKrzysztof Kozlowski <0x0ae97500 0x400>; 393*0a40e2e9SKrzysztof Kozlowski reg-names = "dsi_phy", 394*0a40e2e9SKrzysztof Kozlowski "dsi_phy_lane", 395*0a40e2e9SKrzysztof Kozlowski "dsi_pll"; 396*0a40e2e9SKrzysztof Kozlowski 397*0a40e2e9SKrzysztof Kozlowski clocks = <&disp_cc_mdss_ahb_clk>, 398*0a40e2e9SKrzysztof Kozlowski <&rpmhcc RPMH_CXO_CLK>; 399*0a40e2e9SKrzysztof Kozlowski clock-names = "iface", 400*0a40e2e9SKrzysztof Kozlowski "ref"; 401*0a40e2e9SKrzysztof Kozlowski 402*0a40e2e9SKrzysztof Kozlowski #clock-cells = <1>; 403*0a40e2e9SKrzysztof Kozlowski #phy-cells = <0>; 404*0a40e2e9SKrzysztof Kozlowski 405*0a40e2e9SKrzysztof Kozlowski vdds-supply = <&vreg_l2b>; 406*0a40e2e9SKrzysztof Kozlowski }; 407*0a40e2e9SKrzysztof Kozlowski 408*0a40e2e9SKrzysztof Kozlowski displayport-controller@af54000 { 409*0a40e2e9SKrzysztof Kozlowski compatible = "qcom,eliza-dp", "qcom,sm8650-dp"; 410*0a40e2e9SKrzysztof Kozlowski reg = <0xaf54000 0x104>, 411*0a40e2e9SKrzysztof Kozlowski <0xaf54200 0xc0>, 412*0a40e2e9SKrzysztof Kozlowski <0xaf55000 0x770>, 413*0a40e2e9SKrzysztof Kozlowski <0xaf56000 0x9c>, 414*0a40e2e9SKrzysztof Kozlowski <0xaf57000 0x9c>; 415*0a40e2e9SKrzysztof Kozlowski 416*0a40e2e9SKrzysztof Kozlowski interrupts-extended = <&mdss 12>; 417*0a40e2e9SKrzysztof Kozlowski 418*0a40e2e9SKrzysztof Kozlowski clocks = <&disp_cc_mdss_ahb_clk>, 419*0a40e2e9SKrzysztof Kozlowski <&disp_cc_mdss_dptx0_aux_clk>, 420*0a40e2e9SKrzysztof Kozlowski <&disp_cc_mdss_dptx0_link_clk>, 421*0a40e2e9SKrzysztof Kozlowski <&disp_cc_mdss_dptx0_link_intf_clk>, 422*0a40e2e9SKrzysztof Kozlowski <&disp_cc_mdss_dptx0_pixel0_clk>, 423*0a40e2e9SKrzysztof Kozlowski <&disp_cc_mdss_dptx0_pixel1_clk>; 424*0a40e2e9SKrzysztof Kozlowski clock-names = "core_iface", 425*0a40e2e9SKrzysztof Kozlowski "core_aux", 426*0a40e2e9SKrzysztof Kozlowski "ctrl_link", 427*0a40e2e9SKrzysztof Kozlowski "ctrl_link_iface", 428*0a40e2e9SKrzysztof Kozlowski "stream_pixel", 429*0a40e2e9SKrzysztof Kozlowski "stream_1_pixel"; 430*0a40e2e9SKrzysztof Kozlowski 431*0a40e2e9SKrzysztof Kozlowski assigned-clocks = <&disp_cc_mdss_dptx0_link_clk_src>, 432*0a40e2e9SKrzysztof Kozlowski <&disp_cc_mdss_dptx0_pixel0_clk_src>, 433*0a40e2e9SKrzysztof Kozlowski <&disp_cc_mdss_dptx0_pixel1_clk_src>; 434*0a40e2e9SKrzysztof Kozlowski assigned-clock-parents = <&usb_dp_qmpphy QMP_USB43DP_DP_LINK_CLK>, 435*0a40e2e9SKrzysztof Kozlowski <&usb_dp_qmpphy QMP_USB43DP_DP_VCO_DIV_CLK>, 436*0a40e2e9SKrzysztof Kozlowski <&usb_dp_qmpphy QMP_USB43DP_DP_VCO_DIV_CLK>; 437*0a40e2e9SKrzysztof Kozlowski 438*0a40e2e9SKrzysztof Kozlowski operating-points-v2 = <&dp_opp_table>; 439*0a40e2e9SKrzysztof Kozlowski 440*0a40e2e9SKrzysztof Kozlowski power-domains = <&rpmhpd RPMHPD_MMCX>; 441*0a40e2e9SKrzysztof Kozlowski 442*0a40e2e9SKrzysztof Kozlowski phys = <&usb_dp_qmpphy QMP_USB43DP_DP_PHY>; 443*0a40e2e9SKrzysztof Kozlowski phy-names = "dp"; 444*0a40e2e9SKrzysztof Kozlowski 445*0a40e2e9SKrzysztof Kozlowski #sound-dai-cells = <0>; 446*0a40e2e9SKrzysztof Kozlowski 447*0a40e2e9SKrzysztof Kozlowski dp_opp_table: opp-table { 448*0a40e2e9SKrzysztof Kozlowski compatible = "operating-points-v2"; 449*0a40e2e9SKrzysztof Kozlowski 450*0a40e2e9SKrzysztof Kozlowski opp-192000000 { 451*0a40e2e9SKrzysztof Kozlowski opp-hz = /bits/ 64 <192000000>; 452*0a40e2e9SKrzysztof Kozlowski required-opps = <&rpmhpd_opp_low_svs_d1>; 453*0a40e2e9SKrzysztof Kozlowski }; 454*0a40e2e9SKrzysztof Kozlowski 455*0a40e2e9SKrzysztof Kozlowski opp-270000000 { 456*0a40e2e9SKrzysztof Kozlowski opp-hz = /bits/ 64 <270000000>; 457*0a40e2e9SKrzysztof Kozlowski required-opps = <&rpmhpd_opp_low_svs>; 458*0a40e2e9SKrzysztof Kozlowski }; 459*0a40e2e9SKrzysztof Kozlowski 460*0a40e2e9SKrzysztof Kozlowski opp-540000000 { 461*0a40e2e9SKrzysztof Kozlowski opp-hz = /bits/ 64 <540000000>; 462*0a40e2e9SKrzysztof Kozlowski required-opps = <&rpmhpd_opp_svs_l1>; 463*0a40e2e9SKrzysztof Kozlowski }; 464*0a40e2e9SKrzysztof Kozlowski 465*0a40e2e9SKrzysztof Kozlowski opp-810000000 { 466*0a40e2e9SKrzysztof Kozlowski opp-hz = /bits/ 64 <810000000>; 467*0a40e2e9SKrzysztof Kozlowski required-opps = <&rpmhpd_opp_nom>; 468*0a40e2e9SKrzysztof Kozlowski }; 469*0a40e2e9SKrzysztof Kozlowski }; 470*0a40e2e9SKrzysztof Kozlowski 471*0a40e2e9SKrzysztof Kozlowski ports { 472*0a40e2e9SKrzysztof Kozlowski #address-cells = <1>; 473*0a40e2e9SKrzysztof Kozlowski #size-cells = <0>; 474*0a40e2e9SKrzysztof Kozlowski 475*0a40e2e9SKrzysztof Kozlowski port@0 { 476*0a40e2e9SKrzysztof Kozlowski reg = <0>; 477*0a40e2e9SKrzysztof Kozlowski 478*0a40e2e9SKrzysztof Kozlowski mdss_dp0_in: endpoint { 479*0a40e2e9SKrzysztof Kozlowski remote-endpoint = <&dpu_intf0_out>; 480*0a40e2e9SKrzysztof Kozlowski }; 481*0a40e2e9SKrzysztof Kozlowski }; 482*0a40e2e9SKrzysztof Kozlowski 483*0a40e2e9SKrzysztof Kozlowski port@1 { 484*0a40e2e9SKrzysztof Kozlowski reg = <1>; 485*0a40e2e9SKrzysztof Kozlowski 486*0a40e2e9SKrzysztof Kozlowski mdss_dp0_out: endpoint { 487*0a40e2e9SKrzysztof Kozlowski data-lanes = <0 1 2 3>; 488*0a40e2e9SKrzysztof Kozlowski remote-endpoint = <&usb_dp_qmpphy_dp_in>; 489*0a40e2e9SKrzysztof Kozlowski link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>; 490*0a40e2e9SKrzysztof Kozlowski }; 491*0a40e2e9SKrzysztof Kozlowski }; 492*0a40e2e9SKrzysztof Kozlowski }; 493*0a40e2e9SKrzysztof Kozlowski }; 494*0a40e2e9SKrzysztof Kozlowski }; 495