M7350/kernel/arch/arm/boot/dts/qcom/msmcobalt.dtsi
2024-09-09 08:57:42 +00:00

1402 lines
36 KiB
Plaintext

/* Copyright (c) 2015-2016, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#include "skeleton64.dtsi"
#include <dt-bindings/clock/msm-clocks-cobalt.h>
#include <dt-bindings/regulator/qcom,rpm-smd-regulator.h>
/ {
model = "Qualcomm Technologies, Inc. MSM COBALT";
compatible = "qcom,msmcobalt";
qcom,msm-id = <292 0x0>;
interrupt-parent = <&intc>;
aliases {
serial0 = &uartblsp2dm1;
sdhc2 = &sdhc_2; /* SDC2 SD card slot */
};
cpus {
#address-cells = <2>;
#size-cells = <0>;
CPU0: cpu@0 {
device_type = "cpu";
compatible = "arm,armv8";
reg = <0x0 0x0>;
qcom,limits-info = <&mitigation_profile0>;
enable-method = "spin-table";
cpu-release-addr = <0x0 0x90000000>;
next-level-cache = <&L2_0>;
L2_0: l2-cache {
compatible = "arm,arch-cache";
cache-level = <2>;
};
};
CPU1: cpu@1 {
device_type = "cpu";
compatible = "arm,armv8";
reg = <0x0 0x1>;
qcom,limits-info = <&mitigation_profile1>;
enable-method = "spin-table";
cpu-release-addr = <0x0 0x90000000>;
next-level-cache = <&L2_0>;
};
CPU2: cpu@2 {
device_type = "cpu";
compatible = "arm,armv8";
reg = <0x0 0x2>;
qcom,limits-info = <&mitigation_profile2>;
enable-method = "spin-table";
cpu-release-addr = <0x0 0x90000000>;
next-level-cache = <&L2_0>;
};
CPU3: cpu@3 {
device_type = "cpu";
compatible = "arm,armv8";
reg = <0x0 0x3>;
qcom,limits-info = <&mitigation_profile3>;
enable-method = "spin-table";
cpu-release-addr = <0x0 0x90000000>;
next-level-cache = <&L2_0>;
};
CPU4: cpu@100 {
device_type = "cpu";
compatible = "arm,armv8";
reg = <0x0 0x100>;
qcom,limits-info = <&mitigation_profile4>;
enable-method = "spin-table";
cpu-release-addr = <0x0 0x90000000>;
next-level-cache = <&L2_1>;
L2_1: l2-cache {
compatible = "arm,arch-cache";
cache-level = <2>;
};
};
CPU5: cpu@101 {
device_type = "cpu";
compatible = "arm,armv8";
reg = <0x0 0x101>;
qcom,limits-info = <&mitigation_profile5>;
enable-method = "spin-table";
cpu-release-addr = <0x0 0x90000000>;
next-level-cache = <&L2_1>;
};
CPU6: cpu@102 {
device_type = "cpu";
compatible = "arm,armv8";
reg = <0x0 0x102>;
qcom,limits-info = <&mitigation_profile6>;
enable-method = "spin-table";
cpu-release-addr = <0x0 0x90000000>;
next-level-cache = <&L2_1>;
};
CPU7: cpu@103 {
device_type = "cpu";
compatible = "arm,armv8";
reg = <0x0 0x103>;
qcom,limits-info = <&mitigation_profile7>;
enable-method = "spin-table";
cpu-release-addr = <0x0 0x90000000>;
next-level-cache = <&L2_1>;
};
cpu-map {
cluster0 {
core0 {
cpu = <&CPU0>;
};
core1 {
cpu = <&CPU1>;
};
core2 {
cpu = <&CPU2>;
};
core3 {
cpu = <&CPU3>;
};
};
cluster1 {
core0 {
cpu = <&CPU4>;
};
core1 {
cpu = <&CPU5>;
};
core2 {
cpu = <&CPU6>;
};
core3 {
cpu = <&CPU7>;
};
};
};
};
soc: soc { };
reserved-memory {
#address-cells = <2>;
#size-cells = <2>;
ranges;
removed_regions: removed_regions@85800000 {
compatible = "removed-dma-pool";
no-map;
reg = <0 0x85800000 0 0x4f00000>;
};
peripheral_mem: peripheral_region@91400000 {
compatible = "removed-dma-pool";
no-map;
reg = <0 0x91400000 0 0x2d00000>;
};
modem_mem: modem_region@8a700000 {
compatible = "removed-dma-pool";
no-map;
reg = <0 0x8a700000 0 0x6d00000>;
};
};
};
#include "msmcobalt-smp2p.dtsi"
#include "msm-gdsc-cobalt.dtsi"
&soc {
#address-cells = <1>;
#size-cells = <1>;
ranges = <0 0 0 0xffffffff>;
compatible = "simple-bus";
intc: interrupt-controller@17a00000 {
compatible = "arm,gic-v3";
reg = <0x17a00000 0x10000>, /* GICD */
<0x17b00000 0x100000>; /* GICR * 8 */
#interrupt-cells = <3>;
#address-cells = <1>;
#size-cells = <1>;
ranges;
interrupt-controller;
#redistributor-regions = <1>;
redistributor-stride = <0x0 0x20000>;
interrupts = <1 9 4>;
gic-its@0x17a20000{
compatible = "arm,gic-v3-its";
msi-contoller;
reg = <0x17a20000 0x20000>;
};
};
timer {
compatible = "arm,armv8-timer";
interrupts = <1 2 0xf08>,
<1 3 0xf08>,
<1 4 0xf08>,
<1 1 0xf08>;
clock-frequency = <19200000>;
};
uartblsp1dm1: serial@0c170000 {
compatible = "qcom,msm-lsuart-v14";
reg = <0xc170000 0x1000>;
interrupts = <0 108 0>;
status = "disabled";
clocks = <&clock_gcc clk_gcc_blsp1_uart2_apps_clk>,
<&clock_gcc clk_gcc_blsp1_ahb_clk>;
clock-names = "core_clk", "iface_clk";
};
uartblsp2dm1: serial@0c1b0000 {
compatible = "qcom,msm-lsuart-v14";
reg = <0xc1b0000 0x1000>;
interrupts = <0 114 0>;
status = "disabled";
clocks = <&clock_gcc clk_gcc_blsp2_uart2_apps_clk>,
<&clock_gcc clk_gcc_blsp2_ahb_clk>;
clock-names = "core_clk", "iface_clk";
};
timer@17920000 {
#address-cells = <1>;
#size-cells = <1>;
ranges;
compatible = "arm,armv7-timer-mem";
reg = <0x17920000 0x1000>;
clock-frequency = <19200000>;
frame@17921000 {
frame-number = <0>;
interrupts = <0 31 0x4>,
<0 30 0x4>;
reg = <0x17921000 0x1000>,
<0x17922000 0x1000>;
};
frame@17923000 {
frame-number = <1>;
interrupts = <0 32 0x4>;
reg = <0x17923000 0x1000>;
status = "disabled";
};
frame@17924000 {
frame-number = <2>;
interrupts = <0 33 0x4>;
reg = <0x17924000 0x1000>;
status = "disabled";
};
frame@17925000 {
frame-number = <3>;
interrupts = <0 34 0x4>;
reg = <0x17925000 0x1000>;
status = "disabled";
};
frame@17926000 {
frame-number = <4>;
interrupts = <0 35 0x4>;
reg = <0x17926000 0x1000>;
status = "disabled";
};
frame@17927000 {
frame-number = <5>;
interrupts = <0 36 0x4>;
reg = <0x17927000 0x1000>;
status = "disabled";
};
frame@17928000 {
frame-number = <6>;
interrupts = <0 37 0x4>;
reg = <0x17928000 0x1000>;
status = "disabled";
};
};
arm64-cpu-erp {
compatible = "arm,arm64-cpu-erp";
interrupts = <0 43 4>,
<0 44 4>,
<0 41 4>,
<0 42 4>;
interrupt-names = "pri-dbe-irq",
"sec-dbe-irq",
"pri-ext-irq",
"sec-ext-irq";
poll-delay-ms = <5000>;
};
clock_gcc: qcom,gcc@100000 {
compatible = "qcom,gcc-cobalt";
reg = <0x100000 0xb0000>;
reg-names = "cc_base";
vdd_dig-supply = <&pmcobalt_s1_level>;
#clock-cells = <1>;
};
clock_mmss: qcom,mmsscc@c8c0000 {
compatible = "qcom,dummycc";
#clock-cells = <1>;
};
clock_gpu: qcom,gpucc@5065000 {
compatible = "qcom,dummycc";
#clock-cells = <1>;
};
clock_debug: qcom,debugcc@162000 {
compatible = "qcom,cc-debug-cobalt";
reg = <0x162000 0x4>;
reg-names = "cc_base";
#clock-cells = <1>;
};
qcom,msm_gsi {
compatible = "qcom,msm_gsi";
};
qcom,rmnet-ipa {
compatible = "qcom,rmnet-ipa3";
};
ipa_hw: qcom,ipa@01e00000 {
compatible = "qcom,ipa";
reg = <0x01e00000 0x34000>,
<0x01e84000 0x31fff>,
<0x01e04000 0x2c000>;
reg-names = "ipa-base", "bam-base", "gsi-base";
interrupts =
<0 333 0>,
<0 432 0>,
<0 432 0>;
interrupt-names = "ipa-irq", "bam-irq", "gsi-irq";
qcom,ipa-hw-ver = <11>; /* IPA core version = IPAv3.1 */
qcom,ipa-hw-mode = <0>; /* IPA hw type = Normal */
qcom,ee = <0>;
qcom,use-gsi;
qcom,use-ipa-tethering-bridge;
qcom,modem-cfg-emb-pipe-flt;
clock-names = "core_clk";
clocks = <&clock_gcc clk_ipa_a_clk>;
qcom,msm-bus,name = "ipa";
qcom,msm-bus,num-cases = <4>;
qcom,msm-bus,num-paths = <2>;
qcom,msm-bus,vectors-KBps =
<90 512 0 0>, <90 585 0 0>, /* No vote */
<90 512 80000 640000>, <90 585 80000 640000>, /* SVS */
<90 512 206000 960000>, <90 585 206000 960000>, /* NOMINAL */
<90 512 206000 3600000>, <90 585 206000 3600000>; /* TURBO */
qcom,bus-vector-names = "MIN", "SVS", "NOMINAL", "TURBO";
};
qcom,ipc-spinlock@1f40000 {
compatible = "qcom,ipc-spinlock-sfpb";
reg = <0x1f40000 0x8000>;
qcom,num-locks = <8>;
};
qcom,ghd {
compatible = "qcom,gladiator-hang-detect";
qcom,threshold-arr = <0x179d141c 0x179d1420
0x179d1424 0x179d1428 0x179d142c 0x179d1430>;
qcom,config-reg = <0x179d1434>;
};
qcom,smem@86000000 {
compatible = "qcom,smem";
reg = <0x86000000 0x200000>,
<0x17911008 0x4>,
<0x778000 0x7000>,
<0x1fd4000 0x8>;
reg-names = "smem", "irq-reg-base", "aux-mem1",
"smem_targ_info_reg";
qcom,mpu-enabled;
qcom,smd-modem {
compatible = "qcom,smd";
qcom,smd-edge = <0>;
qcom,smd-irq-offset = <0x0>;
qcom,smd-irq-bitmask = <0x1000>;
interrupts = <0 449 1>;
label = "modem";
qcom,not-loadable;
};
qcom,smd-adsp {
compatible = "qcom,smd";
qcom,smd-edge = <1>;
qcom,smd-irq-offset = <0x0>;
qcom,smd-irq-bitmask = <0x100>;
interrupts = <0 156 1>;
label = "adsp";
};
qcom,smd-dsps {
compatible = "qcom,smd";
qcom,smd-edge = <3>;
qcom,smd-irq-offset = <0x0>;
qcom,smd-irq-bitmask = <0x2000000>;
interrupts = <0 176 1>;
label = "dsps";
};
};
rpm_bus: qcom,rpm-smd {
compatible = "qcom,rpm-glink";
qcom,glink-edge = "rpm";
rpm-channel-name = "rpm_requests";
rpm-standalone;
};
qcom,smdpkt {
compatible = "qcom,smdpkt";
qcom,smdpkt-apr-apps2 {
qcom,smdpkt-remote = "adsp";
qcom,smdpkt-port-name = "apr_apps2";
qcom,smdpkt-dev-name = "apr_apps2";
};
qcom,smdpkt-loopback {
qcom,smdpkt-remote = "modem";
qcom,smdpkt-port-name = "LOOPBACK";
qcom,smdpkt-dev-name = "smd_pkt_loopback";
};
};
glink_mpss: qcom,glink-ssr-modem {
compatible = "qcom,glink_ssr";
label = "modem";
qcom,edge = "mpss";
qcom,notify-edges = <&glink_lpass>, <&glink_dsps>, <&glink_rpm>,
<&glink_spss>;
qcom,xprt = "smem";
};
glink_lpass: qcom,glink-ssr-adsp {
compatible = "qcom,glink_ssr";
label = "adsp";
qcom,edge = "lpass";
qcom,notify-edges = <&glink_mpss>, <&glink_dsps>, <&glink_rpm>,
<&glink_spss>;
qcom,xprt = "smem";
};
glink_dsps: qcom,glink-ssr-dsps {
compatible = "qcom,glink_ssr";
label = "slpi";
qcom,edge = "dsps";
qcom,notify-edges = <&glink_mpss>, <&glink_lpass>, <&glink_rpm>,
<&glink_spss>;
qcom,xprt = "smem";
};
glink_rpm: qcom,glink-ssr-rpm {
compatible = "qcom,glink_ssr";
label = "rpm";
qcom,edge = "rpm";
qcom,notify-edges = <&glink_lpass>, <&glink_mpss>,
<&glink_dsps>, <&glink_spss>;
qcom,xprt = "smem";
};
glink_spss: qcom,glink-ssr-spss {
compatible = "qcom,glink_ssr";
label = "spss";
qcom,edge = "spss";
qcom,notify-edges = <&glink_mpss>, <&glink_lpass>,
<&glink_dsps>, <&glink_rpm>;
qcom,xprt = "mailbox";
};
qcom,glink-smem-native-xprt-modem@86000000 {
compatible = "qcom,glink-smem-native-xprt";
reg = <0x86000000 0x200000>,
<0x17911008 0x4>;
reg-names = "smem", "irq-reg-base";
qcom,irq-mask = <0x8000>;
interrupts = <0 452 1>;
label = "mpss";
};
qcom,glink-smem-native-xprt-adsp@86000000 {
compatible = "qcom,glink-smem-native-xprt";
reg = <0x86000000 0x200000>,
<0x17911008 0x4>;
reg-names = "smem", "irq-reg-base";
qcom,irq-mask = <0x200>;
interrupts = <0 157 1>;
label = "lpass";
};
qcom,glink-smem-native-xprt-dsps@86000000 {
compatible = "qcom,glink-smem-native-xprt";
reg = <0x86000000 0x200000>,
<0x17911008 0x4>;
reg-names = "smem", "irq-reg-base";
qcom,irq-mask = <0x8000000>;
interrupts = <0 179 1>;
label = "dsps";
};
qcom,glink-smem-native-xprt-rpm@778000 {
compatible = "qcom,glink-rpm-native-xprt";
reg = <0x778000 0x7000>,
<0x17911008 0x4>;
reg-names = "msgram", "irq-reg-base";
qcom,irq-mask = <0x1>;
interrupts = <0 168 1>;
label = "rpm";
};
qcom,glink-mailbox-xprt-spss@1d05008 {
compatible = "qcom,glink-mailbox-xprt";
reg = <0x1d05008 0x8>,
<0x1d05010 0x4>,
<0x1d0501c 0x4>,
<0x1d06008 0x4>;
reg-names = "mbox-loc-addr", "mbox-loc-size", "irq-reg-base",
"irq-rx-reset";
qcom,irq-mask = <0x1>;
interrupts = <0 348 4>;
label = "spss";
qcom,tx-ring-size = <0x800>;
qcom,rx-ring-size = <0x800>;
};
qcom,glink_pkt {
compatible = "qcom,glinkpkt";
qcom,glinkpkt-at-mdm0 {
qcom,glinkpkt-transport = "smd_trans";
qcom,glinkpkt-edge = "mpss";
qcom,glinkpkt-ch-name = "DS";
qcom,glinkpkt-dev-name = "at_mdm0";
};
qcom,glinkpkt-loopback_cntl {
qcom,glinkpkt-transport = "lloop";
qcom,glinkpkt-edge = "local";
qcom,glinkpkt-ch-name = "LOCAL_LOOPBACK_CLNT";
qcom,glinkpkt-dev-name = "glink_pkt_loopback_ctrl";
};
qcom,glinkpkt-loopback_data {
qcom,glinkpkt-transport = "lloop";
qcom,glinkpkt-edge = "local";
qcom,glinkpkt-ch-name = "glink_pkt_lloop_CLNT";
qcom,glinkpkt-dev-name = "glink_pkt_loopback";
};
};
qcom,ipc_router {
compatible = "qcom,ipc_router";
qcom,node-id = <1>;
};
qcom,ipc_router_modem_xprt {
compatible = "qcom,ipc_router_glink_xprt";
qcom,ch-name = "IPCRTR";
qcom,xprt-remote = "mpss";
qcom,glink-xprt = "smem";
qcom,xprt-linkid = <1>;
qcom,xprt-version = <1>;
qcom,fragmented-data;
};
qcom,ipc_router_q6_xprt {
compatible = "qcom,ipc_router_glink_xprt";
qcom,ch-name = "IPCRTR";
qcom,xprt-remote = "lpass";
qcom,glink-xprt = "smem";
qcom,xprt-linkid = <1>;
qcom,xprt-version = <1>;
qcom,fragmented-data;
};
qcom,ipc_router_dsps_xprt {
compatible = "qcom,ipc_router_glink_xprt";
qcom,ch-name = "IPCRTR";
qcom,xprt-remote = "dsps";
qcom,glink-xprt = "smem";
qcom,xprt-linkid = <1>;
qcom,xprt-version = <1>;
qcom,fragmented-data;
};
qcom,spcom {
compatible = "qcom,spcom";
/* predefined channels, remote side is server */
qcom,spcom-ch-names = "sp_kernel" , "sp_ssr";
status = "ok";
};
sdhc_2: sdhci@c0a4900 {
compatible = "qcom,sdhci-msm";
reg = <0xc0a4900 0x314>, <0xc0a4000 0x800>;
reg-names = "hc_mem", "core_mem";
interrupts = <0 125 0>, <0 221 0>;
interrupt-names = "hc_irq", "pwr_irq";
clock-names = "iface_clk", "core_clk";
clocks = <&clock_gcc clk_gcc_sdcc2_ahb_clk>,
<&clock_gcc clk_gcc_sdcc2_apps_clk>;
qcom,large-address-bus;
qcom,bus-width = <4>;
qcom,cpu-dma-latency-us = <701>;
qcom,devfreq,freq-table = <52000000 200000000>;
qcom,msm-bus,name = "sdhc2";
qcom,msm-bus,num-cases = <8>;
qcom,msm-bus,num-paths = <1>;
qcom,msm-bus,vectors-KBps = <81 512 0 0>, /* No vote */
<81 512 1600 3200>, /* 400 KB/s*/
<81 512 80000 160000>, /* 20 MB/s */
<81 512 100000 200000>, /* 25 MB/s */
<81 512 200000 400000>, /* 50 MB/s */
<81 512 400000 800000>, /* 100 MB/s */
<81 512 800000 800000>, /* 200 MB/s */
<81 512 2048000 4096000>; /* Max. bandwidth */
qcom,bus-bw-vectors-bps = <0 400000 20000000 25000000 50000000
100000000 200000000 4294967295>;
status = "disabled";
};
ufsphy1: ufsphy@1da7000 {
compatible = "qcom,ufs-phy-qmp-v3";
reg = <0x1da7000 0xda8>;
reg-names = "phy_mem";
#phy-cells = <0>;
vdda-phy-max-microamp = <51430>;
vdda-pll-max-microamp = <14170>;
vddp-ref-clk-max-microamp = <100>;
vddp-ref-clk-always-on;
clock-names = "ref_clk_src",
"ref_clk";
clocks = <&clock_gcc clk_ln_bb_clk1>,
<&clock_gcc clk_gcc_ufs_clkref_clk>;
status = "disabled";
};
ufs_ice: ufsice@1db0000 {
compatible = "qcom,ice";
reg = <0x1db0000 0x8000>;
qcom,enable-ice-clk;
clock-names = "ufs_core_clk_src",
"ufs_core_clk",
"bus_clk",
"iface_clk",
"ice_core_clk_src",
"ice_core_clk";
clocks = <&clock_gcc clk_ufs_axi_clk_src>,
<&clock_gcc clk_gcc_ufs_axi_clk>,
<&clock_gcc clk_gcc_aggre1_ufs_axi_clk>,
<&clock_gcc clk_gcc_ufs_ahb_clk>,
<&clock_gcc clk_ufs_ice_core_clk_src>,
<&clock_gcc clk_gcc_ufs_ice_core_clk>;
qcom,op-freq-hz = <0>,
<0>,
<0>,
<0>,
<300000000>,
<0>;
vdd-hba-supply = <&gdsc_ufs>;
qcom,msm-bus,name = "ufs_ice_noc";
qcom,msm-bus,num-cases = <2>;
qcom,msm-bus,num-paths = <1>;
qcom,msm-bus,vectors-KBps =
<1 650 0 0>, /* No vote */
<1 650 1000 0>; /* Max. bandwidth */
qcom,bus-vector-names = "MIN",
"MAX";
qcom,instance-type = "ufs";
status = "disabled";
};
ufs1: ufshc@1da4000 {
compatible = "jedec,ufs-1.1";
reg = <0x1da4000 0x2500>;
interrupts = <0 265 0>;
phys = <&ufsphy1>;
phy-names = "ufsphy";
vdd-hba-supply = <&gdsc_ufs>;
vdd-hba-fixed-regulator;
vcc-max-microamp = <750000>;
vccq-max-microamp = <450000>;
vccq2-max-microamp = <750000>;
ufs-qcom-crypto = <&ufs_ice>;
clock-names =
"core_clk_src",
"core_clk",
"iface_clk",
"core_clk_unipro_src",
"core_clk_unipro",
"core_clk_ice",
"ref_clk",
"tx_lane0_sync_clk",
"rx_lane0_sync_clk";
clocks =
<&clock_gcc clk_ufs_axi_clk_src>,
<&clock_gcc clk_gcc_ufs_axi_clk>,
<&clock_gcc clk_gcc_ufs_ahb_clk>,
<&clock_gcc clk_ufs_ice_core_clk_src>,
<&clock_gcc clk_gcc_ufs_unipro_core_clk>,
<&clock_gcc clk_gcc_ufs_ice_core_clk>,
<&clock_gcc clk_ln_bb_clk1>,
<&clock_gcc clk_gcc_ufs_tx_symbol_0_clk>,
<&clock_gcc clk_gcc_ufs_rx_symbol_0_clk>;
freq-table-hz =
<100000000 200000000>,
<0 0>,
<0 0>,
<150000000 300000000>,
<0 0>,
<0 0>,
<0 0>,
<0 0>,
<0 0>;
lanes-per-direction = <1>;
qcom,msm-bus,name = "ufs1";
qcom,msm-bus,num-cases = <12>;
qcom,msm-bus,num-paths = <2>;
qcom,msm-bus,vectors-KBps =
<95 512 0 0>, <1 650 0 0>, /* No vote */
<95 512 922 0>, <1 650 1000 0>, /* PWM G1 */
<95 512 1844 0>, <1 650 1000 0>, /* PWM G2 */
<95 512 3688 0>, <1 650 1000 0>, /* PWM G3 */
<95 512 7376 0>, <1 650 1000 0>, /* PWM G4 */
<95 512 127796 0>, <1 650 1000 0>, /* HS G1 RA */
<95 512 255591 0>, <1 650 1000 0>, /* HS G2 RA */
<95 512 511181 0>, <1 650 1000 0>, /* HS G3 RA */
<95 512 149422 0>, <1 650 1000 0>, /* HS G1 RB */
<95 512 298189 0>, <1 650 1000 0>, /* HS G2 RB */
<95 512 596378 0>, <1 650 1000 0>, /* HS G3 RB */
<95 512 4096000 0>, <1 650 1000 0>; /* Max. bandwidth */
qcom,bus-vector-names = "MIN",
"PWM_G1_L1", "PWM_G2_L1", "PWM_G3_L1", "PWM_G4_L1",
"HS_RA_G1_L1", "HS_RA_G2_L1", "HS_RA_G3_L1",
"HS_RB_G1_L1", "HS_RB_G2_L1", "HS_RB_G3_L1",
"MAX";
qcom,cpu-affinity = "affine_cores";
qcom,cpu-dma-latency-us = <301>;
status = "disabled";
ufs_variant {
compatible = "qcom,ufs_variant";
};
};
usb3: ssusb@a800000 {
compatible = "qcom,dwc-usb3-msm";
reg = <0x0a800000 0xf8c00>,
<0x0c016000 0x400>;
reg-names = "core_base", "ahb2phy_base";
#address-cells = <1>;
#size-cells = <1>;
ranges;
interrupts = <0 133 0>, <0 180 0>;
interrupt-names = "hs_phy_irq", "pwr_event_irq";
USB3_GDSC-supply = <&gdsc_usb30>;
qcom,msm-bus,name = "usb3";
qcom,msm-bus,num-cases = <2>;
qcom,msm-bus,num-paths = <1>;
qcom,msm-bus,vectors-KBps =
<61 512 0 0>,
<61 512 240000 960000>;
qcom,dwc-usb3-msm-tx-fifo-size = <21288>;
clocks = <&clock_gcc clk_gcc_usb30_master_clk>,
<&clock_gcc clk_gcc_cfg_noc_usb3_axi_clk>,
<&clock_gcc clk_gcc_aggre1_usb3_axi_clk>,
<&clock_gcc clk_gcc_usb30_mock_utmi_clk>,
<&clock_gcc clk_gcc_usb30_sleep_clk>,
<&clock_gcc clk_gcc_usb_phy_cfg_ahb2phy_clk>,
<&clock_gcc clk_cxo_dwc3_clk>;
clock-names = "core_clk", "iface_clk", "bus_aggr_clk",
"utmi_clk", "sleep_clk", "cfg_ahb_clk", "xo";
dwc3@a800000 {
compatible = "snps,dwc3";
reg = <0x0a800000 0xcd00>;
interrupt-parent = <&intc>;
interrupts = <0 131 0>;
usb-phy = <&qusb_phy0>, <&ssphy>;
tx-fifo-resize;
snps,usb3-u1u2-disable;
snps,nominal-elastic-buffer;
snps,hird_thresh = <0x10>;
};
};
android_usb {
compatible = "qcom,android-usb";
};
qusb_phy0: qusb@c012200 {
compatible = "qcom,qusb2phy";
reg = <0x0c012200 0xb0>,
<0x0a8f8800 0x400>,
<0x0078024c 0x4>;
reg-names = "qusb_phy_base",
"qscratch_base",
"tune2_efuse_addr";
vdd-supply = <&pmcobalt_l1>;
vdda18-supply = <&pmcobalt_l12>;
vdda33-supply = <&pmcobalt_l24>;
qcom,vdd-voltage-level = <0 880000 880000>;
phy_type= "utmi";
clocks = <&clock_gcc clk_ln_bb_clk1>,
<&clock_gcc clk_gcc_rx1_usb2_clkref_clk>,
<&clock_gcc clk_gcc_usb_phy_cfg_ahb2phy_clk>,
<&clock_gcc clk_gcc_qusb2phy_prim_reset>;
clock-names = "ref_clk_src", "ref_clk", "cfg_ahb_clk",
"phy_reset";
};
ssphy: ssphy@c010000 {
compatible = "qcom,usb-ssphy-qmp-v2";
reg = <0x0c010000 0xbf8>,
<0x01fcb244 0x4>;
reg-names = "qmp_phy_base",
"vls_clamp_reg";
vdd-supply = <&pmcobalt_l1>;
vdda18-supply = <&pmcobalt_l12>;
qcom,vdd-voltage-level = <0 880000 880000>;
qcom,vbus-valid-override;
clocks = <&clock_gcc clk_gcc_usb3_phy_aux_clk>,
<&clock_gcc clk_gcc_usb3_phy_pipe_clk>,
<&clock_gcc clk_gcc_usb_phy_cfg_ahb2phy_clk>,
<&clock_gcc clk_gcc_usb3_phy_reset>,
<&clock_gcc clk_gcc_usb3phy_phy_reset>,
<&clock_gcc clk_ln_bb_clk1>,
<&clock_gcc clk_gcc_usb3_clkref_clk>;
clock-names = "aux_clk", "pipe_clk", "cfg_ahb_clk", "phy_reset",
"phy_phy_reset", "ref_clk_src", "ref_clk";
};
qcom,lpass@17300000 {
compatible = "qcom,pil-tz-generic";
reg = <0x17300000 0x00100>;
interrupts = <0 162 1>;
vdd_cx-supply = <&pmcobalt_s1_level>;
qcom,proxy-reg-names = "vdd_cx";
qcom,vdd_cx-uV-uA = <RPM_SMD_REGULATOR_LEVEL_TURBO 100000>;
clocks = <&clock_gcc clk_cxo_pil_lpass_clk>;
clock-names = "xo";
qcom,proxy-clock-names = "xo";
qcom,pas-id = <1>;
qcom,proxy-timeout-ms = <10000>;
qcom,smem-id = <423>;
qcom,sysmon-id = <1>;
qcom,ssctl-instance-id = <0x14>;
qcom,firmware-name = "adsp";
memory-region = <&peripheral_mem>;
/* GPIO inputs from lpass */
qcom,gpio-err-fatal = <&smp2pgpio_ssr_smp2p_2_in 0 0>;
qcom,gpio-proxy-unvote = <&smp2pgpio_ssr_smp2p_2_in 2 0>;
qcom,gpio-err-ready = <&smp2pgpio_ssr_smp2p_2_in 1 0>;
qcom,gpio-stop-ack = <&smp2pgpio_ssr_smp2p_2_in 3 0>;
/* GPIO output to lpass */
qcom,gpio-force-stop = <&smp2pgpio_ssr_smp2p_2_out 0 0>;
};
pil_modem: qcom,mss@4080000 {
compatible = "qcom,pil-q6v55-mss";
reg = <0x4080000 0x100>,
<0x1f63000 0x008>,
<0x1f65000 0x008>,
<0x1f64000 0x008>,
<0x4180000 0x020>,
<0x00179000 0x004>;
reg-names = "qdsp6_base", "halt_q6", "halt_modem",
"halt_nc", "rmb_base", "restart_reg";
clocks = <&clock_gcc clk_cxo_clk_src>,
<&clock_gcc clk_gcc_mss_cfg_ahb_clk>,
<&clock_gcc clk_pnoc_clk>,
<&clock_gcc clk_gcc_mss_q6_bimc_axi_clk>,
<&clock_gcc clk_gcc_boot_rom_ahb_clk>,
<&clock_gcc clk_gpll0_out_msscc>,
<&clock_gcc clk_gcc_mss_snoc_axi_clk>,
<&clock_gcc clk_gcc_mss_mnoc_bimc_axi_clk>,
<&clock_gcc clk_qdss_clk>;
clock-names = "xo", "iface_clk", "pnoc_clk", "bus_clk",
"mem_clk", "gpll0_mss_clk", "snoc_axi_clk",
"mnoc_axi_clk", "qdss_clk";
qcom,proxy-clock-names = "xo", "pnoc_clk", "qdss_clk";
qcom,active-clock-names = "iface_clk", "bus_clk", "mem_clk",
"gpll0_mss_clk", "snoc_axi_clk",
"mnoc_axi_clk";
interrupts = <0 448 1>;
vdd_cx-supply = <&pmcobalt_s1_level>;
vdd_cx-voltage = <RPM_SMD_REGULATOR_LEVEL_TURBO>;
vdd_mx-supply = <&pmcobalt_s9_level>;
vdd_mx-uV = <RPM_SMD_REGULATOR_LEVEL_TURBO>;
vdd_pll-supply = <&pm8005_s3>;
qcom,vdd_pll = <600000>;
qcom,firmware-name = "modem";
qcom,pil-self-auth;
qcom,sysmon-id = <0>;
qcom,ssctl-instance-id = <0x12>;
qcom,override-acc;
qcom,qdsp6v62-1-2;
memory-region = <&modem_mem>;
qcom,mem-protect-id = <0xF>;
/* GPIO inputs from mss */
qcom,gpio-err-fatal = <&smp2pgpio_ssr_smp2p_1_in 0 0>;
qcom,gpio-err-ready = <&smp2pgpio_ssr_smp2p_1_in 1 0>;
qcom,gpio-proxy-unvote = <&smp2pgpio_ssr_smp2p_1_in 2 0>;
qcom,gpio-stop-ack = <&smp2pgpio_ssr_smp2p_1_in 3 0>;
qcom,gpio-shutdown-ack = <&smp2pgpio_ssr_smp2p_1_in 7 0>;
/* GPIO output to mss */
qcom,gpio-force-stop = <&smp2pgpio_ssr_smp2p_1_out 0 0>;
};
tsens0: tsens@10aa000 {
compatible = "qcom,msmcobalt-tsens";
reg = <0x10aa000 0x2000>,
<0x74230 0x1000>;
reg-names = "tsens_physical", "tsens_eeprom_physical";
interrupts = <0 458 0>, <0 445 0>;
interrupt-names = "tsens-upper-lower", "tsens-critical";
qcom,sensors = <14>;
qcom,slope = <2901 2846 3200 3200 3200 3200 3200 3200 3200
3200 3200 3200 3200 3200>;
};
tsens1: tsens@10ad000 {
compatible = "qcom,msmcobalt-tsens";
reg = <0x10ad000 0x2000>,
<0x75230 0x1000>;
reg-names = "tsens_physical", "tsens_eeprom_physical";
interrupts = <0 184 0>, <0 430 0>;
interrupt-names = "tsens-upper-lower", "tsens-critical";
qcom,client-id = <14 15 16 17 18 19 20 21>;
qcom,sensor-id = <0 1 3 4 5 6 7 2>;
qcom,sensors = <8>;
qcom,slope = <2901 2846 3200 3200 3200 3200 3200 3200>;
};
qcom,sensor-information {
compatible = "qcom,sensor-information";
sensor_information0: qcom,sensor-information-0 {
qcom,sensor-type = "tsens";
qcom,sensor-name = "tsens_tz_sensor0";
qcom,scaling-factor = <10>;
};
sensor_information1: qcom,sensor-information-1 {
qcom,sensor-type = "tsens";
qcom,sensor-name = "tsens_tz_sensor1";
qcom,alias-name = "pop_mem";
qcom,scaling-factor = <10>;
};
sensor_information2: qcom,sensor-information-2 {
qcom,sensor-type = "tsens";
qcom,sensor-name = "tsens_tz_sensor2";
qcom,scaling-factor = <10>;
};
sensor_information3: qcom,sensor-information-3 {
qcom,sensor-type = "tsens";
qcom,sensor-name = "tsens_tz_sensor3";
qcom,scaling-factor = <10>;
};
sensor_information4: qcom,sensor-information-4 {
qcom,sensor-type = "tsens";
qcom,sensor-name = "tsens_tz_sensor4";
qcom,scaling-factor = <10>;
};
sensor_information5: qcom,sensor-information-5 {
qcom,sensor-type = "tsens";
qcom,sensor-name = "tsens_tz_sensor5";
qcom,scaling-factor = <10>;
};
sensor_information6: qcom,sensor-information-6 {
qcom,sensor-type = "tsens";
qcom,sensor-name = "tsens_tz_sensor6";
qcom,scaling-factor = <10>;
};
sensor_information7: qcom,sensor-information-7 {
qcom,sensor-type = "tsens";
qcom,sensor-name = "tsens_tz_sensor7";
qcom,scaling-factor = <10>;
};
sensor_information8: qcom,sensor-information-8 {
qcom,sensor-type = "tsens";
qcom,sensor-name = "tsens_tz_sensor8";
qcom,scaling-factor = <10>;
};
sensor_information9: qcom,sensor-information-9 {
qcom,sensor-type = "tsens";
qcom,sensor-name = "tsens_tz_sensor9";
qcom,scaling-factor = <10>;
};
sensor_information10: qcom,sensor-information-10 {
qcom,sensor-type = "tsens";
qcom,sensor-name = "tsens_tz_sensor10";
qcom,scaling-factor = <10>;
};
sensor_information11: qcom,sensor-information-11 {
qcom,sensor-type = "tsens";
qcom,sensor-name = "tsens_tz_sensor11";
qcom,scaling-factor = <10>;
};
sensor_information12: qcom,sensor-information-12 {
qcom,sensor-type = "tsens";
qcom,sensor-name = "tsens_tz_sensor12";
qcom,scaling-factor = <10>;
};
sensor_information13: qcom,sensor-information-13 {
qcom,sensor-type = "tsens";
qcom,sensor-name = "tsens_tz_sensor13";
qcom,scaling-factor = <10>;
};
sensor_information14: qcom,sensor-information-14 {
qcom,sensor-type = "tsens";
qcom,sensor-name = "tsens_tz_sensor14";
qcom,scaling-factor = <10>;
};
sensor_information15: qcom,sensor-information-15 {
qcom,sensor-type = "tsens";
qcom,sensor-name = "tsens_tz_sensor15";
qcom,alias-name = "gpu";
qcom,scaling-factor = <10>;
};
sensor_information16: qcom,sensor-information-16 {
qcom,sensor-type = "tsens";
qcom,sensor-name = "tsens_tz_sensor16";
qcom,alias-name = "pop_mem";
qcom,scaling-factor = <10>;
};
sensor_information17: qcom,sensor-information-17 {
qcom,sensor-type = "tsens";
qcom,sensor-name = "tsens_tz_sensor17";
qcom,scaling-factor = <10>;
};
sensor_information18: qcom,sensor-information-18 {
qcom,sensor-type = "tsens";
qcom,sensor-name = "tsens_tz_sensor18";
qcom,scaling-factor = <10>;
};
sensor_information19: qcom,sensor-information-19 {
qcom,sensor-type = "tsens";
qcom,sensor-name = "tsens_tz_sensor19";
qcom,scaling-factor = <10>;
};
sensor_information20: qcom,sensor-information-20 {
qcom,sensor-type = "tsens";
qcom,sensor-name = "tsens_tz_sensor20";
qcom,scaling-factor = <10>;
};
sensor_information21: qcom,sensor-information-21 {
qcom,sensor-type = "tsens";
qcom,sensor-name = "tsens_tz_sensor21";
qcom,scaling-factor = <10>;
};
sensor_information22: qcom,sensor-information-22 {
qcom,sensor-type = "alarm";
qcom,sensor-name = "pm8994_tz";
qcom,scaling-factor = <1000>;
};
sensor_information23: qcom,sensor-information-23 {
qcom,sensor-type = "adc";
qcom,sensor-name = "msm_therm";
};
sensor_information24: qcom,sensor-information-24 {
qcom,sensor-type = "adc";
qcom,sensor-name = "emmc_therm";
};
sensor_information25: qcom,sensor-information-25 {
qcom,sensor-type = "adc";
qcom,sensor-name = "pa_therm0";
};
sensor_information26: qcom,sensor-information-26 {
qcom,sensor-type = "adc";
qcom,sensor-name = "pa_therm1";
};
sensor_information27: qcom,sensor-information-27 {
qcom,sensor-type = "adc";
qcom,sensor-name = "quiet_therm";
};
};
mitigation_profile0: qcom,limit_info-0 {
qcom,temperature-sensor = <&sensor_information1>;
qcom,boot-frequency-mitigate;
qcom,hotplug-mitigation-enable;
};
mitigation_profile1: qcom,limit_info-1 {
qcom,temperature-sensor = <&sensor_information2>;
qcom,boot-frequency-mitigate;
qcom,hotplug-mitigation-enable;
};
mitigation_profile2: qcom,limit_info-2 {
qcom,temperature-sensor = <&sensor_information3>;
qcom,boot-frequency-mitigate;
qcom,hotplug-mitigation-enable;
};
mitigation_profile3: qcom,limit_info-3 {
qcom,temperature-sensor = <&sensor_information4>;
qcom,boot-frequency-mitigate;
qcom,hotplug-mitigation-enable;
};
mitigation_profile4: qcom,limit_info-4 {
qcom,temperature-sensor = <&sensor_information7>;
qcom,boot-frequency-mitigate;
qcom,hotplug-mitigation-enable;
};
mitigation_profile5: qcom,limit_info-5 {
qcom,temperature-sensor = <&sensor_information8>;
qcom,boot-frequency-mitigate;
qcom,hotplug-mitigation-enable;
};
mitigation_profile6: qcom,limit_info-6 {
qcom,temperature-sensor = <&sensor_information9>;
qcom,boot-frequency-mitigate;
qcom,hotplug-mitigation-enable;
};
mitigation_profile7: qcom,limit_info-7 {
qcom,temperature-sensor = <&sensor_information10>;
qcom,boot-frequency-mitigate;
qcom,hotplug-mitigation-enable;
};
qcom,msm-thermal {
compatible = "qcom,msm-thermal";
qcom,sensor-id = <1>;
qcom,poll-ms = <100>;
qcom,limit-temp = <60>;
qcom,temp-hysteresis = <10>;
qcom,therm-reset-temp = <115>;
qcom,freq-step = <4>;
qcom,core-limit-temp = <70>;
qcom,core-temp-hysteresis = <10>;
qcom,hotplug-temp = <70>;
qcom,hotplug-temp-hysteresis = <20>;
qcom,online-hotplug-core;
qcom,synchronous-cluster-id = <0 1>;
qcom,synchronous-cluster-map = <0 4 &CPU0 &CPU1 &CPU2 &CPU3>,
<1 4 &CPU4 &CPU5 &CPU6 &CPU7>;
};
qcom,ssc@5c00000 {
compatible = "qcom,pil-tz-generic";
reg = <0x5c00000 0x4000>;
interrupts = <0 390 1>;
vdd_cx-supply = <&pmcobalt_l27_level>;
vdd_px-supply = <&pmcobalt_lvs2>;
qcom,vdd_cx-uV-uA = <RPM_SMD_REGULATOR_LEVEL_TURBO 0>;
qcom,proxy-reg-names = "vdd_cx", "vdd_px";
qcom,keep-proxy-regs-on;
clocks = <&clock_gcc clk_cxo_pil_ssc_clk>,
<&clock_gcc clk_aggre2_noc_clk>;
clock-names = "xo", "aggre2";
qcom,proxy-clock-names = "xo", "aggre2";
qcom,pas-id = <12>;
qcom,proxy-timeout-ms = <10000>;
qcom,smem-id = <424>;
qcom,sysmon-id = <3>;
qcom,ssctl-instance-id = <0x16>;
qcom,firmware-name = "slpi";
memory-region = <&peripheral_mem>;
/* GPIO inputs from ssc */
qcom,gpio-err-fatal = <&smp2pgpio_ssr_smp2p_3_in 0 0>;
qcom,gpio-proxy-unvote = <&smp2pgpio_ssr_smp2p_3_in 2 0>;
qcom,gpio-err-ready = <&smp2pgpio_ssr_smp2p_3_in 1 0>;
qcom,gpio-stop-ack = <&smp2pgpio_ssr_smp2p_3_in 3 0>;
/* GPIO output to ssc */
qcom,gpio-force-stop = <&smp2pgpio_ssr_smp2p_3_out 0 0>;
};
qcom,venus@cce0000 {
compatible = "qcom,pil-tz-generic";
reg = <0xcce0000 0x4000>;
vdd-supply = <&gdsc_venus>;
qcom,proxy-reg-names = "vdd";
clocks = <&clock_mmss clk_video_core_clk>,
<&clock_mmss clk_video_ahb_clk>,
<&clock_mmss clk_video_axi_clk>,
<&clock_mmss clk_video_maxi_clk>;
clock-names = "core_clk", "iface_clk",
"bus_clk", "maxi_clk";
qcom,proxy-clock-names = "core_clk", "iface_clk",
"bus_clk", "maxi_clk";
qcom,pas-id = <9>;
qcom,proxy-timeout-ms = <100>;
qcom,firmware-name = "venus";
memory-region = <&peripheral_mem>;
};
wdog: qcom,wdt@17817000 {
compatible = "qcom,msm-watchdog";
reg = <0x17817000 0x1000>;
reg-names = "wdt-base";
interrupts = <0 3 0>, <0 4 0>;
qcom,bark-time = <11000>;
qcom,pet-time = <10000>;
qcom,ipi-ping;
qcom,wakeup-enable;
};
qcom,msm-imem@146bf000 {
compatible = "qcom,msm-imem";
reg = <0x146bf000 0x1000>;
ranges = <0x0 0x146bf000 0x1000>;
#address-cells = <1>;
#size-cells = <1>;
mem_dump_table@10 {
compatible = "qcom,msm-imem-mem_dump_table";
reg = <0x10 8>;
};
};
};
&gdsc_mmss {
status = "ok";
};
&gdsc_usb30 {
clock-names = "core_clk";
clocks = <&clock_gcc clk_gcc_usb30_master_clk>;
status = "ok";
};
&gdsc_pcie_0 {
clock-names = "master_bus_clk", "slave_bus_clk", "core_clk";
clocks = <&clock_gcc clk_gcc_pcie_0_mstr_axi_clk>,
<&clock_gcc clk_gcc_pcie_0_slv_axi_clk>,
<&clock_gcc clk_gcc_pcie_0_pipe_clk>;
status = "ok";
};
&gdsc_ufs {
clock-names = "bus_clk", "ice_clk", "unipro_clk";
clocks = <&clock_gcc clk_gcc_ufs_axi_clk>,
<&clock_gcc clk_gcc_ufs_ice_core_clk>,
<&clock_gcc clk_gcc_ufs_unipro_core_clk>;
status = "ok";
};
&gdsc_bimc_smmu {
clock-names = "bus_clk";
clocks = <&clock_mmss clk_bimc_smmu_axi_clk>;
status = "ok";
};
&gdsc_hlos1_vote_lpass_adsp {
status = "ok";
};
&gdsc_hlos1_vote_lpass_core {
status = "ok";
};
&gdsc_venus {
clock-names = "bus_clk", "maxi_clk", "core_clk";
clocks = <&clock_mmss clk_video_axi_clk>,
<&clock_mmss clk_video_maxi_clk>,
<&clock_mmss clk_video_core_clk>;
status = "ok";
};
&gdsc_venus_core0 {
clock-names = "core0_clk";
clocks = <&clock_mmss clk_video_subcore0_clk>;
status = "ok";
};
&gdsc_venus_core1 {
clock-names = "core1_clk";
clocks = <&clock_mmss clk_video_subcore1_clk>;
status = "ok";
};
&gdsc_camss_top {
clock-names = "bus_clk", "vfe_axi";
clocks = <&clock_mmss clk_camss_cpp_axi_clk>,
<&clock_mmss clk_camss_vfe_vbif_axi_clk>;
status = "ok";
};
&gdsc_vfe0 {
clock-names = "core0_clk" , "core0_stream_clk";
clocks = <&clock_mmss clk_camss_vfe0_clk>,
<&clock_mmss clk_camss_vfe0_stream_clk>;
parent-supply = <&gdsc_camss_top>;
status = "ok";
};
&gdsc_vfe1 {
clock-names = "core1_clk" , "core1_stream_clk";
clocks = <&clock_mmss clk_camss_vfe1_clk>,
<&clock_mmss clk_camss_vfe1_stream_clk>;
parent-supply = <&gdsc_camss_top>;
status = "ok";
};
&gdsc_cpp {
clock-names = "core_clk";
clocks = <&clock_mmss clk_camss_cpp_clk>;
parent-supply = <&gdsc_camss_top>;
status = "ok";
};
&gdsc_mdss {
clock-names = "bus_clk", "core_clk", "root_clk";
clocks = <&clock_mmss clk_mdss_axi_clk>,
<&clock_mmss clk_mdss_mdp_clk>,
<&clock_mmss clk_mdss_rot_clk>;
status = "ok";
};
&gdsc_gpu_gx {
clock-names = "bimc_core_clk", "core_clk", "core_root_clk";
clocks = <&clock_gcc clk_gcc_gpu_bimc_gfx_clk>,
<&clock_gpu clk_gpucc_gfx3d_clk>,
<&clock_gpu clk_gfx3d_clk_src>;
qcom,force-enable-root-clk;
parent-supply = <&pm8005_s1>;
status = "ok";
};
&gdsc_gpu_cx {
status = "ok";
};
#include "msm-arm-smmu-cobalt.dtsi"
#include "msmcobalt-ion.dtsi"
#include "msm-pmcobalt-rpm-regulator.dtsi"
#include "msmcobalt-regulator.dtsi"
#include "msmcobalt-camera.dtsi"