// SPDX-License-Identifier: BSD-3-Clause /* * Copyright (c) 2024-2025 Qualcomm Innovation Center, Inc. All rights reserved. */ #include #include #include #include #include #include "kera-sde-common.dtsi" #include #include &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@88ea000 { compatible = "qcom,dp-pll-4nm-v1.1"; #clock-cells = <1>; }; sde_dp: qcom,dp_display@af54000 { cell-index = <0>; compatible = "qcom,dp-display"; status = "ok"; 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>, <0x88eaa00 0x200>, <0x88ea200 0x200>, <0x88ea600 0x200>, <0x88ea000 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 = <0x600>; 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,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 = <&L4B>; vdda-0p9-supply = <&L7K>; vdda_usb-0p9-supply = <&L7K>; vdd_mx-supply = <&VDD_MXA_LEVEL>; dp_phy_gdsc-supply = <&gcc_usb3_phy_gdsc>; qcom,hbr-rbr-voltage-swing = <0x07 0x0f 0x16 0x1f>, <0x11 0x1e 0x1f 0xff>, <0x16 0x1f 0xff 0xff>, <0x1f 0xff 0xff 0xff>; qcom,hbr-rbr-pre-emphasis = <0x00 0x0d 0x14 0x1a>, <0x00 0x0e 0x15 0xff>, <0x00 0x0e 0xff 0xff>, <0x02 0xff 0xff 0xff>; qcom,hbr2-3-voltage-swing = <0x02 0x12 0x16 0x1a>, <0x09 0x19 0x1f 0xff>, <0x10 0x1f 0xff 0xff>, <0x1f 0xff 0xff 0xff>; qcom,hbr2-3-pre-emphasis = <0x00 0x0c 0x15 0x1b>, <0x02 0x0e 0x16 0xff>, <0x02 0x11 0xff 0xff>, <0x04 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 = <1320000>; 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 = <950000>; 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 = <950000>; 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 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>, <0xaf0f000 0x10>; reg-names = "rscc", "wrapper", "scc_0", "scc_1", "scc_2", "scc_3", "scc_4", "scc_5", "disp_cc"; clocks = <&dispcc DISP_CC_MDSS_MDP_CLK>, <&dispcc DISP_CC_MDSS_MDP_CLK_SRC>, <&dispcc DISP_CC_XO_CLK_SRC>; clock-names = "branch_clk", "core_clk", "xo"; clock-rate = <660000000 660000000 19200000>; clock-max-rate = <660000000 660000000 19200000>; 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 660000000>; clock-max-rate = <0 0 19200000 660000000>; qcom,hw-fence-sw-version = <0x1>; qti,smmu-proxy-cb-id = ; qcom,sde-vm-exclude-reg-names = "ipcc_reg", "swfuse_phys"; /* 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 1600000>; qcom,sde-dspp-ltm-version = <0x00010003>; /* offsets are based off dspp 0, 1, 2, and 3 */ qcom,sde-dspp-ltm-off = <0x15300 0x14300 0x13300>; }; &mdss_dsi0 { vdda-1p2-supply = <&L4B>; 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_MDSS_ESC0_CLK>, <&rpmhcc RPMH_CXO_CLK>; clock-names = "byte_clk", "byte_clk_rcg", "byte_intf_clk", "pixel_clk", "pixel_clk_rcg", "esc_clk", "xo"; }; &mdss_dsi1 { vdda-1p2-supply = <&L4B>; 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_MDSS_ESC1_CLK>, <&rpmhcc RPMH_CXO_CLK>; clock-names = "byte_clk", "byte_clk_rcg", "byte_intf_clk", "pixel_clk", "pixel_clk_rcg", "esc_clk", "xo"; }; &mdss_dsi_phy0 { vdda-0p9-supply = <&L2B>; 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 = <&L2B>; qcom,panel-allow-phy-poweroff; qcom,dsi-pll-ssc-en; qcom,dsi-pll-ssc-mode = "down-spread"; pll_codes_region = <&dsi_pll_codes_data>; };