Files
android_kernel_samsung_sm87…/qcom/sdxkova.dtsi
2024-09-10 23:35:07 -07:00

723 lines
16 KiB
Plaintext

// SPDX-License-Identifier: BSD-3-Clause
/*
* Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved.
*/
#include <dt-bindings/soc/qcom,ipcc.h>
#include "sdx75.dtsi"
/delete-node/ &apps_smmu;
/delete-node/ &tcsr_mutex;
#include "msm-arm-smmu-sdxkova.dtsi"
/{
qcom_tzlog: tz-log@14680720 {
compatible = "qcom,tz-log";
reg = <0x0 0x14680720 0x0 0x3000>;
qcom,hyplog-enabled;
hyplog-address-offset = <0x410>;
hyplog-size-offset = <0x414>;
};
/delete-node/ reserved-memory;
reserved_memory: reserved-memory {
#address-cells = <2>;
#size-cells = <2>;
ranges;
system_cma: linux,cma {
compatible = "shared-dma-pool";
alloc-ranges = <0x0 0x00000000 0x0 0xffffffff>;
reusable;
alignment = <0x0 0x400000>;
size = <0x0 0x2000000>;
linux,cma-default;
};
};
soc: soc {
/delete-node/ rsc@17a00000;
apps_rsc: rsc@17a00000 {
label = "apps_rsc";
compatible = "qcom,rpmh-rsc";
reg = <0x0 0x17a00000 0x0 0x10000>,
<0x0 0x17a10000 0x0 0x10000>,
<0x0 0x17a20000 0x0 0x10000>;
reg-names = "drv-0", "drv-1", "drv-2";
interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
qcom,drv-count = <3>;
apps_rsc_drv2: drv@2 {
qcom,drv-id = <2>;
qcom,tcs-offset = <0xd00>;
channel@0 {
qcom,tcs-offset = <0xd00>;
qcom,tcs-config = <ACTIVE_TCS 3>,
<SLEEP_TCS 2>,
<WAKE_TCS 2>,
<FAST_PATH_TCS 0>,
<CONTROL_TCS 0>;
};
apps_bcm_voter: bcm-voter {
compatible = "qcom,bcm-voter";
};
rpmhcc: clock-controller {
compatible = "qcom,sdx75-rpmh-clk";
clocks = <&xo_board>;
clock-names = "xo";
#clock-cells = <1>;
};
rpmhpd: power-controller {
compatible = "qcom,sdx75-rpmhpd";
#power-domain-cells = <1>;
operating-points-v2 = <&rpmhpd_opp_table>;
rpmhpd_opp_table: opp-table {
compatible = "operating-points-v2";
rpmhpd_opp_ret: opp-16 {
opp-level = <RPMH_REGULATOR_LEVEL_RETENTION>;
};
rpmhpd_opp_min_svs: opp-48 {
opp-level = <RPMH_REGULATOR_LEVEL_MIN_SVS>;
};
rpmhpd_opp_low_svs: opp-64 {
opp-level = <RPMH_REGULATOR_LEVEL_LOW_SVS>;
};
rpmhpd_opp_svs: opp-128 {
opp-level = <RPMH_REGULATOR_LEVEL_SVS>;
};
rpmhpd_opp_svs_l1: opp-192 {
opp-level = <RPMH_REGULATOR_LEVEL_SVS_L1>;
};
rpmhpd_opp_nom: opp-256 {
opp-level = <RPMH_REGULATOR_LEVEL_NOM>;
};
rpmhpd_opp_nom_l1: opp-320 {
opp-level = <RPMH_REGULATOR_LEVEL_NOM_L1>;
};
rpmhpd_opp_nom_l2: opp-336 {
opp-level = <RPMH_REGULATOR_LEVEL_NOM_L2>;
};
rpmhpd_opp_turbo: opp-384 {
opp-level = <RPMH_REGULATOR_LEVEL_TURBO>;
};
rpmhpd_opp_turbo_l1: opp-416 {
opp-level = <RPMH_REGULATOR_LEVEL_TURBO_L1>;
};
};
};
};
};
};
firmware: firmware { };
aliases: aliases {
serial0 = &uart1;
mmc0 = &sdhc_1; /*SDC1 eMMC slot*/
};
};
&clk_virt {
#interconnect-cells = <1>;
qcom,bcm-voter-names = "hlos";
};
&mc_virt {
#interconnect-cells = <1>;
qcom,bcm-voter-names = "hlos";
};
&system_noc {
#interconnect-cells = <1>;
qcom,bcm-voter-names = "hlos";
clocks = <&gcc GCC_SYS_NOC_MVMSS_CLK>;
};
&pcie_anoc {
#interconnect-cells = <1>;
qcom,bcm-voter-names = "hlos";
};
&dc_noc {
#interconnect-cells = <1>;
qcom,bcm-voter-names = "hlos";
};
&gem_noc {
#interconnect-cells = <1>;
qcom,bcm-voter-names = "hlos";
};
&tlmm {
gpio-reserved-ranges = <110 6>;
sdc1_emmc_on: sdc1_emmc_on {
clk {
pins = "sdc1_clk";
bias-disable;
drive-strength = <16>;
};
cmd {
pins = "sdc1_cmd";
bias-pull-up;
drive-strength = <10>;
};
data {
pins = "sdc1_data";
bias-pull-up;
drive-strength = <10>;
};
rclk {
pins = "sdc1_rclk";
bias-pull-down;
};
};
sdc1_emmc_off: sdc1_emmc_off {
clk {
pins = "sdc1_clk";
bias-disable;
drive-strength = <2>;
};
cmd {
pins = "sdc1_cmd";
bias-pull-up;
drive-strength = <2>;
};
data {
pins = "sdc1_data";
bias-pull-up;
drive-strength = <2>;
};
rclk {
pins = "sdc1_rclk";
bias-pull-down;
};
};
sdc1_sd_on: sdc1_sd_on {
clk {
pins = "sdc1_clk";
bias-disable;
drive-strength = <16>;
};
cmd {
pins = "sdc1_cmd";
bias-pull-up;
drive-strength = <10>;
};
data {
pins = "sdc1_data";
bias-pull-up;
drive-strength = <10>;
};
sd-cd {
pins = "gpio103";
bias-pull-up;
drive-strength = <2>;
};
};
sdc1_sd_off: sdc1_sd_off {
clk {
pins = "sdc1_clk";
bias-disable;
drive-strength = <2>;
};
cmd {
pins = "sdc1_cmd";
bias-pull-up;
drive-strength = <2>;
};
data {
pins = "sdc1_data";
bias-pull-up;
drive-strength = <2>;
};
sd-cd {
pins = "gpio103";
bias-pull-up;
drive-strength = <2>;
};
};
};
&qupv3_id_0 {
interconnects =
<&clk_virt MASTER_QUP_CORE_0 &clk_virt SLAVE_QUP_CORE_0>;
interconnect-names = "qup-core";
status = "ok";
};
&uart1 {
interconnects =
<&clk_virt MASTER_QUP_CORE_0 &clk_virt SLAVE_QUP_CORE_0>,
<&gem_noc MASTER_APPSS_PROC &system_noc SLAVE_QUP_0>;
status = "ok";
};
&scm {
qcom,dload-mode = <&tcsr 0x13000>;
};
&firmware {
qtee_shmbridge {
compatible = "qcom,tee-shared-memory-bridge";
};
};
#include "sdxkova-regulators.dtsi"
&chosen {
bootargs = "cpufreq.default_governor=performance";
};
&soc {
clocks {
emac0_sgmiiphy_mac_rclk: emac0_sgmiiphy_mac_rclk {
compatible = "fixed-clock";
clock-frequency = <1000>;
clock-output-names = "emac0_sgmiiphy_mac_rclk";
#clock-cells = <0>;
};
emac0_sgmiiphy_mac_tclk: emac0_sgmiiphy_mac_tclk {
compatible = "fixed-clock";
clock-frequency = <1000>;
clock-output-names = "emac0_sgmiiphy_mac_tclk";
#clock-cells = <0>;
};
emac0_sgmiiphy_rclk: emac0_sgmiiphy_rclk {
compatible = "fixed-clock";
clock-frequency = <1000>;
clock-output-names = "emac0_sgmiiphy_rclk";
#clock-cells = <0>;
};
emac0_sgmiiphy_tclk: emac0_sgmiiphy_tclk {
compatible = "fixed-clock";
clock-frequency = <1000>;
clock-output-names = "emac0_sgmiiphy_tclk";
#clock-cells = <0>;
};
emac1_sgmiiphy_mac_rclk: emac1_sgmiiphy_mac_rclk {
compatible = "fixed-clock";
clock-frequency = <1000>;
clock-output-names = "emac1_sgmiiphy_mac_rclk";
#clock-cells = <0>;
};
emac1_sgmiiphy_mac_tclk: emac1_sgmiiphy_mac_tclk {
compatible = "fixed-clock";
clock-frequency = <1000>;
clock-output-names = "emac1_sgmiiphy_mac_tclk";
#clock-cells = <0>;
};
emac1_sgmiiphy_rclk: emac1_sgmiiphy_rclk {
compatible = "fixed-clock";
clock-frequency = <1000>;
clock-output-names = "emac1_sgmiiphy_rclk";
#clock-cells = <0>;
};
emac1_sgmiiphy_tclk: emac1_sgmiiphy_tclk {
compatible = "fixed-clock";
clock-frequency = <1000>;
clock-output-names = "emac1_sgmiiphy_tclk";
#clock-cells = <0>;
};
pcie20_phy_aux_clk: pcie20_phy_aux_clk {
compatible = "fixed-clock";
clock-frequency = <1000>;
clock-output-names = "pcie20_phy_aux_clk";
#clock-cells = <0>;
};
pcie_1_pipe_clk: pcie_1_pipe_clk {
compatible = "fixed-clock";
clock-frequency = <1000>;
clock-output-names = "pcie_1_pipe_clk";
#clock-cells = <0>;
};
pcie_2_pipe_clk: pcie_2_pipe_clk {
compatible = "fixed-clock";
clock-frequency = <1000>;
clock-output-names = "pcie_2_pipe_clk";
#clock-cells = <0>;
};
pcie_pipe_clk: pcie_pipe_clk {
compatible = "fixed-clock";
clock-frequency = <1000>;
clock-output-names = "pcie_pipe_clk";
#clock-cells = <0>;
};
usb3_phy_wrapper_gcc_usb30_pipe_clk: usb3_phy_wrapper_gcc_usb30_pipe_clk {
compatible = "fixed-clock";
clock-frequency = <1000>;
clock-output-names = "usb3_phy_wrapper_gcc_usb30_pipe_clk";
#clock-cells = <0>;
};
};
/* GCC GDSCs */
gcc_emac0_gdsc: qcom,gdsc@f1004 {
compatible = "qcom,gdsc";
reg = <0x0 0xf1004 0x0 0x4>;
regulator-name = "gcc_emac0_gdsc";
parent-supply = <&VDD_CX_LEVEL>;
qcom,retain-regs;
qcom,support-hw-trigger;
};
gcc_emac1_gdsc: qcom,gdsc@f2004 {
compatible = "qcom,gdsc";
reg = <0x0 0xf2004 0x0 0x4>;
regulator-name = "gcc_emac1_gdsc";
parent-supply = <&VDD_CX_LEVEL>;
qcom,retain-regs;
qcom,support-hw-trigger;
};
gcc_pcie_1_gdsc: qcom,gdsc@e7004 {
compatible = "qcom,gdsc";
reg = <0x0 0xe7004 0x0 0x4>;
regulator-name = "gcc_pcie_1_gdsc";
parent-supply = <&VDD_CX_LEVEL>;
qcom,retain-regs;
qcom,support-hw-trigger;
};
gcc_pcie_1_phy_gdsc: qcom,gdsc@d6004 {
compatible = "qcom,gdsc";
reg = <0x0 0xd6004 0x0 0x4>;
regulator-name = "gcc_pcie_1_phy_gdsc";
parent-supply = <&VDD_MXA_LEVEL>;
qcom,retain-regs;
qcom,support-hw-trigger;
};
gcc_pcie_2_gdsc: qcom,gdsc@e8004 {
compatible = "qcom,gdsc";
reg = <0x0 0xe8004 0x0 0x4>;
regulator-name = "gcc_pcie_2_gdsc";
parent-supply = <&VDD_CX_LEVEL>;
qcom,retain-regs;
qcom,support-hw-trigger;
};
gcc_pcie_2_phy_gdsc: qcom,gdsc@ee004 {
compatible = "qcom,gdsc";
reg = <0x0 0xee004 0x0 0x4>;
regulator-name = "gcc_pcie_2_phy_gdsc";
parent-supply = <&VDD_MXA_LEVEL>;
qcom,retain-regs;
qcom,support-hw-trigger;
};
gcc_pcie_gdsc: qcom,gdsc@d3004 {
compatible = "qcom,gdsc";
reg = <0x0 0xd3004 0x0 0x4>;
regulator-name = "gcc_pcie_gdsc";
parent-supply = <&VDD_MXA_LEVEL>;
qcom,retain-regs;
qcom,support-hw-trigger;
};
gcc_pcie_phy_gdsc: qcom,gdsc@d4004 {
compatible = "qcom,gdsc";
reg = <0x0 0xd4004 0x0 0x4>;
regulator-name = "gcc_pcie_phy_gdsc";
parent-supply = <&VDD_MXA_LEVEL>;
qcom,retain-regs;
qcom,support-hw-trigger;
};
gcc_usb30_gdsc: qcom,gdsc@a7004 {
compatible = "qcom,gdsc";
reg = <0x0 0xa7004 0x0 0x4>;
regulator-name = "gcc_usb30_gdsc";
parent-supply = <&VDD_MXA_LEVEL>;
qcom,retain-regs;
};
gcc_usb3_phy_gdsc: qcom,gdsc@a8008 {
compatible = "qcom,gdsc";
reg = <0x0 0xa8008 0x0 0x4>;
regulator-name = "gcc_usb3_phy_gdsc";
parent-supply = <&VDD_CX_LEVEL>;
qcom,retain-regs;
};
apsscc: syscon@17aa0000 {
compatible = "syscon";
reg = <0x0 0x17aa0000 0x0 0x1c>;
};
mccc: syscon@190ba000 {
compatible = "syscon";
reg = <0x0 0x190ba000 0x0 0x54>;
};
debugcc: clock-controller@0 {
compatible = "qcom,sdx75-debugcc";
qcom,apsscc = <&apsscc>;
qcom,gcc = <&gcc>;
qcom,mccc = <&mccc>;
clocks = <&rpmhcc RPMH_CXO_CLK>,
<&gcc 0>;
clock-names = "xo_clk_src",
"gcc";
#clock-cells = <1>;
};
qcom,cpufreq-hw-debug {
compatible = "qcom,cpufreq-hw-epss-debug";
qcom,freq-hw-domain = <&cpufreq_hw 0>;
};
ipcc_mproc: qcom,ipcc@408000 {
compatible = "qcom,ipcc";
reg = <0x0 0x408000 0x0 0x1000>;
interrupts = <GIC_SPI 241 IRQ_TYPE_LEVEL_HIGH>;
interrupt-controller;
#interrupt-cells = <3>;
#mbox-cells = <2>;
};
llcc_device: cache-controller@19200000 {
compatible = "qcom,sdxpinn-llcc";
reg = <0x0 0x19200000 0x0 0x200000>;
reg-names = "llcc0_base";
interrupts = <GIC_SPI 399 IRQ_TYPE_LEVEL_HIGH>;
cap-based-alloc-and-pwr-collapse;
};
tcsr_mutex_block: syscon@1f40000 {
compatible = "syscon";
reg = <0x0 0x1f40000 0x0 0x20000>;
};
tcsr_mutex: hwlock {
compatible = "qcom,tcsr-mutex";
syscon = <&tcsr_mutex_block 0 0x1000>;
#hwlock-cells = <1>;
};
tcsr: syscon@1fc0000 {
compatible = "syscon";
reg = <0x0 0x1fc0000 0x0 0x30000>;
};
qcom,smp2p-modem {
compatible = "qcom,smp2p";
qcom,smem = <435>, <428>;
interrupt-parent = <&ipcc_mproc>;
interrupts = <IPCC_CLIENT_MPSS IPCC_MPROC_SIGNAL_SMP2P
IRQ_TYPE_EDGE_RISING>;
mboxes = <&ipcc_mproc IPCC_CLIENT_MPSS IPCC_MPROC_SIGNAL_SMP2P>;
qcom,local-pid = <0>;
qcom,remote-pid = <1>;
modem_smp2p_out: master-kernel {
qcom,entry-name = "master-kernel";
#qcom,smem-state-cells = <1>;
};
modem_smp2p_in: slave-kernel {
qcom,entry-name = "slave-kernel";
interrupt-controller;
#interrupt-cells = <2>;
};
};
aoss_qmp: power-controller@c300000 {
compatible = "qcom,aoss-qmp";
reg = <0x0 0xc310000 0x0 0x1000>;
interrupt-parent = <&ipcc_mproc>;
interrupts = <IPCC_CLIENT_AOP
IPCC_MPROC_SIGNAL_GLINK_QMP
IRQ_TYPE_EDGE_RISING>;
mboxes = <&ipcc_mproc IPCC_CLIENT_AOP
IPCC_MPROC_SIGNAL_GLINK_QMP>;
#power-domain-cells = <1>;
#clock-cells = <0>;
};
qmp_aop: qcom,qmp-aop {
compatible = "qcom,qmp-mbox";
qcom,qmp = <&aoss_qmp>;
label = "aop";
#mbox-cells = <1>;
};
qmp_tme: qcom,qmp-tme {
compatible = "qcom,qmp-mbox";
qcom,remote-pid = <14>;
mboxes = <&ipcc_mproc IPCC_CLIENT_TME
IPCC_MPROC_SIGNAL_GLINK_QMP>;
mbox-names = "tme_qmp";
interrupt-parent = <&ipcc_mproc>;
interrupts = <IPCC_CLIENT_TME
IPCC_MPROC_SIGNAL_GLINK_QMP
IRQ_TYPE_EDGE_RISING>;
label = "tme";
qcom,early-boot;
priority = <0>;
mbox-desc-offset = <0x0>;
#mbox-cells = <1>;
};
sdhc1_opp_table: sdhc1-opp-table {
compatible = "operating-points-v2";
opp-100000000 {
opp-hz = /bits/ 64 <100000000>;
opp-peak-kBps = <1600000 56000>;
opp-avg-kBps = <104000 0>;
};
opp-384000000 {
opp-hz = /bits/ 64 <384000000>;
opp-peak-kBps = <7000000 360000>;
opp-avg-kBps = <400000 0>;
};
};
sdhc_1: sdhci@8804000 {
status = "disabled";
compatible = "qcom,sdhci-msm-v5";
reg = <0x0 0x08804000 0x0 0x1000>;
reg-names = "hc";
interrupts = <GIC_SPI 210 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 227 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "hc_irq", "pwr_irq";
bus-width = <4>;
no-sdio;
qcom,restore-after-cx-collapse;
clocks = <&gcc GCC_SDCC1_AHB_CLK>,
<&gcc GCC_SDCC1_APPS_CLK>;
clock-names = "iface", "core";
/* DLL HSR settings. Refer go/hsr - <Target> DLL settings */
qcom,dll-hsr-list = <0x0007442C 0x0 0x10
0x090106C0 0x80040868>;
iommus = <&apps_smmu 0x00A0 0x0>;
dma-coherent;
qcom,iommu-dma = "fastmap";
qcom,iommu-dma-addr-pool = <0x0 0x20000000 0x0 0x10000000>;
qcom,iommu-geometry = <0x0 0x20000000 0x0 0x10000000>;
interconnects = <&system_noc MASTER_SDCC_1 &mc_virt SLAVE_EBI1>,
<&gem_noc MASTER_APPSS_PROC &system_noc SLAVE_SDCC_1>;
interconnect-names = "sdhc-ddr","cpu-sdhc";
operating-points-v2 = <&sdhc1_opp_table>;
qos0 {
mask = <0x0f>;
vote = <44>;
};
};
sdhc2_opp_table: sdhc2-opp-table {
compatible = "operating-points-v2";
opp-100000000 {
opp-hz = /bits/ 64 <100000000>;
opp-peak-kBps = <1600000 56000>;
opp-avg-kBps = <50000 0>;
};
opp-192000000 {
opp-hz = /bits/ 64 <192000000>;
opp-peak-kBps = <7000000 360000>;
opp-avg-kBps = <104000 0>;
};
};
};
&gcc {
compatible = "qcom,sdx75-gcc", "syscon";
reg = <0x0 0x0080000 0x0 0x1f7400>;
vdd_cx-supply = <&VDD_CX_LEVEL>;
vdd_mx-supply = <&VDD_MXA_LEVEL>;
clocks = <&rpmhcc RPMH_CXO_CLK>,
<&emac0_sgmiiphy_mac_rclk>,
<&emac0_sgmiiphy_mac_tclk>,
<&emac0_sgmiiphy_rclk>,
<&emac0_sgmiiphy_tclk>,
<&emac1_sgmiiphy_mac_rclk>,
<&emac1_sgmiiphy_mac_tclk>,
<&emac1_sgmiiphy_rclk>,
<&emac1_sgmiiphy_tclk>,
<&pcie20_phy_aux_clk>,
<&pcie_1_pipe_clk>,
<&pcie_2_pipe_clk>,
<&pcie_pipe_clk>,
<&sleep_clk>,
<&usb3_phy_wrapper_gcc_usb30_pipe_clk>;
clock-names = "bi_tcxo",
"emac0_sgmiiphy_mac_rclk",
"emac0_sgmiiphy_mac_tclk",
"emac0_sgmiiphy_rclk",
"emac0_sgmiiphy_tclk",
"emac1_sgmiiphy_mac_rclk",
"emac1_sgmiiphy_mac_tclk",
"emac1_sgmiiphy_rclk",
"emac1_sgmiiphy_tclk",
"pcie20_phy_aux_clk",
"pcie_1_pipe_clk",
"pcie_2_pipe_clk",
"pcie_pipe_clk",
"sleep_clk",
"usb3_phy_wrapper_gcc_usb30_pipe_clk";
protected-clocks = <GCC_TLMM_125_CLK>,
<GCC_TLMM_125_CLK_SRC>;
#clock-cells = <1>;
#reset-cells = <1>;
};
#include "sdxkova-usb.dtsi"
#include "ipcc-test-sdxkova.dtsi"