/* 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 #include / { 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 = ; 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 = ; vdd_mx-supply = <&pmcobalt_s9_level>; vdd_mx-uV = ; 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 = ; 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"