// SPDX-License-Identifier: BSD-3-Clause /* * Copyright (c) 2023-2024 Qualcomm Innovation Center, Inc. All rights reserved. */ #include #include #include #include #include #include #include #include "sun-sde-common.dtsi" &soc { ext_disp: qcom,msm-ext-disp { compatible = "qcom,msm-ext-disp"; ext_disp_audio_codec: qcom,msm-ext-disp-audio-codec-rx { compatible = "qcom,msm-ext-disp-audio-codec-rx"; }; }; qcom_msmhdcp: qcom,msm_hdcp { compatible = "qcom,msm-hdcp"; }; sde_dp_pll: qcom,dp_pll@88eb000 { compatible = "qcom,dp-pll-3nm-v1"; #clock-cells = <1>; }; sde_dp: qcom,dp_display@af54000 { cell-index = <0>; compatible = "qcom,dp-display"; usb-phy = <&usb_qmp_dp_phy>; qcom,ext-disp = <&ext_disp>; usb-controller = <&usb0>; qcom,altmode-dev = <&altmode 0>; qcom,dp-aux-switch = <&wcd_usbss>; reg = <0xaf54000 0x104>, <0xaf54200 0x0c0>, <0xaf55000 0x770>, <0xaf56000 0x09c>, <0x88ebc00 0x200>, <0x88eb400 0x200>, <0x88eb800 0x200>, <0x88eb000 0x200>, <0x88e8000 0x020>, <0xaee1000 0x034>, <0xaf57000 0x09c>, <0xaf09000 0x014>; reg-names = "dp_ahb", "dp_aux", "dp_link", "dp_p0", "dp_phy", "dp_ln_tx0", "dp_ln_tx1", "dp_pll", "usb3_dp_com", "hdcp_physical", "dp_p1", "gdsc"; interrupt-parent = <&mdss_mdp>; interrupts = <12 0>; #clock-cells = <1>; clocks = <&dispcc DISP_CC_MDSS_DPTX0_AUX_CLK>, <&rpmhcc RPMH_CXO_CLK>, <&tcsrcc TCSR_USB3_CLKREF_EN>, <&gcc GCC_USB3_PRIM_PHY_PIPE_CLK>, <&dispcc DISP_CC_MDSS_DPTX0_LINK_CLK>, <&dispcc DISP_CC_MDSS_DPTX0_LINK_CLK_SRC>, <&sde_dp_pll 0>, <&dispcc DISP_CC_MDSS_DPTX0_LINK_INTF_CLK>, <&dispcc DISP_CC_MDSS_DPTX0_PIXEL0_CLK_SRC>, <&sde_dp_pll 1>, <&dispcc DISP_CC_MDSS_DPTX0_PIXEL1_CLK_SRC>, <&dispcc DISP_CC_MDSS_DPTX0_PIXEL0_CLK>, <&dispcc DISP_CC_MDSS_DPTX0_PIXEL1_CLK>; clock-names = "core_aux_clk", "rpmh_cxo_clk", "core_usb_ref_clk_src", "core_usb_pipe_clk", "link_clk", "link_clk_src", "link_parent", "link_iface_clk", "pixel_clk_rcg", "pixel_parent", "pixel1_clk_rcg", "strm0_pixel_clk", "strm1_pixel_clk"; qcom,dp-pll = <&sde_dp_pll>; qcom,phy-version = <0x800>; qcom,aux-cfg0-settings = [20 00]; qcom,aux-cfg1-settings = [24 13]; qcom,aux-cfg2-settings = [28 A4]; qcom,aux-cfg3-settings = [2c 00]; qcom,aux-cfg4-settings = [30 0a]; qcom,aux-cfg5-settings = [34 26]; qcom,aux-cfg6-settings = [38 0a]; qcom,aux-cfg7-settings = [3c 03]; qcom,aux-cfg8-settings = [40 b7]; qcom,aux-cfg9-settings = [44 03]; qcom,max-pclk-frequency-khz = <675000>; qcom,widebus-enable; qcom,4ppc-enable; qcom,mst-enable; qcom,dsc-feature-enable; qcom,fec-feature-enable; qcom,dsc-continuous-pps; qcom,qos-cpu-mask = <0xf>; qcom,qos-cpu-latency-us = <300>; vdda-1p2-supply = <&L3G>; vdda-0p9-supply = <&L2D>; vdda_usb-0p9-supply = <&L2D>; vdd_mx-supply = <&VDD_MXA_LEVEL>; dp_phy_gdsc-supply = <&gcc_usb3_phy_gdsc>; qcom,hbr-rbr-voltage-swing = <0x27 0x2f 0x36 0x3f>, <0x31 0x3e 0x3f 0xff>, <0x36 0x3f 0xff 0xff>, <0x3f 0xff 0xff 0xff>; qcom,hbr-rbr-pre-emphasis = <0x20 0x2d 0x34 0x3a>, <0x20 0x2e 0x35 0xff>, <0x20 0x2e 0xff 0xff>, <0x22 0xff 0xff 0xff>; qcom,hbr2-3-voltage-swing = <0x22 0x32 0x36 0x3a>, <0x29 0x39 0x3f 0xff>, <0x30 0x3f 0xff 0xff>, <0x3f 0xff 0xff 0xff>; qcom,hbr2-3-pre-emphasis = <0x20 0x2c 0x35 0x3b>, <0x22 0x2e 0x36 0xff>, <0x22 0x31 0xff 0xff>, <0x24 0xff 0xff 0xff>; qcom,ctrl-supply-entries { #address-cells = <1>; #size-cells = <0>; qcom,ctrl-supply-entry@0 { reg = <0>; qcom,supply-name = "vdda-1p2"; qcom,supply-min-voltage = <1200000>; qcom,supply-max-voltage = <1200000>; qcom,supply-enable-load = <30000>; qcom,supply-disable-load = <0>; }; }; qcom,phy-supply-entries { #address-cells = <1>; #size-cells = <0>; qcom,phy-supply-entry@0 { reg = <0>; qcom,supply-name = "vdda-0p9"; qcom,supply-min-voltage = <912000>; qcom,supply-max-voltage = <912000>; qcom,supply-enable-load = <114000>; qcom,supply-disable-load = <0>; }; qcom,phy-supply-entry@1 { reg = <1>; qcom,supply-name = "vdda_usb-0p9"; qcom,supply-min-voltage = <880000>; qcom,supply-max-voltage = <880000>; qcom,supply-enable-load = <2500>; qcom,supply-disable-load = <0>; }; }; qcom,pll-supply-entries { #address-cells = <1>; #size-cells = <0>; qcom,pll-supply-entry@0 { reg = <0>; qcom,supply-name = "vdd_mx"; qcom,supply-min-voltage = ; qcom,supply-max-voltage = ; qcom,supply-enable-load = <0>; qcom,supply-disable-load = <0>; }; }; }; smmu_sde_iommu_region_partition: smmu_sde_iommu_region_partition { iommu-addresses = <&smmu_sde_unsec 0x0 0x00060000>, <&smmu_sde_unsec 0xd4e23000 0x002dd000>, <&smmu_sde_unsec 0xd2880000 0x05780000>, <&smmu_sde_unsec 0xa3500000 0x02c80000>, <&smmu_sde_unsec 0xfc800000 0x02b00000>, <&smmu_sde_sec 0x0 0x00020000>; }; smmu_sde_unsec: qcom,smmu_sde_unsec_cb { compatible = "qcom,smmu_sde_unsec"; iommus = <&apps_smmu 0x800 0x2>; memory-region = <&smmu_sde_iommu_region_partition>; qcom,iommu-faults = "non-fatal"; qcom,iommu-earlymap; /* for cont-splash */ dma-coherent; clocks = <&dispcc DISP_CC_MDSS_MDP_CLK>; clock-names = "mdp_core_clk"; }; smmu_sde_sec: qcom,smmu_sde_sec_cb { compatible = "qcom,smmu_sde_sec"; iommus = <&apps_smmu 0x801 0x0>; memory-region = <&smmu_sde_iommu_region_partition>; qcom,iommu-faults = "non-fatal"; qcom,iommu-vmid = <0xa>; clocks = <&dispcc DISP_CC_MDSS_MDP_CLK>; clock-names = "mdp_core_clk"; }; sde_cesta: qcom,sde_cesta@0x0af30000 { cell-index = <0>; compatible = "qcom,sde-cesta"; reg = <0x0af20000 0x850>, <0xaf30000 0x60>, <0xaf31000 0x30>, <0xaf32000 0x30>, <0xaf33000 0x30>, <0xaf34000 0x30>, <0xaf35000 0x30>, <0xaf36000 0x30>; reg-names = "rscc", "wrapper", "scc_0", "scc_1", "scc_2", "scc_3", "scc_4", "scc_5"; clocks = <&dispcc DISP_CC_MDSS_MDP_CLK>, <&dispcc DISP_CC_MDSS_MDP_CLK_SRC>; clock-names = "branch_clk", "core_clk"; clock-rate = <575000000 575000000>; clock-max-rate = <575000000 575000000>; clock-mmrm = <0 DISP_CC_MDSS_MDP_CLK_SRC>; interconnects = <&mmss_noc MASTER_MDP_DISP_CRM_HW_0 &mc_virt SLAVE_EBI1_DISP_CRM_HW_0>, <&mmss_noc MASTER_MDP_DISP_CRM_HW_1 &mc_virt SLAVE_EBI1_DISP_CRM_HW_1>, <&mmss_noc MASTER_MDP_DISP_CRM_HW_2 &mc_virt SLAVE_EBI1_DISP_CRM_HW_2>, <&mmss_noc MASTER_MDP_DISP_CRM_HW_3 &mc_virt SLAVE_EBI1_DISP_CRM_HW_3>, <&mmss_noc MASTER_MDP_DISP_CRM_HW_4 &mc_virt SLAVE_EBI1_DISP_CRM_HW_4>, <&mmss_noc MASTER_MDP_DISP_CRM_HW_5 &mc_virt SLAVE_EBI1_DISP_CRM_HW_5>, <&mmss_noc MASTER_MDP_DISP_CRM_SW_0 &mc_virt SLAVE_EBI1_DISP_CRM_SW_0>; interconnect-names = "qcom,sde-data-bus-hw-0", "qcom,sde-data-bus-hw-1", "qcom,sde-data-bus-hw-2", "qcom,sde-data-bus-hw-3", "qcom,sde-data-bus-hw-4", "qcom,sde-data-bus-hw-5", "qcom,sde-data-bus-sw-0"; power-domains = <&dispcc DISP_CC_MDSS_CORE_GDSC>; }; }; &mdss_mdp { clocks = <&gcc GCC_DISP_HF_AXI_CLK>, <&dispcc DISP_CC_MDSS_AHB_CLK>, <&dispcc DISP_CC_MDSS_VSYNC_CLK>, <&dispcc DISP_CC_MDSS_MDP_LUT_CLK>; clock-names = "gcc_bus", "iface_clk", "vsync_clk", "lut_clk"; clock-rate = <0 0 19200000 575000000>; clock-max-rate = <0 0 19200000 575000000>; qcom,hw-fence-sw-version = <0x1>; mmcx-supply = <&VDD_MMCX_LEVEL>; qti,smmu-proxy-cb-id = ; qcom,sde-soccp-controller = <&soccp_pas>; qcom,sde-vm-exclude-reg-names = "ipcc_reg"; /* data and reg bus scale settings */ interconnects = <&mmss_noc MASTER_MDP &gem_noc SLAVE_LLCC>, <&mc_virt MASTER_LLCC &mc_virt SLAVE_EBI1>, <&gem_noc MASTER_APPSS_PROC &config_noc SLAVE_DISPLAY_CFG>; interconnect-names = "qcom,sde-data-bus0", "qcom,sde-ebi-bus", "qcom,sde-reg-bus"; qcom,sde-has-idle-pc; qcom,sde-ib-bw-vote = <2500000 0 800000>; qcom,sde-dspp-ltm-version = <0x00010003>; /* offsets are based off dspp 0, 1, 2, and 3 */ qcom,sde-dspp-ltm-off = <0x15300 0x14300 0x13300 0x12300>; nvmem-cells = <&ssip_config>; nvmem-cell-names = "ssip_config"; qcom,platform-supply-entries { #address-cells = <1>; #size-cells = <0>; qcom,platform-supply-entry@0 { reg = <0>; qcom,supply-name = "mmcx"; qcom,supply-min-voltage = <0>; qcom,supply-max-voltage = <0>; qcom,supply-enable-load = <0>; qcom,supply-disable-load = <0>; }; }; }; &mdss_dsi0 { vdda-1p2-supply = <&L3G>; qcom,split-link-supported; clocks = <&dispcc DISP_CC_MDSS_BYTE0_CLK>, <&dispcc DISP_CC_MDSS_BYTE0_CLK_SRC>, <&dispcc DISP_CC_MDSS_BYTE0_INTF_CLK>, <&dispcc DISP_CC_MDSS_PCLK0_CLK>, <&dispcc DISP_CC_MDSS_PCLK0_CLK_SRC>, <&dispcc DISP_CC_ESYNC0_CLK>, <&dispcc_mx DISP_CC_OSC_CLK>, <&dispcc DISP_CC_MDSS_ESC0_CLK>, <&rpmhcc RPMH_CXO_CLK>; clock-names = "byte_clk", "byte_clk_rcg", "byte_intf_clk", "pixel_clk", "pixel_clk_rcg", "esync_clk", "osc_clk", "esc_clk", "xo"; }; &mdss_dsi1 { vdda-1p2-supply = <&L3G>; qcom,split-link-supported; clocks = <&dispcc DISP_CC_MDSS_BYTE1_CLK>, <&dispcc DISP_CC_MDSS_BYTE1_CLK_SRC>, <&dispcc DISP_CC_MDSS_BYTE1_INTF_CLK>, <&dispcc DISP_CC_MDSS_PCLK1_CLK>, <&dispcc DISP_CC_MDSS_PCLK1_CLK_SRC>, <&dispcc DISP_CC_ESYNC1_CLK>, <&dispcc_mx DISP_CC_OSC_CLK>, <&dispcc DISP_CC_MDSS_ESC1_CLK>, <&rpmhcc RPMH_CXO_CLK>; clock-names = "byte_clk", "byte_clk_rcg", "byte_intf_clk", "pixel_clk", "pixel_clk_rcg", "esync_clk", "osc_clk", "esc_clk", "xo"; }; &mdss_dsi_phy0 { vdda-0p9-supply = <&L3I>; qcom,panel-allow-phy-poweroff; qcom,dsi-pll-ssc-en; qcom,dsi-pll-ssc-mode = "down-spread"; pll_codes_region = <&dsi_pll_codes_data>; }; &mdss_dsi_phy1 { vdda-0p9-supply = <&L3I>; qcom,panel-allow-phy-poweroff; qcom,dsi-pll-ssc-en; qcom,dsi-pll-ssc-mode = "down-spread"; pll_codes_region = <&dsi_pll_codes_data>; };