#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include / { model = "Qualcomm Technologies, Inc. Waipio"; compatible = "qcom,waipio"; qcom,msm-id = <457 0x10000>; interrupt-parent = <&intc>; #address-cells = <2>; #size-cells = <2>; chosen: chosen { bootargs = "console=ttyMSM0,115200n8 loglevel=6 kpti=0 log_buf_len=256K kernel.panic_on_rcu_stall=1 swiotlb=0 loop.max_part=7 cgroup.memory=nokmem,nosocket pcie_ports=compat service_locator.enable=1 msm_rtb.filter=0x237 allow_mismatched_32bit_el0 cpufreq.default_governor=performance kasan=off rcupdate.rcu_expedited=1 rcu_nocbs=0-7 irqaffinity=0-3 ftrace_dump_on_oops fw_devlink.strict=1 sysctl.kernel.sched_pelt_multiplier=4"; }; memory { device_type = "memory"; reg = <0 0 0 0>; }; ddr-regions { }; reserved_memory: reserved-memory { }; mem-offline { compatible = "qcom,mem-offline"; offline-sizes = <0x1 0x40000000 0x0 0x40000000>, <0x1 0xc0000000 0x0 0x80000000>, <0x2 0xc0000000 0x1 0x40000000>; granule = <512>; mboxes = <&qmp_aop 0>; }; aliases: aliases { serial0 = &qupv3_se7_2uart; hsuart0 = &qupv3_se20_4uart; sdhc2 = &sdhc_2; ufshc1 = &ufshc_mem; /* Embedded UFS Slot */ pci-domain0 = &pcie0; /* PCIe0 domain */ pci-domain1 = &pcie1; /* PCIe1 domain */ }; sram: sram@17D09400 { #address-cells = <2>; #size-cells = <2>; compatible = "mmio-sram"; reg = <0x0 0x17D09400 0x0 0x400>; ranges = <0x0 0x0 0x0 0x17D09400 0x0 0x400>; cpu_scp_lpri: scp-shmem@0 { compatible = "arm,scp-shmem"; reg = <0x0 0x0 0x0 0x400>; }; }; firmware: firmware { }; cpus { #address-cells = <2>; #size-cells = <0>; CPU0: cpu@0 { device_type = "cpu"; compatible = "qcom,kryo"; reg = <0x0 0x0>; enable-method = "psci"; next-level-cache = <&L2_0>; cpu-idle-states = <&SILVER_OFF>; power-domains = <&CPU_PD0>; power-domain-names = "psci"; qcom,freq-domain = <&cpufreq_hw 0 4>; capacity-dmips-mhz = <1024>; dynamic-power-coefficient = <100>; #cooling-cells = <2>; L2_0: l2-cache { compatible = "arm,arch-cache"; cache-level = <2>; next-level-cache = <&L3_0>; L3_0: l3-cache { compatible = "arm,arch-cache"; cache-level = <3>; }; }; }; CPU1: cpu@100 { device_type = "cpu"; compatible = "qcom,kryo"; reg = <0x0 0x100>; enable-method = "psci"; next-level-cache = <&L2_0>; cpu-idle-states = <&SILVER_OFF>; power-domains = <&CPU_PD1>; power-domain-names = "psci"; qcom,freq-domain = <&cpufreq_hw 0 4>; capacity-dmips-mhz = <1024>; dynamic-power-coefficient = <100>; #cooling-cells = <2>; }; CPU2: cpu@200 { device_type = "cpu"; compatible = "qcom,kryo"; reg = <0x0 0x200>; enable-method = "psci"; next-level-cache = <&L2_2>; cpu-idle-states = <&SILVER_OFF>; power-domains = <&CPU_PD2>; power-domain-names = "psci"; qcom,freq-domain = <&cpufreq_hw 0 4>; capacity-dmips-mhz = <1024>; dynamic-power-coefficient = <100>; #cooling-cells = <2>; L2_2: l2-cache { compatible = "arm,arch-cache"; cache-level = <2>; next-level-cache = <&L3_0>; }; }; CPU3: cpu@300 { device_type = "cpu"; compatible = "qcom,kryo"; reg = <0x0 0x300>; enable-method = "psci"; next-level-cache = <&L2_2>; cpu-idle-states = <&SILVER_OFF>; power-domains = <&CPU_PD3>; power-domain-names = "psci"; qcom,freq-domain = <&cpufreq_hw 0 4>; capacity-dmips-mhz = <1024>; dynamic-power-coefficient = <100>; #cooling-cells = <2>; }; CPU4: cpu@400 { device_type = "cpu"; compatible = "qcom,kryo"; reg = <0x0 0x400>; enable-method = "psci"; next-level-cache = <&L2_4>; cpu-idle-states = <&GOLD_OFF>; power-domains = <&CPU_PD4>; power-domain-names = "psci"; qcom,freq-domain = <&cpufreq_hw 1 4>; capacity-dmips-mhz = <1980>; dynamic-power-coefficient = <251>; #cooling-cells = <2>; L2_4: l2-cache { compatible = "arm,arch-cache"; cache-level = <2>; next-level-cache = <&L3_0>; }; }; CPU5: cpu@500 { device_type = "cpu"; compatible = "qcom,kryo"; reg = <0x0 0x500>; enable-method = "psci"; next-level-cache = <&L2_5>; cpu-idle-states = <&GOLD_OFF>; power-domains = <&CPU_PD5>; power-domain-names = "psci"; qcom,freq-domain = <&cpufreq_hw 1 4>; capacity-dmips-mhz = <1980>; dynamic-power-coefficient = <251>; #cooling-cells = <2>; L2_5: l2-cache { compatible = "arm,arch-cache"; cache-level = <2>; next-level-cache = <&L3_0>; }; }; CPU6: cpu@600 { device_type = "cpu"; compatible = "qcom,kryo"; reg = <0x0 0x600>; enable-method = "psci"; next-level-cache = <&L2_6>; cpu-idle-states = <&GOLD_OFF>; power-domains = <&CPU_PD6>; qcom,freq-domain = <&cpufreq_hw 1 4>; power-domain-names = "psci"; capacity-dmips-mhz = <1980>; dynamic-power-coefficient = <251>; #cooling-cells = <2>; L2_6: l2-cache { compatible = "arm,arch-cache"; cache-level = <2>; next-level-cache = <&L3_0>; }; }; CPU7: cpu@700 { device_type = "cpu"; compatible = "qcom,kryo"; reg = <0x0 0x700>; enable-method = "psci"; next-level-cache = <&L2_7>; cpu-idle-states = <&GOLD_OFF>; power-domains = <&CPU_PD7>; power-domain-names = "psci"; qcom,freq-domain = <&cpufreq_hw 2 4>; capacity-dmips-mhz = <2097>; dynamic-power-coefficient = <396>; #cooling-cells = <2>; L2_7: l2-cache { compatible = "arm,arch-cache"; cache-level = <2>; next-level-cache = <&L3_0>; }; }; 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>; }; }; cluster2 { core0 { cpu = <&CPU7>; }; }; }; }; idle-states { SILVER_OFF: silver-c4 { /* C4 */ compatible = "arm,idle-state"; idle-state-name = "rail-pc"; entry-latency-us = <274>; exit-latency-us = <480>; min-residency-us = <3934>; arm,psci-suspend-param = <0x40000004>; local-timer-stop; }; GOLD_OFF: gold-c4 { /* C4 */ compatible = "arm,idle-state"; idle-state-name = "rail-pc"; entry-latency-us = <327>; exit-latency-us = <1502>; min-residency-us = <4488>; arm,psci-suspend-param = <0x40000004>; local-timer-stop; }; CLUSTER_PWR_DN: cluster-d4 { /* D4 */ compatible = "domain-idle-state"; idle-state-name = "l3-off"; entry-latency-us = <584>; exit-latency-us = <2332>; min-residency-us = <6118>; arm,psci-suspend-param = <0x41000044>; }; APSS_OFF: cluster-e3 { /* E3 */ compatible = "domain-idle-state"; idle-state-name = "llcc-off"; entry-latency-us = <2893>; exit-latency-us = <4023>; min-residency-us = <9987>; arm,psci-suspend-param = <0x4100c344>; }; }; soc: soc { }; }; &firmware { qcom_scm { compatible = "qcom,scm"; qcom,dload-mode = <&tcsr 0x13000>; }; qtee_shmbridge { compatible = "qcom,tee-shared-memory-bridge"; }; qcom_smcinvoke { compatible = "qcom,smcinvoke"; }; android { compatible = "android,firmware"; vbmeta { compatible = "android,vbmeta"; parts = "vbmeta,boot,system,vendor,dtbo,recovery"; }; fstab { compatible = "android,fstab"; vendor { compatible = "android,vendor"; dev = "/dev/block/platform/soc/1d84000.ufshc/by-name/vendor"; type = "ext4"; mnt_flags = "ro,barrier=1,discard"; fsmgr_flags = "wait,slotselect,avb"; status = "ok"; }; }; }; }; &reserved_memory { #address-cells = <2>; #size-cells = <2>; ranges; hyp_mem: hyp_region@80000000 { no-map; reg = <0x0 0x80000000 0x0 0x600000>; }; xbl_dt_log_mem: xbl_dt_log@80600000 { no-map; reg = <0x0 0x80600000 0x0 0x40000>; }; xbl_ramdump_mem: xbl_ramdump_region@80640000 { no-map; reg = <0x0 0x80640000 0x0 0x180000>; }; xbl_sc_mem: xbl_sc_region@807c0000 { no-map; reg = <0x0 0x807c0000 0x0 0x40000>; }; aop_image_mem: aop_image_region@80800000 { no-map; reg = <0x0 0x80800000 0x0 0x60000>; }; aop_cmd_db_mem: aop_cmd_db_region@80860000 { compatible = "qcom,cmd-db"; no-map; reg = <0x0 0x80860000 0x0 0x20000>; }; aop_config_mem: aop_config_region@80880000 { no-map; reg = <0x0 0x80880000 0x0 0x20000>; }; tme_crash_dump_mem: tme_crash_dump_region@808a0000 { no-map; reg = <0x0 0x808a0000 0x0 0x40000>; }; tme_log_mem: tme_log_region@808e0000 { no-map; reg = <0x0 0x808e0000 0x0 0x4000>; }; uefi_log_mem: uefi_log_region@808e4000 { no-map; reg = <0x0 0x808e4000 0x0 0x10000>; }; /* secdata region can be reused by apps */ smem_mem: smem_region@80900000 { no-map; reg = <0x0 0x80900000 0x0 0x200000>; }; cpucp_fw_mem: cpucp_fw_region@80b00000 { no-map; reg = <0x0 0x80b00000 0x0 0x100000>; }; cdsp_secure_heap: cdsp_secure_heap_region@80c00000 { no-map; reg = <0x0 0x80c00000 0x0 0x4600000>; }; camera_mem: camera_region@85200000 { no-map; reg = <0x0 0x85200000 0x0 0x500000>; }; video_mem: video_region@85700000 { no-map; reg = <0x0 0x85700000 0x0 0x700000>; }; adsp_mem: adsp_region@85e00000 { no-map; reg = <0x0 0x85e00000 0x0 0x2100000>; }; slpi_mem: slpi_region@88000000 { no-map; reg = <0x0 0x88000000 0x0 0x1900000>; }; cdsp_mem: cdsp_region@89900000 { no-map; reg = <0x0 0x89900000 0x0 0x2000000>; }; ipa_fw_mem: ipa_fw_region@8b900000 { no-map; reg = <0x0 0x8b900000 0x0 0x10000>; }; ipa_gsi_mem: ipa_gsi_region@8b910000 { no-map; reg = <0x0 0x8b910000 0x0 0xa000>; }; gpu_micro_code_mem: gpu_micro_code_region@8b91a000 { no-map; reg = <0x0 0x8b91a000 0x0 0x2000>; }; spss_region_mem: spss_region_region@8ba00000 { no-map; reg = <0x0 0x8ba00000 0x0 0x180000>; }; /* First part of the "SPU secure shared memory" region */ spu_tz_shared_mem: spu_tz_shared_mem@8bb80000 { no-map; reg = <0x0 0x8bb80000 0x0 0x60000>; }; /* Second part of the "SPU secure shared memory" region */ spu_modem_shared_mem: spu_modem_shared_mem@8bbe0000 { no-map; reg = <0x0 0x8bbe0000 0x0 0x20000>; }; mpss_mem: mpss_region@8bc00000 { no-map; reg = <0x0 0x8bc00000 0x0 0x13200000>; }; cvp_mem: cvp_region@9ee00000 { no-map; reg = <0x0 0x9ee00000 0x0 0x700000>; }; global_sync_mem: global_sync_region@a6f00000 { no-map; reg = <0x0 0xa6f00000 0x0 0x100000>; }; /* uefi region can be reused by apps */ /* Linux kernel image is loaded at 0xa0000000 */ oem_vm_mem: oem_vm_region@bb000000 { no-map; reg = <0x0 0xbb000000 0x0 0x4efc000>; }; oem_vm_vblk0_ring: oem_vm_vblk0_ring@bfefc000 { no-map; reg = <0x0 0xbfefc000 0x0 0x4000>; gunyah-label = <0x13>; }; oem_vm_swiotlb: oem_vm_swiotlb@bff00000 { no-map; reg = <0x0 0xbff00000 0x0 0x100000>; gunyah-label = <0x14>; }; mte_mem: mte_region@c0000000 { no-map; reg = <0x0 0xc0000000 0x0 0x20000000>; }; qheebsp_reserved_mem: qheebsp_reserved_region@e0000000 { no-map; reg = <0x0 0xe0000000 0x0 0x600000>; }; cpusys_vm_mem: cpusys_vm_region@e0600000 { no-map; reg = <0x0 0xe0600000 0x0 0x400000>; }; hyp_reserved_mem: hyp_reserved_region@e0a00000 { no-map; reg = <0x0 0xe0a00000 0x0 0x100000>; }; trust_ui_vm_mem: trust_ui_vm_region@e0b00000 { no-map; reg = <0x0 0xe0b00000 0x0 0x49ef000>; }; trust_ui_vm_qrtr: trust_ui_vm_qrtr@e54ef000 { no-map; reg = <0x0 0xe54ef000 0x0 0x9000>; }; trust_ui_vm_vblk0_ring: trust_ui_vm_vblk0_ring@e54f8000 { no-map; reg = <0x0 0xe54f8000 0x0 0x4000>; gunyah-label = <0x11>; //for persist.img }; trust_ui_vm_vblk1_ring: trust_ui_vm_vblk1_ring@e54fc000 { no-map; reg = <0x0 0xe54fc000 0x0 0x4000>; gunyah-label = <0x10>; //for system.img }; trust_ui_vm_swiotlb: trust_ui_vm_swiotlb@e5500000 { no-map; reg = <0x0 0xe5500000 0x0 0x200000>; gunyah-label = <0x12>; }; tz_stat_mem: tz_stat_region@e8800000 { no-map; reg = <0x0 0xe8800000 0x0 0x100000>; }; tags_mem: tags_region@e8900000 { no-map; reg = <0x0 0xe8900000 0x0 0x1200000>; }; qtee_mem: qtee_region@e9b00000 { no-map; reg = <0x0 0xe9b00000 0x0 0x500000>; }; non_secure_display_memory: non_secure_display_region { compatible = "shared-dma-pool"; reusable; alloc-ranges = <0x0 0x00000000 0x0 0xffffffff>; size = <0x0 0xa400000>; alignment = <0x0 0x400000>; }; va_md_mem: va_md_mem_region { compatible = "shared-dma-pool"; alloc-ranges = <0x1 0x00000000 0xfffffffe 0xffffffff>; reusable; size = <0 0x1000000>; }; sp_mem: sp_region { /* SPSS-HLOS ION shared mem */ compatible = "shared-dma-pool"; alloc-ranges = <0x0 0x00000000 0x0 0xffffffff>; reusable; alignment = <0x0 0x400000>; size = <0x0 0x1000000>; }; user_contig_mem: user_contig_region { compatible = "shared-dma-pool"; alloc-ranges = <0x0 0x00000000 0x0 0xffffffff>; reusable; alignment = <0x0 0x400000>; size = <0x0 0x1000000>; }; qseecom_mem: qseecom_region { compatible = "shared-dma-pool"; alloc-ranges = <0x0 0x00000000 0x0 0xffffffff>; reusable; alignment = <0x0 0x400000>; size = <0x0 0x1400000>; }; qseecom_ta_mem: qseecom_ta_region { compatible = "shared-dma-pool"; alloc-ranges = <0x0 0x00000000 0x0 0xffffffff>; reusable; alignment = <0x0 0x400000>; size = <0x0 0x1000000>; }; cnss_wlan_mem: cnss_wlan_region { compatible = "shared-dma-pool"; alloc-ranges = <0x0 0x00000000 0x0 0xffffffff>; reusable; alignment = <0x0 0x400000>; size = <0x0 0x1400000>; }; audio_cma_mem: audio_cma_region { compatible = "shared-dma-pool"; alloc-ranges = <0x0 0x00000000 0x0 0xffffffff>; reusable; alignment = <0x0 0x400000>; size = <0x0 0x1C00000>; }; cdsp_eva_mem: cdsp_eva_region { compatible = "shared-dma-pool"; alloc-ranges = <0x0 0x00000000 0x0 0xffffffff>; reusable; alignment = <0x0 0x400000>; size = <0x0 0x400000>; }; adsp_mem_heap: adsp_heap_region { compatible = "shared-dma-pool"; alloc-ranges = <0x0 0x00000000 0x0 0xffffffff>; reusable; alignment = <0x0 0x400000>; size = <0x0 0xC00000>; }; sdsp_mem: sdsp_region { compatible = "shared-dma-pool"; alloc-ranges = <0x0 0x00000000 0x0 0xffffffff>; reusable; alignment = <0x0 0x400000>; size = <0x0 0x800000>; }; /* global autoconfigured region for contiguous allocations */ 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 { #address-cells = <1>; #size-cells = <1>; ranges = <0 0 0 0xffffffff>; compatible = "simple-bus"; psci { compatible = "arm,psci-1.0"; method = "smc"; CPU_PD0: cpu-pd0 { #power-domain-cells = <0>; power-domains = <&CLUSTER_PD>; }; CPU_PD1: cpu-pd1 { #power-domain-cells = <0>; power-domains = <&CLUSTER_PD>; }; CPU_PD2: cpu-pd2 { #power-domain-cells = <0>; power-domains = <&CLUSTER_PD>; }; CPU_PD3: cpu-pd3 { #power-domain-cells = <0>; power-domains = <&CLUSTER_PD>; }; CPU_PD4: cpu-pd4 { #power-domain-cells = <0>; power-domains = <&CLUSTER_PD>; }; CPU_PD5: cpu-pd5 { #power-domain-cells = <0>; power-domains = <&CLUSTER_PD>; }; CPU_PD6: cpu-pd6 { #power-domain-cells = <0>; power-domains = <&CLUSTER_PD>; }; CPU_PD7: cpu-pd7 { #power-domain-cells = <0>; power-domains = <&CLUSTER_PD>; }; CLUSTER_PD: cluster-pd { #power-domain-cells = <0>; domain-idle-states = <&CLUSTER_PWR_DN &APSS_OFF>; }; }; slimbam: bamdma@3304000 { compatible = "qcom,bam-v1.7.0"; qcom,controlled-remotely; reg = <0x3304000 0x20000>, <0x326b000 0x1000>; reg-names = "bam", "bam_remote_mem"; num-channels = <31>; interrupts = <0 164 IRQ_TYPE_LEVEL_HIGH>; #dma-cells = <1>; qcom,ee = <1>; qcom,num-ees = <2>; }; slim_msm: slim@3340000 { compatible = "qcom,slim-ngd-v1.5.0"; reg = <0x3340000 0x2C000>, <0x326a000 0x1000>; reg-names = "ctrl", "slimbus_remote_mem"; interrupts = <0 163 IRQ_TYPE_LEVEL_HIGH>; qcom,apps-ch-pipes = <0x0>; qcom,ea-pc = <0x3c0>; dmas = <&slimbam 3>, <&slimbam 4>; dma-names = "rx", "tx"; #address-cells = <1>; #size-cells = <0>; status = "ok"; ngd@1 { reg = <1>; #address-cells = <1>; #size-cells = <1>; /* slimbus child nodes */ slimbus: btfmslim-driver { compatible = "slim217,221"; reg = <1 0>; }; }; }; intc: interrupt-controller@17100000 { compatible = "arm,gic-v3"; #interrupt-cells = <3>; interrupt-controller; ranges; #redistributor-regions = <1>; redistributor-stride = <0x0 0x40000>; reg = <0x17100000 0x10000>, /* GICD */ <0x17180000 0x200000>; /* GICR * 8 */ interrupts = ; gic_its: msi-controller@17140000 { compatible = "arm,gic-v3-its"; msi-controller; #msi-cells = <1>; reg = <0x17140000 0x20000>; }; }; arch_timer: timer { compatible = "arm,armv8-timer"; interrupts = , , , ; clock-frequency = <19200000>; }; memtimer: timer@17420000 { #address-cells = <1>; #size-cells = <1>; ranges; compatible = "arm,armv7-timer-mem"; reg = <0x17420000 0x1000>; clock-frequency = <19200000>; frame@17421000 { frame-number = <0>; interrupts = , ; reg = <0x17421000 0x1000>, <0x17422000 0x1000>; }; frame@17423000 { frame-number = <1>; interrupts = ; reg = <0x17423000 0x1000>; status = "disabled"; }; frame@17425000 { frame-number = <2>; interrupts = ; reg = <0x17425000 0x1000>; status = "disabled"; }; frame@17427000 { frame-number = <3>; interrupts = ; reg = <0x17427000 0x1000>; status = "disabled"; }; frame@17429000 { frame-number = <4>; interrupts = ; reg = <0x17429000 0x1000>; status = "disabled"; }; frame@1742b000 { frame-number = <5>; interrupts = ; reg = <0x1742b000 0x1000>; status = "disabled"; }; frame@1742d000 { frame-number = <6>; interrupts = ; reg = <0x1742d000 0x1000>; status = "disabled"; }; }; rimps: qcom,rimps@17400000 { #address-cells = <2>; #size-cells = <2>; compatible = "qcom,rimps"; reg = <0x17400000 0x10>, <0x17d90000 0x2000>; #mbox-cells = <1>; interrupts = ; }; scmi: qcom,scmi { #address-cells = <1>; #size-cells = <0>; compatible = "arm,scmi"; mboxes = <&rimps 0>; mbox-names = "tx"; shmem = <&cpu_scp_lpri>; scmi_memlat: protocol@80 { reg = <0x80>; #clock-cells = <1>; }; scmi_pmu: protocol@86 { reg = <0x86>; #clock-cells = <1>; }; }; rimps_log: qcom,rimps_log@17d09c00 { compatible = "qcom,rimps-log"; reg = <0x17d09c00 0x200>, <0x17d09e00 0x200>; mboxes = <&rimps 1>; }; cpu_pmu: cpu-pmu { compatible = "arm,armv8-pmuv3"; interrupts = ; }; vendor_hooks: qcom,cpu-vendor-hooks { compatible = "qcom,cpu-vendor-hooks"; }; logbuf: qcom,logbuf-vendor-hooks { compatible = "qcom,logbuf-vendor-hooks"; }; qcom,msm-imem@146aa000 { compatible = "qcom,msm-imem"; reg = <0x146aa000 0x1000>; ranges = <0x0 0x146aa000 0x1000>; #address-cells = <1>; #size-cells = <1>; mem_dump_table@10 { compatible = "qcom,msm-imem-mem_dump_table"; reg = <0x10 0x8>; }; restart_reason@65c { compatible = "qcom,msm-imem-restart_reason"; reg = <0x65c 0x4>; }; dload_type@1c { compatible = "qcom,msm-imem-dload-type"; reg = <0x1c 0x4>; }; boot_stats@6b0 { compatible = "qcom,msm-imem-boot_stats"; reg = <0x6b0 0x20>; }; kaslr_offset@6d0 { compatible = "qcom,msm-imem-kaslr_offset"; reg = <0x6d0 0xc>; }; pil@94c { compatible = "qcom,pil-reloc-info"; reg = <0x94c 0xc8>; }; pil@6dc { compatible = "qcom,msm-imem-pil-disable-timeout"; reg = <0x6dc 0x4>; }; diag_dload@c8 { compatible = "qcom,msm-imem-diag-dload"; reg = <0xc8 0xc8>; }; }; qcom,msm-rtb { compatible = "qcom,msm-rtb"; qcom,rtb-size = <0x100000>; }; tlmm: pinctrl@f000000 { compatible = "qcom,waipio-pinctrl"; reg = <0x0F000000 0x1000000>; interrupts = ; gpio-controller; #gpio-cells = <2>; interrupt-controller; #interrupt-cells = <2>; wakeup-parent = <&pdc>; qcom,gpios-reserved = <28 29 30 31 36 37 38 39>; }; dload_mode { compatible = "qcom,dload-mode"; }; microdump_modem { compatible = "qcom,microdump_modem"; }; mini_dump_mode { compatible = "qcom,minidump"; status = "ok"; }; va_mini_dump { compatible = "qcom,va-minidump"; memory-region = <&va_md_mem>; status = "ok"; }; qcom,mpm2-sleep-counter@c221000 { compatible = "qcom,mpm2-sleep-counter"; reg = <0xc221000 0x1000>; clock-frequency = <32768>; }; adsp_pas: remoteproc-adsp@03000000 { compatible = "qcom,waipio-adsp-pas"; reg = <0x03000000 0x10000>; status = "ok"; cx-supply = <&VDD_LPI_CX_LEVEL>; cx-uV-uA = ; mx-supply = <&VDD_LPI_MX_LEVEL>; mx-uV-uA = ; reg-names = "cx", "mx"; clocks = <&clock_rpmh RPMH_CXO_CLK>; clock-names = "xo"; qcom,qmp = <&aoss_qmp>; interconnects = <&aggre2_noc MASTER_CRYPTO &mc_virt SLAVE_EBI1>; interconnect-names = "crypto_ddr"; memory-region = <&adsp_mem>; /* Inputs from ssc */ interrupts-extended = <&pdc 6 IRQ_TYPE_EDGE_RISING>, <&adsp_smp2p_in 0 0>, <&adsp_smp2p_in 2 0>, <&adsp_smp2p_in 1 0>, <&adsp_smp2p_in 3 0>; interrupt-names = "wdog", "fatal", "handover", "ready", "stop-ack"; /* Outputs to turing */ qcom,smem-states = <&adsp_smp2p_out 0>; qcom,smem-state-names = "stop"; glink_edge: glink-edge { qcom,remote-pid = <2>; transport = "smem"; mboxes = <&ipcc_mproc IPCC_CLIENT_LPASS IPCC_MPROC_SIGNAL_GLINK_QMP>; mbox-names = "adsp_smem"; interrupt-parent = <&ipcc_mproc>; interrupts = ; label = "adsp"; qcom,glink-label = "lpass"; qcom,adsp_qrtr { qcom,glink-channels = "IPCRTR"; qcom,intents = <0x800 5 0x2000 3 0x4400 2>; }; qcom,msm_fastrpc_rpmsg { compatible = "qcom,msm-fastrpc-rpmsg"; qcom,glink-channels = "fastrpcglink-apps-dsp"; qcom,intents = <0x64 64>; }; qcom,pmic_glink_rpmsg { qcom,glink-channels = "PMIC_RTR_ADSP_APPS"; }; qcom,pmic_glink_log_rpmsg { qcom,glink-channels = "PMIC_LOGS_ADSP_APPS"; qcom,intents = <0x800 5 0xc00 3 0x2000 1>; }; }; }; cdsp_pas: remoteproc-cdsp@32300000 { compatible = "qcom,waipio-cdsp-pas"; reg = <0x32300000 0x10000>; status = "ok"; cx-supply = <&VDD_CX_LEVEL>; cx-uV-uA = ; mx-supply = <&VDD_MXC_LEVEL>; mx-uV-uA = ; reg-names = "cx","mx"; memory-region = <&cdsp_mem>; clocks = <&clock_rpmh RPMH_CXO_CLK>; clock-names = "xo"; qcom,qmp = <&aoss_qmp>; interconnects = <&nsp_noc MASTER_CDSP_PROC &mc_virt SLAVE_EBI1>, <&aggre2_noc MASTER_CRYPTO &mc_virt SLAVE_EBI1>; interconnect-names = "rproc_ddr", "crypto_ddr"; /* Inputs from turing */ interrupts-extended = <&intc GIC_SPI 578 IRQ_TYPE_EDGE_RISING>, <&cdsp_smp2p_in 0 0>, <&cdsp_smp2p_in 2 0>, <&cdsp_smp2p_in 1 0>, <&cdsp_smp2p_in 3 0>; interrupt-names = "wdog", "fatal", "handover", "ready", "stop-ack"; /* Outputs to turing */ qcom,smem-states = <&cdsp_smp2p_out 0>; qcom,smem-state-names = "stop"; glink-edge { qcom,remote-pid = <5>; transport = "smem"; mboxes = <&ipcc_mproc IPCC_CLIENT_CDSP IPCC_MPROC_SIGNAL_GLINK_QMP>; mbox-names = "cdsp_smem"; interrupt-parent = <&ipcc_mproc>; interrupts = ; label = "cdsp"; qcom,glink-label = "cdsp"; qcom,cdsp_qrtr { qcom,glink-channels = "IPCRTR"; qcom,intents = <0x800 5 0x2000 3 0x4400 2>; }; qcom,msm_fastrpc_rpmsg { compatible = "qcom,msm-fastrpc-rpmsg"; qcom,glink-channels = "fastrpcglink-apps-dsp"; qcom,intents = <0x64 64>; }; qcom,msm_cdsprm_rpmsg { compatible = "qcom,msm-cdsprm-rpmsg"; qcom,glink-channels = "cdsprmglink-apps-dsp"; qcom,intents = <0x20 12>; msm_cdsp_rm: qcom,msm_cdsp_rm { compatible = "qcom,msm-cdsp-rm"; qcom,qos-latency-us = <70>; qcom,qos-maxhold-ms = <20>; }; }; }; }; slpi_pas: remoteproc-slpi@02400000 { compatible = "qcom,waipio-slpi-pas"; reg = <0x02400000 0x10000>; status = "ok"; cx-supply = <&VDD_LPI_CX_LEVEL>; cx-uV-uA = ; mx-supply = <&VDD_LPI_MX_LEVEL>; mx-uV-uA = ; reg-names = "cx", "mx"; clocks = <&clock_rpmh RPMH_CXO_CLK>; clock-names = "xo"; qcom,qmp = <&aoss_qmp>; interconnects = <&aggre2_noc MASTER_CRYPTO &mc_virt SLAVE_EBI1>; interconnect-names = "crypto_ddr"; memory-region = <&slpi_mem>; /* Inputs from ssc */ interrupts-extended = <&pdc 9 IRQ_TYPE_EDGE_RISING>, <&dsps_smp2p_in 0 0>, <&dsps_smp2p_in 2 0>, <&dsps_smp2p_in 1 0>, <&dsps_smp2p_in 3 0>; interrupt-names = "wdog", "fatal", "handover", "ready", "stop-ack"; /* Outputs to turing */ qcom,smem-states = <&dsps_smp2p_out 0>; qcom,smem-state-names = "stop"; glink-edge { qcom,remote-pid = <3>; transport = "smem"; mboxes = <&ipcc_mproc IPCC_CLIENT_SLPI IPCC_MPROC_SIGNAL_GLINK_QMP>; mbox-names = "dsps_smem"; interrupt-parent = <&ipcc_mproc>; interrupts = ; label = "slpi"; qcom,glink-label = "dsps"; qcom,slpi_qrtr { qcom,glink-channels = "IPCRTR"; qcom,net-id = <2>; qcom,low-latency; qcom,intents = <0x800 5 0x2000 3 0x4400 2>; }; qcom,msm_fastrpc_rpmsg { compatible = "qcom,msm-fastrpc-rpmsg"; qcom,glink-channels = "fastrpcglink-apps-dsp"; qcom,intents = <0x64 64>; }; }; }; qcom,guestvm_loader@e0b00000 { compatible = "qcom,guestvm-loader"; qcom,pas-id = <28>; qcom,isolate-cpus; qcom,vmid = <45>; qcom,firmware-name = "trustedvm"; qcom,reserved-cpus = <0x5>, <0x6>; qcom,unisolate-timeout-ms = <12000>; memory-region = <&trust_ui_vm_mem>; }; qcom,guestvm_loader@e0600000 { compatible = "qcom,guestvm-loader"; qcom,pas-id = <35>; qcom,vmid = <50>; qcom,firmware-name = "cpusys_vm"; memory-region = <&cpusys_vm_mem>; }; qcom,guestvm_loader@bb000000 { compatible = "qcom,guestvm-loader"; qcom,pas-id = <34>; qcom,vmid = <49>; qcom,firmware-name = "oemvm"; memory-region = <&oem_vm_mem>; }; tlmm-vm-mem-access { compatible = "qcom,tlmm-vm-mem-access"; qcom,master; tlmm-vm-gpio-list = <&tlmm 64 0 &tlmm 65 0 &tlmm 66 0 &tlmm 67 0 &tlmm 0 0 &tlmm 4 0 &tlmm 86 0 &tlmm 87 0>; }; ssc_sensors: qcom,msm-ssc-sensors { compatible = "qcom,msm-ssc-sensors"; status = "ok"; qcom,firmware-name = "slpi"; qcom,rproc-handle = <&slpi_pas>; }; modem_pas: remoteproc-mss@04080000 { compatible = "qcom,waipio-modem-pas"; reg = <0x4080000 0x10000>; status = "ok"; clocks = <&clock_rpmh RPMH_CXO_CLK>; clock-names = "xo"; cx-supply = <&VDD_CX_LEVEL>; cx-uV-uA = ; mx-supply = <&VDD_MODEM_LEVEL>; mx-uV-uA = ; reg-names = "cx", "mx"; qcom,qmp = <&aoss_qmp>; interconnects = <&mc_virt MASTER_LLCC &mc_virt SLAVE_EBI1>, <&aggre2_noc MASTER_CRYPTO &mc_virt SLAVE_EBI1>; interconnect-names = "rproc_ddr","crypto_ddr"; memory-region = <&mpss_mem>; /* Inputs from mss */ interrupts-extended = <&intc GIC_SPI 264 IRQ_TYPE_EDGE_RISING>, <&modem_smp2p_in 0 0>, <&modem_smp2p_in 2 0>, <&modem_smp2p_in 1 0>, <&modem_smp2p_in 3 0>, <&modem_smp2p_in 7 0>; interrupt-names = "wdog", "fatal", "handover", "ready", "stop-ack", "shutdown-ack"; /* Outputs to mss */ qcom,smem-states = <&modem_smp2p_out 0>; qcom,smem-state-names = "stop"; glink-edge { qcom,remote-pid = <1>; transport = "smem"; mboxes = <&ipcc_mproc IPCC_CLIENT_MPSS IPCC_MPROC_SIGNAL_GLINK_QMP>; mbox-names = "mpss_smem"; interrupt-parent = <&ipcc_mproc>; interrupts = ; label = "modem"; qcom,glink-label = "mpss"; qcom,modem_qrtr { qcom,glink-channels = "IPCRTR"; qcom,low-latency; qcom,intents = <0x800 5 0x2000 3 0x4400 2>; }; qcom,modem_ds { qcom,glink-channels = "DS"; qcom,intents = <0x4000 0x2>; }; }; }; /* PIL spss node - for loading Secure Processor */ spss_pas: remoteproc-spss@1880000 { compatible = "qcom,waipio-spss-pas"; ranges; reg = <0x188101c 0x4>, <0x1881024 0x4>, <0x1881028 0x4>, <0x188103c 0x4>, <0x1881100 0x4>, <0x1882014 0x4>; reg-names = "sp2soc_irq_status", "sp2soc_irq_clr", "sp2soc_irq_mask", "rmb_err", "rmb_general_purpose", "rmb_err_spare2"; interrupts = <0 352 1>; cx-supply = <&VDD_CX_LEVEL>; cx-uV-uA = ; clocks = <&clock_rpmh RPMH_CXO_CLK>; clock-names = "xo"; qcom,proxy-clock-names = "xo"; status = "ok"; memory-region = <&spss_region_mem>; qcom,spss-scsr-bits = <24 25>; qcom,extra-size = <4096>; interconnects = <&aggre2_noc MASTER_CRYPTO &mc_virt SLAVE_EBI1>; interconnect-names = "crypto_ddr"; glink-edge { qcom,remote-pid = <8>; mboxes = <&ipcc_mproc IPCC_CLIENT_SPSS IPCC_MPROC_SIGNAL_GLINK_QMP>; mbox-names = "spss_spss"; interrupt-parent = <&ipcc_mproc>; interrupts = ; reg = <0x1885008 0x8>, <0x1885010 0x4>; reg-names = "qcom,spss-addr", "qcom,spss-size"; label = "spss"; qcom,glink-label = "spss"; }; }; qcom,spcom { compatible = "qcom,spcom"; qcom,rproc-handle = <&spss_pas>; qcom,boot-enabled; /* predefined channels, remote side is server */ qcom,spcom-ch-names = "sp_kernel", "sp_ssr"; /* sp2soc rmb shared register physical address and bmsk */ qcom,spcom-sp2soc-rmb-reg-addr = <0x01881020>; qcom,spcom-sp2soc-rmb-initdone-bit = <24>; qcom,spcom-sp2soc-rmb-pbldone-bit = <25>; /* soc2sp rmb shared register physical address */ qcom,spcom-soc2sp-rmb-reg-addr = <0x01881030>; qcom,spcom-soc2sp-rmb-sp-ssr-bit = <0>; status = "ok"; }; spss_utils: qcom,spss_utils { compatible = "qcom,spss-utils"; /* spss fuses physical address */ qcom,rproc-handle = <&spss_pas>; qcom,spss-fuse1-addr = <0x221C8214>; qcom,spss-fuse1-bit = <8>; qcom,spss-fuse2-addr = <0x221C8214>; qcom,spss-fuse2-bit = <7>; qcom,spss-dev-firmware-name = "spss1d.mdt"; /* 8 chars max */ qcom,spss-test-firmware-name = "spss1t.mdt"; /* 8 chars max */ qcom,spss-prod-firmware-name = "spss1p.mdt"; /* 8 chars max */ qcom,spss-debug-reg-addr = <0x01886020>; qcom,spss-emul-type-reg-addr = <0x01fc8004>; pil-mem = <&spss_region_mem>; qcom,pil-size = <0x0F0000>; // padding to 960KB status = "ok"; }; qcom,pmic_glink { compatible = "qcom,pmic-glink"; qcom,pmic-glink-channel = "PMIC_RTR_ADSP_APPS"; qcom,subsys-name = "lpass"; qcom,protection-domain = "tms/servreg", "msm/adsp/charger_pd"; depends-on-supply = <&ipcc_mproc>; battery_charger: qcom,battery_charger { compatible = "qcom,battery-charger"; }; ucsi: qcom,ucsi { compatible = "qcom,ucsi-glink"; }; altmode: qcom,altmode { compatible = "qcom,altmode-glink"; #altmode-cells = <1>; }; }; qcom,pmic_glink_log { compatible = "qcom,pmic-glink"; qcom,pmic-glink-channel = "PMIC_LOGS_ADSP_APPS"; qcom,battery_debug { compatible = "qcom,battery-debug"; }; qcom,charger_ulog_glink { compatible = "qcom,charger-ulog-glink"; }; qcom,spmi_glink_debug { compatible = "qcom,spmi-glink-debug"; #address-cells = <1>; #size-cells = <0>; depends-on-supply = <&spmi1_bus>; /* Primary SPMI bus */ spmi@0 { reg = <0>; #address-cells = <2>; #size-cells = <0>; qcom,pm8350b-debug@3 { compatible = "qcom,spmi-pmic"; reg = <3 SPMI_USID>; qcom,can-sleep; }; }; /* Secondary SPMI bus */ spmi@1 { reg = <1>; #address-cells = <2>; #size-cells = <0>; smb1394_glink_debug: qcom,smb1394-debug@9 { compatible = "qcom,spmi-pmic"; reg = <9 SPMI_USID>; qcom,can-sleep; }; qcom,smb1394-debug@b { compatible = "qcom,spmi-pmic"; reg = <11 SPMI_USID>; // 0xb qcom,can-sleep; }; qcom,smb1396-debug@d { compatible = "qcom,spmi-pmic"; reg = <13 SPMI_USID>; // 0xd qcom,can-sleep; }; }; }; }; cache-controller@19200000 { compatible = "qcom,waipio-llcc", "qcom,llcc-v21"; reg = <0x19200000 0x580000> , <0x19A00000 0x80000>; reg-names = "llcc_base", "llcc_broadcast_base"; interrupts = ; cap-based-alloc-and-pwr-collapse; clocks = <&aoss_qmp QDSS_CLK>; clock-names = "qdss_clk"; }; hyp_core_ctl: qcom,hyp-core-ctl { compatible = "qcom,hyp-core-ctl"; status = "ok"; }; eud: qcom,msm-eud@88e0000 { compatible = "qcom,msm-eud"; interrupt-names = "eud_irq"; interrupt-parent = <&pdc>; interrupts = <11 IRQ_TYPE_LEVEL_HIGH>; reg = <0x088E0000 0x2000>, <0x088E2000 0x1000>; reg-names = "eud_base", "eud_mode_mgr2"; clocks = <&clock_gcc GCC_EUSB3_0_CLKREF_EN>; clock-names = "eud_clkref_clk"; qcom,secure-eud-en; status = "ok"; }; qcom,memshare { compatible = "qcom,memshare"; qcom,client_1 { compatible = "qcom,memshare-peripheral"; qcom,peripheral-size = <0x0>; qcom,client-id = <0>; qcom,allocate-boot-time; label = "modem"; }; qcom,client_2 { compatible = "qcom,memshare-peripheral"; qcom,peripheral-size = <0x0>; qcom,client-id = <2>; label = "modem"; }; qcom,client_3 { compatible = "qcom,memshare-peripheral"; qcom,peripheral-size = <0x500000>; qcom,client-id = <1>; qcom,allocate-on-request; label = "modem"; }; }; clocks { xo_board: xo_board { compatible = "fixed-clock"; clock-frequency = <76800000>; clock-output-names = "xo_board"; #clock-cells = <0>; }; sleep_clk: sleep_clk { compatible = "fixed-clock"; clock-frequency = <32000>; clock-output-names = "sleep_clk"; #clock-cells = <0>; }; }; ipcc_mproc: qcom,ipcc@ed18000 { compatible = "qcom,ipcc"; reg = <0xed18000 0x1000>; interrupts = ; interrupt-controller; #interrupt-cells = <3>; #mbox-cells = <2>; }; tcsr: syscon@1fc0000 { compatible = "syscon"; reg = <0x1fc0000 0x30000>; }; aoss_qmp: power-controller@c300000 { compatible = "qcom,waipio-aoss-qmp"; reg = <0xc300000 0x400>; interrupt-parent = <&ipcc_mproc>; interrupts = ; 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 = ; label = "tme"; qcom,early-boot; priority = <0>; mbox-desc-offset = <0x0>; #mbox-cells = <1>; }; qcom,tmecom-qmp-client { compatible = "qcom,tmecom-qmp-client"; mboxes = <&qmp_tme 0>; mbox-names = "tmecom"; label = "tmecom"; depends-on-supply = <&qmp_tme>; }; qcom,glinkpkt { compatible = "qcom,glinkpkt"; qcom,glinkpkt-at-mdm0 { qcom,glinkpkt-edge = "mpss"; qcom,glinkpkt-ch-name = "DS"; qcom,glinkpkt-dev-name = "at_mdm0"; }; qcom,glinkpkt-apr-apps2 { qcom,glinkpkt-edge = "adsp"; qcom,glinkpkt-ch-name = "apr_apps2"; qcom,glinkpkt-dev-name = "apr_apps2"; }; qcom,glinkpkt-data40-cntl { qcom,glinkpkt-edge = "mpss"; qcom,glinkpkt-ch-name = "DATA40_CNTL"; qcom,glinkpkt-dev-name = "smdcntl8"; }; qcom,glinkpkt-data1 { qcom,glinkpkt-edge = "mpss"; qcom,glinkpkt-ch-name = "DATA1"; qcom,glinkpkt-dev-name = "smd7"; }; qcom,glinkpkt-data4 { qcom,glinkpkt-edge = "mpss"; qcom,glinkpkt-ch-name = "DATA4"; qcom,glinkpkt-dev-name = "smd8"; }; qcom,glinkpkt-data11 { qcom,glinkpkt-edge = "mpss"; qcom,glinkpkt-ch-name = "DATA11"; qcom,glinkpkt-dev-name = "smd11"; }; }; qcom,qsee_ipc_irq_bridge { compatible = "qcom,qsee-ipc-irq-bridge"; qcom,qsee-ipc-irq-spss { qcom,dev-name = "qsee_ipc_irq_spss"; interrupt-parent = <&ipcc_mproc>; interrupts = ; label = "spss"; }; }; qrtr-gunyah { compatible = "qcom,qrtr-gunyah"; qcom,master; gunyah-label = <3>; peer-name = <2>; shared-buffer = <&trust_ui_vm_qrtr>; }; /* CAM_CC GDSCs */ cam_cc_bps_gdsc: qcom,gdsc@adf0004 { compatible = "qcom,gdsc"; reg = <0xadf0004 0x4>; regulator-name = "cam_cc_bps_gdsc"; qcom,gds-timeout = <500>; clock-names = "ahb_clk"; clocks = <&clock_gcc GCC_CAMERA_AHB_CLK>; parent-supply = <&VDD_MM_MXC_VOTER_LEVEL>; qcom,support-hw-trigger; qcom,retain-regs; }; cam_cc_ife_0_gdsc: qcom,gdsc@adf1004 { compatible = "qcom,gdsc"; reg = <0xadf1004 0x4>; regulator-name = "cam_cc_ife_0_gdsc"; qcom,gds-timeout = <500>; clock-names = "ahb_clk"; clocks = <&clock_gcc GCC_CAMERA_AHB_CLK>; parent-supply = <&VDD_MM_MXC_VOTER_LEVEL>; qcom,retain-regs; }; cam_cc_ife_1_gdsc: qcom,gdsc@adf2004 { compatible = "qcom,gdsc"; reg = <0xadf2004 0x4>; regulator-name = "cam_cc_ife_1_gdsc"; qcom,gds-timeout = <500>; clock-names = "ahb_clk"; clocks = <&clock_gcc GCC_CAMERA_AHB_CLK>; parent-supply = <&VDD_MM_MXC_VOTER_LEVEL>; qcom,retain-regs; }; cam_cc_ife_2_gdsc: qcom,gdsc@adf2050 { compatible = "qcom,gdsc"; reg = <0xadf2050 0x4>; regulator-name = "cam_cc_ife_2_gdsc"; qcom,gds-timeout = <500>; clock-names = "ahb_clk"; clocks = <&clock_gcc GCC_CAMERA_AHB_CLK>; parent-supply = <&VDD_MM_MXC_VOTER_LEVEL>; qcom,retain-regs; }; cam_cc_ipe_0_gdsc: qcom,gdsc@adf0078 { compatible = "qcom,gdsc"; reg = <0xadf0078 0x4>; regulator-name = "cam_cc_ipe_0_gdsc"; qcom,gds-timeout = <500>; clock-names = "ahb_clk"; clocks = <&clock_gcc GCC_CAMERA_AHB_CLK>; parent-supply = <&VDD_MM_MXC_VOTER_LEVEL>; qcom,support-hw-trigger; qcom,retain-regs; }; cam_cc_sbi_gdsc: qcom,gdsc@adf00d0 { compatible = "qcom,gdsc"; reg = <0xadf00d0 0x4>; regulator-name = "cam_cc_sbi_gdsc"; qcom,gds-timeout = <500>; clock-names = "ahb_clk"; clocks = <&clock_gcc GCC_CAMERA_AHB_CLK>; parent-supply = <&VDD_MM_MXC_VOTER_LEVEL>; qcom,retain-regs; }; cam_cc_sfe_0_gdsc: qcom,gdsc@adf3050 { compatible = "qcom,gdsc"; reg = <0xadf3050 0x4>; regulator-name = "cam_cc_sfe_0_gdsc"; qcom,gds-timeout = <500>; clock-names = "ahb_clk"; clocks = <&clock_gcc GCC_CAMERA_AHB_CLK>; parent-supply = <&VDD_MM_MXC_VOTER_LEVEL>; qcom,retain-regs; }; cam_cc_sfe_1_gdsc: qcom,gdsc@adf3098 { compatible = "qcom,gdsc"; reg = <0xadf3098 0x4>; regulator-name = "cam_cc_sfe_1_gdsc"; qcom,gds-timeout = <500>; clock-names = "ahb_clk"; clocks = <&clock_gcc GCC_CAMERA_AHB_CLK>; parent-supply = <&VDD_MM_MXC_VOTER_LEVEL>; qcom,retain-regs; }; cam_cc_titan_top_gdsc: qcom,gdsc@adf31dc { compatible = "qcom,gdsc"; reg = <0xadf31dc 0x4>; regulator-name = "cam_cc_titan_top_gdsc"; qcom,gds-timeout = <500>; clock-names = "ahb_clk"; clocks = <&clock_gcc GCC_CAMERA_AHB_CLK>; parent-supply = <&VDD_MM_MXC_VOTER_LEVEL>; qcom,retain-regs; }; /* DISP_CC GDSCs */ disp_cc_mdss_core_gdsc: qcom,gdsc@af09000 { compatible = "qcom,gdsc"; reg = <0xaf09000 0x4>; regulator-name = "disp_cc_mdss_core_gdsc"; qcom,gds-timeout = <500>; clock-names = "ahb_clk"; clocks = <&clock_gcc GCC_DISP_AHB_CLK>; parent-supply = <&VDD_MM_LEVEL>; proxy-supply = <&disp_cc_mdss_core_gdsc>; qcom,proxy-consumer-enable; qcom,support-hw-trigger; qcom,retain-regs; }; disp_cc_mdss_core_int2_gdsc: qcom,gdsc@af0b000 { compatible = "qcom,gdsc"; reg = <0xaf0b000 0x4>; regulator-name = "disp_cc_mdss_core_int2_gdsc"; qcom,gds-timeout = <500>; clock-names = "ahb_clk"; clocks = <&clock_gcc GCC_DISP_AHB_CLK>; parent-supply = <&VDD_MM_LEVEL>; qcom,support-hw-trigger; qcom,retain-regs; }; gcc_apcs_gdsc_vote_ctrl: syscon@162128 { compatible = "syscon"; reg = <0x162128 0x4>; }; /* GCC GDSCs */ gcc_pcie_0_gdsc: qcom,gdsc@17b004 { compatible = "qcom,gdsc"; reg = <0x17b004 0x4>; regulator-name = "gcc_pcie_0_gdsc"; qcom,gds-timeout = <500>; parent-supply = <&VDD_CX_LEVEL>; qcom,retain-regs; qcom,no-status-check-on-disable; qcom,collapse-vote = <&gcc_apcs_gdsc_vote_ctrl 0>; }; gcc_pcie_1_gdsc: qcom,gdsc@19d004 { compatible = "qcom,gdsc"; reg = <0x19d004 0x4>; regulator-name = "gcc_pcie_1_gdsc"; qcom,gds-timeout = <500>; parent-supply = <&VDD_CX_LEVEL>; qcom,retain-regs; qcom,no-status-check-on-disable; qcom,collapse-vote = <&gcc_apcs_gdsc_vote_ctrl 1>; }; gcc_ufs_phy_gdsc: qcom,gdsc@187004 { compatible = "qcom,gdsc"; reg = <0x187004 0x4>; regulator-name = "gcc_ufs_phy_gdsc"; qcom,gds-timeout = <500>; parent-supply = <&VDD_CX_LEVEL>; proxy-supply = <&gcc_ufs_phy_gdsc>; qcom,proxy-consumer-enable; qcom,retain-regs; }; gcc_usb30_prim_gdsc: qcom,gdsc@149004 { compatible = "qcom,gdsc"; reg = <0x149004 0x4>; regulator-name = "gcc_usb30_prim_gdsc"; qcom,gds-timeout = <500>; proxy-supply = <&gcc_usb30_prim_gdsc>; qcom,proxy-consumer-enable; qcom,retain-regs; }; /* GPU_CC GDSCs */ gpu_cc_cx_hw_ctrl: syscon@3d9953c { compatible = "syscon"; reg = <0x3d9953c 0x4>; }; gpu_cc_cx_gdsc: qcom,gdsc@3d99108 { compatible = "qcom,gdsc"; reg = <0x3d99108 0x4>; regulator-name = "gpu_cc_cx_gdsc"; hw-ctrl-addr = <&gpu_cc_cx_hw_ctrl>; parent-supply = <&VDD_CX_LEVEL>; qcom,no-status-check-on-disable; qcom,clk-dis-wait-val = <8>; qcom,gds-timeout = <500>; qcom,retain-regs; }; gpu_cc_gx_domain_addr: syscon@3d99504 { compatible = "syscon"; reg = <0x3d99504 0x4>; }; gpu_cc_gx_sw_reset: syscon@3d99058 { compatible = "syscon"; reg = <0x3d99058 0x4>; }; gpu_cc_gx_acd_reset: syscon@3d99358 { compatible = "syscon"; reg = <0x3d99358 0x4>; }; gpu_cc_gx_acd_iroot_reset: syscon@3d9958c { compatible = "syscon"; reg = <0x3d9958c 0x4>; }; gpu_cc_gx_gdsc: qcom,gdsc@3d9905c { compatible = "qcom,gdsc"; reg = <0x3d9905c 0x4>; regulator-name = "gpu_cc_gx_gdsc"; domain-addr = <&gpu_cc_gx_domain_addr>; sw-reset = <&gpu_cc_gx_sw_reset>, <&gpu_cc_gx_acd_reset>, <&gpu_cc_gx_acd_iroot_reset>; parent-supply = <&VDD_GFX_MXC_VOTER_LEVEL>; qcom,reset-aon-logic; qcom,retain-regs; qcom,gds-timeout = <500>; }; /* VIDEO_CC GDSCs */ video_cc_mvs0_gdsc: qcom,gdsc@aaf809c { compatible = "qcom,gdsc"; reg = <0xaaf809C 0x4>; regulator-name = "video_cc_mvs0_gdsc"; qcom,gds-timeout = <500>; clock-names = "ahb_clk"; clocks = <&clock_gcc GCC_VIDEO_AHB_CLK>; parent-supply = <&video_cc_mvs0c_gdsc>; qcom,support-hw-trigger; qcom,retain-regs; }; video_cc_mvs0c_gdsc: qcom,gdsc@aaf804c { compatible = "qcom,gdsc"; reg = <0xaaf804c 0x4>; regulator-name = "video_cc_mvs0c_gdsc"; qcom,gds-timeout = <500>; clock-names = "ahb_clk"; clocks = <&clock_gcc GCC_VIDEO_AHB_CLK>; parent-supply = <&VDD_MM_MXC_VOTER_LEVEL>; qcom,retain-regs; }; video_cc_mvs1_gdsc: qcom,gdsc@aaf80c0 { compatible = "qcom,gdsc"; reg = <0xaaf80c0 0x4>; regulator-name = "video_cc_mvs1_gdsc"; qcom,gds-timeout = <500>; clock-names = "ahb_clk"; clocks = <&clock_gcc GCC_VIDEO_AHB_CLK>; parent-supply = <&video_cc_mvs1c_gdsc>; qcom,support-hw-trigger; qcom,retain-regs; }; video_cc_mvs1c_gdsc: qcom,gdsc@aaf8074 { compatible = "qcom,gdsc"; reg = <0xaaf8074 0x4>; regulator-name = "video_cc_mvs1c_gdsc"; qcom,gds-timeout = <500>; clock-names = "ahb_clk"; clocks = <&clock_gcc GCC_VIDEO_AHB_CLK>; parent-supply = <&VDD_MM_MXC_VOTER_LEVEL>; qcom,retain-regs; }; clock_gcc: qcom,gcc@100000 { compatible = "qcom,waipio-gcc", "syscon"; reg = <0x100000 0x1f4200>; reg-names = "cc_base"; vdd_cx-supply = <&VDD_CX_LEVEL>; vdd_mxa-supply = <&VDD_MXA_LEVEL>; clocks = <&clock_rpmh RPMH_CXO_CLK>, <&sleep_clk>; clock-names = "bi_tcxo", "sleep_clk"; #clock-cells = <1>; #reset-cells = <1>; }; clock_videocc: qcom,videocc@aaf0000 { compatible = "qcom,waipio-videocc", "syscon"; reg = <0xaaf0000 0x10000>; reg-name = "cc_base"; vdd_mm-supply = <&VDD_MM_LEVEL>; vdd_mxc-supply = <&VDD_MXC_LEVEL>; clocks = <&clock_rpmh RPMH_CXO_CLK>, <&sleep_clk>, <&clock_gcc GCC_VIDEO_AHB_CLK>; clock-names = "bi_tcxo", "sleep_clk", "iface"; #clock-cells = <1>; #reset-cells = <1>; }; clock_camcc: qcom,camcc@ade0000 { compatible = "qcom,waipio-camcc", "syscon"; reg = <0xade0000 0x20000>; reg-names = "cc_base"; vdd_mm-supply = <&VDD_MM_LEVEL>; vdd_mxa-supply = <&VDD_MXA_LEVEL>; vdd_mxc-supply = <&VDD_MXC_LEVEL>; clocks = <&clock_rpmh RPMH_CXO_CLK>, <&sleep_clk>, <&clock_gcc GCC_CAMERA_AHB_CLK>; clock-names = "bi_tcxo", "sleep_clk", "iface"; #clock-cells = <1>; #reset-cells = <1>; }; clock_dispcc: qcom,dispcc@af00000 { compatible = "qcom,waipio-dispcc", "syscon"; reg = <0xaf00000 0x20000>; reg-name = "cc_base"; vdd_mm-supply = <&VDD_MM_LEVEL>; vdd_mxa-supply = <&VDD_MXA_LEVEL>; clocks = <&clock_rpmh RPMH_CXO_CLK>, <&sleep_clk>, <&clock_gcc GCC_VIDEO_AHB_CLK>; clock-names = "bi_tcxo", "sleep_clk", "iface"; #clock-cells = <1>; #reset-cells = <1>; }; clock_gpucc: qcom,gpucc@3d90000 { compatible = "qcom,waipio-gpucc", "syscon"; clock-output-names = "gpucc_clocks"; reg = <0x3d90000 0xA000>; reg-names = "cc_base"; vdd_cx-supply = <&VDD_CX_LEVEL>; vdd_mx-supply = <&VDD_MXA_LEVEL>; vdd_mxc-supply = <&VDD_MXC_LEVEL>; clocks = <&clock_rpmh RPMH_CXO_CLK>, <&clock_gcc GCC_GPU_GPLL0_CLK_SRC>, <&clock_gcc GCC_GPU_GPLL0_DIV_CLK_SRC>; clock-names = "bi_tcxo", "gpll0_out_main", "gpll0_out_main_div"; #clock-cells = <1>; #reset-cells = <1>; }; clock_apsscc: syscon@17A80000 { compatible = "syscon"; reg = <0x17A80000 0x21000>; }; clock_mccc: syscon@190ba000 { compatible = "syscon"; reg = <0x190ba000 0x54>; }; clock_debugcc: qcom,cc-debug { compatible = "qcom,waipio-debugcc"; qcom,gcc = <&clock_gcc>; qcom,videocc = <&clock_videocc>; qcom,dispcc = <&clock_dispcc>; qcom,camcc = <&clock_camcc>; qcom,gpucc = <&clock_gpucc>; qcom,apsscc = <&clock_apsscc>; qcom,mccc = <&clock_mccc>; clock-names = "xo_clk_src"; clocks = <&clock_rpmh RPMH_CXO_CLK>; #clock-cells = <1>; }; cpufreq_hw: qcom,cpufreq-hw { compatible = "qcom,cpufreq-epss"; reg = <0x17D91000 0x1000>, <0x17D92000 0x1000>, <0x17D93000 0x1000>; reg-names = "freq-domain0", "freq-domain1", "freq-domain2"; clocks = <&clock_rpmh RPMH_CXO_CLK>, <&clock_gcc GCC_GPLL0>; clock-names = "xo", "alternate"; qcom,lut-row-size = <4>; qcom,skip-enable-check; interrupts = , , ; interrupt-names = "dcvsh0_int", "dcvsh1_int", "dcvsh2_int"; #freq-domain-cells = <2>; }; qcom,cpufreq-hw-debug { compatible = "qcom,cpufreq-hw-epss-debug"; qcom,freq-hw-domain = <&cpufreq_hw 0>, <&cpufreq_hw 1>, <&cpufreq_hw 2>; }; clk_virt: interconnect@0 { compatible = "qcom,waipio-clk_virt"; #interconnect-cells = <1>; qcom,bcm-voter-names = "hlos"; qcom,bcm-voters = <&apps_bcm_voter>; }; mc_virt: interconnect@1 { compatible = "qcom,waipio-mc_virt"; #interconnect-cells = <1>; qcom,bcm-voter-names = "hlos", "disp"; qcom,bcm-voters = <&apps_bcm_voter>, <&disp_bcm_voter>; }; config_noc: interconnect@1500000 { reg = <0x1500000 0x1C000>; compatible = "qcom,waipio-config_noc"; #interconnect-cells = <1>; qcom,bcm-voter-names = "hlos"; qcom,bcm-voters = <&apps_bcm_voter>; }; system_noc: interconnect@1680000 { reg = <0x1680000 0x1E200>; compatible = "qcom,waipio-system_noc"; #interconnect-cells = <1>; qcom,bcm-voter-names = "hlos"; qcom,bcm-voters = <&apps_bcm_voter>; }; pcie_noc: interconnect@16c0000 { reg = <0x16C0000 0xE280>; compatible = "qcom,waipio-pcie_anoc"; #interconnect-cells = <1>; qcom,bcm-voter-names = "hlos"; qcom,bcm-voters = <&apps_bcm_voter>; }; aggre1_noc: interconnect@16e0000 { reg = <0x16e0000 0x1C080>; compatible = "qcom,waipio-aggre1_noc"; #interconnect-cells = <1>; clocks = <&clock_gcc GCC_AGGRE_UFS_PHY_AXI_CLK>, <&clock_gcc GCC_AGGRE_USB3_PRIM_AXI_CLK>; qcom,bcm-voter-names = "hlos"; qcom,bcm-voters = <&apps_bcm_voter>; }; aggre2_noc: interconnect@1700000 { reg = <0x1700000 0x31080>; compatible = "qcom,waipio-aggre2_noc"; #interconnect-cells = <1>; qcom,bcm-voter-names = "hlos"; qcom,bcm-voters = <&apps_bcm_voter>; clocks = <&clock_gcc GCC_AGGRE_NOC_PCIE_0_AXI_CLK>, <&clock_gcc GCC_AGGRE_NOC_PCIE_1_AXI_CLK>, <&clock_gcc GCC_AGGRE_UFS_PHY_AXI_CLK>, <&clock_rpmh RPMH_IPA_CLK>; }; mmss_noc: interconnect@1740000 { reg = <0x1740000 0x1f080>; compatible = "qcom,waipio-mmss_noc"; #interconnect-cells = <1>; qcom,bcm-voter-names = "hlos", "disp"; qcom,bcm-voters = <&apps_bcm_voter>, <&disp_bcm_voter>; }; gem_noc: interconnect@19100000 { reg = <0x19100000 0xBB800>; compatible = "qcom,waipio-gem_noc"; #interconnect-cells = <1>; qcom,bcm-voter-names = "hlos", "disp"; qcom,bcm-voters = <&apps_bcm_voter>, <&disp_bcm_voter>; }; nsp_noc: interconnect@320C0000 { reg = <0x320C0000 0x10000>; compatible = "qcom,waipio-nsp_noc"; #interconnect-cells = <1>; qcom,bcm-voter-names = "hlos"; qcom,bcm-voters = <&apps_bcm_voter>; }; lpass_ag_noc: interconnect@3c40000 { reg = <0x3c40000 0x17200>; compatible = "qcom,waipio-lpass_ag_noc"; #interconnect-cells = <1>; qcom,bcm-voter-names = "hlos"; qcom,bcm-voters = <&apps_bcm_voter>; }; thermal_zones: thermal-zones { }; tcsr_mutex_block: syscon@1f40000 { compatible = "syscon"; reg = <0x1f40000 0x20000>; }; tcsr_mutex: hwlock { compatible = "qcom,tcsr-mutex"; syscon = <&tcsr_mutex_block 0 0x1000>; #hwlock-cells = <1>; }; qcom_tzlog: tz-log@146AA720 { compatible = "qcom,tz-log"; reg = <0x146AA720 0x3000>; qcom,hyplog-enabled; hyplog-address-offset = <0x410>; hyplog-size-offset = <0x414>; tmecrashdump-address-offset = <0x808a0000>; }; qcom_qseecom: qseecom@c1700000 { compatible = "qcom,qseecom"; memory-region = <&qseecom_mem>; qseecom_mem = <&qseecom_mem>; qseecom_ta_mem = <&qseecom_ta_mem>; user_contig_mem = <&user_contig_mem>; qcom,hlos-num-ce-hw-instances = <1>; qcom,hlos-ce-hw-instance = <0>; qcom,qsee-ce-hw-instance = <0>; qcom,disk-encrypt-pipe-pair = <2>; qcom,no-clock-support; qcom,appsbl-qseecom-support; qcom,commonlib64-loaded-by-uefi; qcom,qsee-reentrancy-support = <2>; }; qcom_cedev: qcedev@1de0000 { compatible = "qcom,qcedev"; reg = <0x1de0000 0x20000>, <0x1dc4000 0x24000>; reg-names = "crypto-base","crypto-bam-base"; interrupts = ; qcom,bam-pipe-pair = <2>; qcom,ce-hw-instance = <0>; qcom,ce-device = <0>; qcom,ce-hw-shared; qcom,bam-ee = <0>; qcom,smmu-s1-enable; qcom,no-clock-support; interconnect-names = "data_path"; interconnects = <&aggre2_noc MASTER_CRYPTO &mc_virt SLAVE_EBI1>; iommus = <&apps_smmu 0x0584 0x0011>; qcom,iommu-dma = "atomic"; dma-coherent; qcom_cedev_ns_cb { compatible = "qcom,qcedev,context-bank"; label = "ns_context"; iommus = <&apps_smmu 0x588 0x0>, <&apps_smmu 0x59A 0x0>, <&apps_smmu 0x59F 0x0>, <&apps_smmu 0x598 0x5>; dma-coherent; }; qcom_cedev_s_cb { compatible = "qcom,qcedev,context-bank"; label = "secure_context"; iommus = <&apps_smmu 0x592 0x0>, <&apps_smmu 0x597 0x0>, <&apps_smmu 0x59B 0x0>, <&apps_smmu 0x59E 0x0>; qcom,iommu-vmid = <0x9>; qcom,secure-context-bank; }; }; qcom_rng: qrng@10c3000 { compatible = "qcom,msm-rng"; reg = <0x10c3000 0x1000>; qcom,no-qrng-config; qcom,no-clock-support; }; smem: qcom,smem { compatible = "qcom,smem"; memory-region = <&smem_mem>; hwlocks = <&tcsr_mutex 3>; }; qcom,rmtfs_sharedmem@0 { compatible = "qcom,sharedmem-uio"; reg = <0x0 0x280000>; reg-names = "rmtfs"; qcom,client-id = <0x00000001>; }; ufsphy_mem: ufsphy_mem@1d87000 { reg = <0x1d87000 0xe10>; reg-names = "phy_mem"; #phy-cells = <0>; lanes-per-direction = <2>; clock-names = "ref_clk_src", "ref_aux_clk", "qref_clk", "rx_sym0_mux_clk", "rx_sym1_mux_clk", "tx_sym0_mux_clk", "rx_sym0_phy_clk", "rx_sym1_phy_clk", "tx_sym0_phy_clk"; clocks = <&clock_rpmh RPMH_CXO_CLK>, <&clock_gcc GCC_UFS_PHY_PHY_AUX_CLK>, <&clock_gcc GCC_UFS_0_CLKREF_EN>, <&clock_gcc GCC_UFS_PHY_RX_SYMBOL_0_CLK_SRC>, <&clock_gcc GCC_UFS_PHY_RX_SYMBOL_1_CLK_SRC>, <&clock_gcc GCC_UFS_PHY_TX_SYMBOL_0_CLK_SRC>, <&clock_gcc UFS_PHY_RX_SYMBOL_0_CLK>, <&clock_gcc UFS_PHY_RX_SYMBOL_1_CLK>, <&clock_gcc UFS_PHY_TX_SYMBOL_0_CLK>; resets = <&ufshc_mem 0>; status = "disabled"; }; ufshc_mem: ufshc@1d84000 { compatible = "qcom,ufshc"; reg = <0x1d84000 0x3000>, <0x1d88000 0x8000>, <0x1d90000 0x9000>; reg-names = "ufs_mem", "ufs_ice", "ufs_ice_hwkm"; interrupts = ; phys = <&ufsphy_mem>; phy-names = "ufsphy"; #reset-cells = <1>; lanes-per-direction = <2>; dev-ref-clk-freq = <0>; /* 19.2 MHz */ clock-names = "core_clk", "bus_aggr_clk", "iface_clk", "core_clk_unipro", "core_clk_ice", "ref_clk", "tx_lane0_sync_clk", "rx_lane0_sync_clk", "rx_lane1_sync_clk"; clocks = <&clock_gcc GCC_UFS_PHY_AXI_CLK>, <&clock_gcc GCC_AGGRE_UFS_PHY_AXI_CLK>, <&clock_gcc GCC_UFS_PHY_AHB_CLK>, <&clock_gcc GCC_UFS_PHY_UNIPRO_CORE_CLK>, <&clock_gcc GCC_UFS_PHY_ICE_CORE_CLK>, <&clock_rpmh RPMH_CXO_CLK>, <&clock_gcc GCC_UFS_PHY_TX_SYMBOL_0_CLK>, <&clock_gcc GCC_UFS_PHY_RX_SYMBOL_0_CLK>, <&clock_gcc GCC_UFS_PHY_RX_SYMBOL_1_CLK>; freq-table-hz = <75000000 300000000>, <0 0>, <0 0>, <75000000 300000000>, <75000000 300000000>, <0 0>, <0 0>, <0 0>, <0 0>; interconnects = <&aggre1_noc MASTER_UFS_MEM &mc_virt SLAVE_EBI1>, <&gem_noc MASTER_APPSS_PROC &config_noc SLAVE_UFS_MEM_CFG>; interconnect-names = "ufs-ddr", "cpu-ufs"; qcom,ufs-bus-bw,name = "ufshc_mem"; qcom,ufs-bus-bw,num-cases = <26>; qcom,ufs-bus-bw,num-paths = <2>; qcom,ufs-bus-bw,vectors-KBps = /* * During HS G3 UFS runs at nominal voltage corner, vote * higher bandwidth to push other buses in the data path * to run at nominal to achieve max throughput. * 4GBps pushes BIMC to run at nominal. * 200MBps pushes CNOC to run at nominal. * Vote for half of this bandwidth for HS G3 1-lane. * For max bandwidth, vote high enough to push the buses * to run in turbo voltage corner. */ <0 0>, <0 0>, /* No vote */ <922 0>, <1000 0>, /* PWM G1 */ <1844 0>, <1000 0>, /* PWM G2 */ <3688 0>, <1000 0>, /* PWM G3 */ <7376 0>, <1000 0>, /* PWM G4 */ <1844 0>, <1000 0>, /* PWM G1 L2 */ <3688 0>, <1000 0>, /* PWM G2 L2 */ <7376 0>, <1000 0>, /* PWM G3 L2 */ <14752 0>, <1000 0>, /* PWM G4 L2 */ <127796 0>, <1000 0>, /* HS G1 RA */ <255591 0>, <1000 0>, /* HS G2 RA */ <1492582 0>, <102400 0>, /* HS G3 RA */ <2915200 0>, <204800 0>, /* HS G4 RA */ <255591 0>, <1000 0>, /* HS G1 RA L2 */ <511181 0>, <1000 0>, /* HS G2 RA L2 */ <1492582 0>, <204800 0>, /* HS G3 RA L2 */ <2915200 0>, <409600 0>, /* HS G4 RA L2 */ <149422 0>, <1000 0>, /* HS G1 RB */ <298189 0>, <1000 0>, /* HS G2 RB */ <1492582 0>, <102400 0>, /* HS G3 RB */ <2915200 0>, <204800 0>, /* HS G4 RB */ <298189 0>, <1000 0>, /* HS G1 RB L2 */ <596378 0>, <1000 0>, /* HS G2 RB L2 */ /* As UFS working in HS G3 RB L2 mode, aggregated * bandwidth (AB) should take care of providing * optimum throughput requested. However, as tested, * in order to scale up CNOC clock, instantaneous * bindwidth (IB) needs to be given a proper value too. */ <1492582 0>, <204800 409600>, /* HS G3 RB L2 KBPs */ <2915200 0>, <409600 409600>, /* HS G4 RB L2 */ <7643136 0>, <307200 0>; /* Max. bandwidth */ qcom,bus-vector-names = "MIN", "PWM_G1_L1", "PWM_G2_L1", "PWM_G3_L1", "PWM_G4_L1", "PWM_G1_L2", "PWM_G2_L2", "PWM_G3_L2", "PWM_G4_L2", "HS_RA_G1_L1", "HS_RA_G2_L1", "HS_RA_G3_L1", "HS_RA_G4_L1", "HS_RA_G1_L2", "HS_RA_G2_L2", "HS_RA_G3_L2", "HS_RA_G4_L2", "HS_RB_G1_L1", "HS_RB_G2_L1", "HS_RB_G3_L1", "HS_RB_G4_L1", "HS_RB_G1_L2", "HS_RB_G2_L2", "HS_RB_G3_L2", "HS_RB_G4_L2", "MAX"; reset-gpios = <&tlmm 210 GPIO_ACTIVE_LOW>; resets = <&clock_gcc GCC_UFS_PHY_BCR>; reset-names = "rst"; iommus = <&apps_smmu 0xE0 0x0>; qcom,iommu-dma = "fastmap"; dma-coherent; qcom,disable-lpm; rpm-level = <0>; spm-level = <0>; status = "disabled"; qos0 { mask = <0xf0>; vote = <44>; }; qos1 { mask = <0x0f>; vote = <44>; }; }; sdhc2_opp_table: sdhc2-opp-table { compatible = "operating-points-v2"; opp-100000000 { opp-hz = /bits/ 64 <100000000>; opp-peak-kBps = <160000 100000>; opp-avg-kBps = <80000 50000>; }; opp-202000000 { opp-hz = /bits/ 64 <202000000>; opp-peak-kBps = <200000 120000>; opp-avg-kBps = <80000 50000>; }; }; sdhc_2: sdhci@8804000 { status = "disabled"; compatible = "qcom,sdhci-msm-v5"; reg = <0x08804000 0x1000>; reg-names = "hc_mem"; interrupts = , ; interrupt-names = "hc_irq", "pwr_irq"; bus-width = <4>; no-sdio; no-mmc; qcom,restore-after-cx-collapse; clocks = <&clock_gcc GCC_SDCC2_AHB_CLK>, <&clock_gcc GCC_SDCC2_APPS_CLK>; clock-names = "iface", "core"; /* DLL HSR settings. Refer go/hsr - DLL settings */ qcom,dll-hsr-list = <0x0007642C 0xA800 0x10 0x2C010800 0x80040868>; iommus = <&apps_smmu 0x4a0 0x0>; dma-coherent; qcom,iommu-dma = "fastmap"; interconnects = <&aggre2_noc MASTER_SDCC_2 &mc_virt SLAVE_EBI1>, <&gem_noc MASTER_APPSS_PROC &config_noc SLAVE_SDCC_2>; interconnect-names = "sdhc-ddr","cpu-sdhc"; operating-points-v2 = <&sdhc2_opp_table>; qos0 { mask = <0xf0>; vote = <44>; }; qos1 { mask = <0x0f>; vote = <44>; }; }; kryo-erp { compatible = "arm,arm64-kryo-cpu-erp"; interrupts = , ; interrupt-names = "l1-l2-faultirq","l3-scu-faultirq"; }; qcom,smp2p_sleepstate { compatible = "qcom,smp2p-sleepstate"; qcom,smem-states = <&sleepstate_smp2p_out 0>; interrupt-parent = <&sleepstate_smp2p_in>; interrupts = <0 0>; interrupt-names = "smp2p-sleepstate-in"; }; pdc: interrupt-controller@b220000 { compatible = "qcom,pdc"; reg = <0xb220000 0x30000>, <0x174000f0 0x64>; reg-names = "pdc-interrupt-base", "apss-shared-spi-cfg"; qcom,pdc-ranges = <0 480 12>, <14 494 24>, <40 520 54>, <94 609 31>, <125 63 1>, <126 716 12>; #interrupt-cells = <2>; interrupt-parent = <&intc>; interrupt-controller; }; cluster-device { compatible = "qcom,lpm-cluster-dev"; power-domains = <&CLUSTER_PD>; }; qcom,chd { compatible = "qcom,core-hang-detect"; label = "core"; qcom,chd-percpu-info = <&CPU0 0x17800058 0x17800060>, <&CPU1 0x17810058 0x17810060>, <&CPU2 0x17820058 0x17820060>, <&CPU3 0x17830058 0x17830060>, <&CPU4 0x17840058 0x17840060>, <&CPU5 0x17850058 0x17850060>, <&CPU6 0x17860058 0x17860060>, <&CPU7 0x17870058 0x17870060>; }; apps_rsc: rsc@17a00000 { label = "apps_rsc"; compatible = "qcom,rpmh-rsc"; reg = <0x17a00000 0x10000>, <0x17a10000 0x10000>, <0x17a20000 0x10000>; reg-names = "drv-0", "drv-1", "drv-2"; qcom,drv-count = <3>; interrupts = , , ; power-domains = <&CLUSTER_PD>; apps_rsc_drv2: drv@2 { qcom,drv-id = <2>; qcom,tcs-offset = <0xd00>; channel@0 { qcom,tcs-config = , , , , ; }; apps_bcm_voter: bcm_voter { compatible = "qcom,bcm-voter"; }; clock_rpmh: qcom,rpmhclk { compatible = "qcom,waipio-rpmh-clk"; #clock-cells = <1>; }; dcvs_fp: qcom,dcvs-fp { compatible = "qcom,dcvs-fp"; qcom,ddr-bcm-name = "MC3"; qcom,llcc-bcm-name = "SH5"; }; }; }; disp_rsc: rsc@af20000 { label = "disp_rsc"; compatible = "qcom,rpmh-rsc"; reg = <0xaf20000 0x10000>; reg-names = "drv-0"; qcom,drv-count = <1>; interrupts = ; clocks = <&clock_dispcc DISP_CC_MDSS_RSCC_AHB_CLK>; disp_rsc_drv0: drv@0 { qcom,drv-id = <0>; qcom,tcs-offset = <0x1c00>; channel@0 { qcom,tcs-config = , , , , ; }; disp_bcm_voter: bcm_voter { compatible = "qcom,bcm-voter"; qcom,tcs-wait = ; }; }; }; cpuss-sleep-stats@17800054 { compatible = "qcom,cpuss-sleep-stats"; reg = <0x17800054 0x4>, <0x17810054 0x4>, <0x17820054 0x4>, <0x17830054 0x4>, <0x17840054 0x4>, <0x17850054 0x4>, <0x17860054 0x4>, <0x17870054 0x4>, <0x178A0098 0x4>, <0x178C0000 0x10000>; reg-names = "seq_lpm_cntr_cfg_cpu0", "seq_lpm_cntr_cfg_cpu1", "seq_lpm_cntr_cfg_cpu2", "seq_lpm_cntr_cfg_cpu3", "seq_lpm_cntr_cfg_cpu4", "seq_lpm_cntr_cfg_cpu5", "seq_lpm_cntr_cfg_cpu6", "seq_lpm_cntr_cfg_cpu7", "l3_seq_lpm_cntr_cfg", "apss_seq_mem_base"; num-cpus = <8>; }; sys-pm-vx@c320000 { compatible = "qcom,sys-pm-violators", "qcom,sys-pm-waipio"; reg = <0xc320000 0x0400>; mboxes = <&qmp_aop 0>; mbox-names = "aop"; }; soc-sleep-stats@c3f0000 { compatible = "qcom,rpmh-sleep-stats"; reg = <0xc3f0000 0x400>; ss-name = "modem", "adsp", "adsp_island", "cdsp", "slpi", "slpi_island", "apss"; }; subsystem-sleep-stats { compatible = "qcom,subsystem-sleep-stats"; }; qcom,msm-cdsp-loader { compatible = "qcom,cdsp-loader"; qcom,proc-img-to-load = "cdsp"; qcom,rproc-handle = <&cdsp_pas>; }; qcom,msm-adsprpc-mem { compatible = "qcom,msm-adsprpc-mem-region"; memory-region = <&adsp_mem_heap>; restrict-access; }; msm_fastrpc: qcom,msm_fastrpc { compatible = "qcom,msm-fastrpc-compute"; qcom,adsp-remoteheap-vmid = <22 37>; qcom,fastrpc-adsp-audio-pdr; qcom,fastrpc-adsp-sensors-pdr; qcom,rpc-latency-us = <235>; qcom,fastrpc-gids = <2908>; qcom,qos-cores = <0 1 2 3>; qcom,msm_fastrpc_compute_cb1 { compatible = "qcom,msm-fastrpc-compute-cb"; label = "cdsprpc-smd"; iommus = <&apps_smmu 0x2161 0x0400>, <&apps_smmu 0x1021 0x1420>; qcom,iommu-dma-addr-pool = <0x80000000 0x78000000>; qcom,iommu-faults = "stall-disable", "HUPCF"; dma-coherent; }; qcom,msm_fastrpc_compute_cb2 { compatible = "qcom,msm-fastrpc-compute-cb"; label = "cdsprpc-smd"; iommus = <&apps_smmu 0x2162 0x0400>, <&apps_smmu 0x1022 0x1420>; qcom,iommu-dma-addr-pool = <0x80000000 0x78000000>; qcom,iommu-faults = "stall-disable", "HUPCF"; dma-coherent; }; qcom,msm_fastrpc_compute_cb3 { compatible = "qcom,msm-fastrpc-compute-cb"; label = "cdsprpc-smd"; iommus = <&apps_smmu 0x2163 0x0400>, <&apps_smmu 0x1023 0x1420>; qcom,iommu-dma-addr-pool = <0x80000000 0x78000000>; qcom,iommu-faults = "stall-disable", "HUPCF"; dma-coherent; }; qcom,msm_fastrpc_compute_cb4 { compatible = "qcom,msm-fastrpc-compute-cb"; label = "cdsprpc-smd"; iommus = <&apps_smmu 0x2164 0x0400>, <&apps_smmu 0x1024 0x1420>; qcom,iommu-dma-addr-pool = <0x80000000 0x78000000>; qcom,iommu-faults = "stall-disable", "HUPCF"; dma-coherent; }; qcom,msm_fastrpc_compute_cb5 { compatible = "qcom,msm-fastrpc-compute-cb"; label = "cdsprpc-smd"; iommus = <&apps_smmu 0x2165 0x0400>, <&apps_smmu 0x1025 0x1420>; qcom,iommu-dma-addr-pool = <0x80000000 0x78000000>; qcom,iommu-faults = "stall-disable", "HUPCF"; dma-coherent; }; qcom,msm_fastrpc_compute_cb6 { compatible = "qcom,msm-fastrpc-compute-cb"; label = "cdsprpc-smd"; iommus = <&apps_smmu 0x2166 0x0400>, <&apps_smmu 0x1026 0x1420>; qcom,iommu-dma-addr-pool = <0x80000000 0x78000000>; qcom,iommu-faults = "stall-disable", "HUPCF"; dma-coherent; }; qcom,msm_fastrpc_compute_cb7 { compatible = "qcom,msm-fastrpc-compute-cb"; label = "cdsprpc-smd"; iommus = <&apps_smmu 0x2167 0x0400>, <&apps_smmu 0x1027 0x1420>; qcom,iommu-dma-addr-pool = <0x80000000 0x78000000>; qcom,iommu-faults = "stall-disable", "HUPCF"; dma-coherent; }; qcom,msm_fastrpc_compute_cb8 { compatible = "qcom,msm-fastrpc-compute-cb"; label = "cdsprpc-smd"; iommus = <&apps_smmu 0x2168 0x0400>, <&apps_smmu 0x1028 0x1420>; qcom,iommu-dma-addr-pool = <0x80000000 0x78000000>; qcom,iommu-faults = "stall-disable", "HUPCF"; dma-coherent; }; qcom,msm_fastrpc_compute_cb9 { compatible = "qcom,msm-fastrpc-compute-cb"; label = "cdsprpc-smd"; qcom,secure-context-bank; iommus = <&apps_smmu 0x2169 0x0400>, <&apps_smmu 0x1029 0x1420>; qcom,iommu-dma-addr-pool = <0x60000000 0x78000000>; qcom,iommu-faults = "stall-disable", "HUPCF"; qcom,iommu-vmid = <0xA>; /* VMID_CP_PIXEL */ dma-coherent; }; qcom,msm_fastrpc_compute_cb10 { compatible = "qcom,msm-fastrpc-compute-cb"; label = "adsprpc-smd"; iommus = <&apps_smmu 0x1803 0x0>; qcom,iommu-dma-addr-pool = <0x80000000 0x78000000>; qcom,iommu-faults = "stall-disable", "HUPCF"; dma-coherent; }; qcom,msm_fastrpc_compute_cb11 { compatible = "qcom,msm-fastrpc-compute-cb"; label = "adsprpc-smd"; iommus = <&apps_smmu 0x1804 0x0>; qcom,iommu-dma-addr-pool = <0x80000000 0x78000000>; qcom,iommu-faults = "stall-disable", "HUPCF"; dma-coherent; }; qcom,msm_fastrpc_compute_cb12 { compatible = "qcom,msm-fastrpc-compute-cb"; label = "adsprpc-smd"; iommus = <&apps_smmu 0x1805 0x0>; qcom,iommu-dma-addr-pool = <0x80000000 0x78000000>; qcom,iommu-faults = "stall-disable", "HUPCF"; dma-coherent; }; qcom,msm_fastrpc_compute_cb13 { compatible = "qcom,msm-fastrpc-compute-cb"; label = "sdsprpc-smd"; iommus = <&apps_smmu 0x0541 0x0>; qcom,iommu-dma-addr-pool = <0x80000000 0x78000000>; qcom,iommu-faults = "stall-disable", "HUPCF"; dma-coherent; }; qcom,msm_fastrpc_compute_cb14 { compatible = "qcom,msm-fastrpc-compute-cb"; label = "sdsprpc-smd"; iommus = <&apps_smmu 0x0542 0x0>; qcom,iommu-dma-addr-pool = <0x80000000 0x78000000>; qcom,iommu-faults = "stall-disable", "HUPCF"; dma-coherent; }; qcom,msm_fastrpc_compute_cb15 { compatible = "qcom,msm-fastrpc-compute-cb"; label = "sdsprpc-smd"; iommus = <&apps_smmu 0x0543 0x0>; qcom,iommu-dma-addr-pool = <0x80000000 0x78000000>; qcom,iommu-faults = "stall-disable", "HUPCF"; shared-cb = <4>; dma-coherent; }; qcom,msm_fastrpc_compute_cb16 { compatible = "qcom,msm-fastrpc-compute-cb"; label = "cdsprpc-smd"; iommus = <&apps_smmu 0x102B 0x1420>, <&apps_smmu 0x216B 0x0400>; qcom,iommu-dma-addr-pool = <0x80000000 0x78000000>; qcom,iommu-faults = "stall-disable", "HUPCF"; dma-coherent; }; qcom,msm_fastrpc_compute_cb17 { compatible = "qcom,msm-fastrpc-compute-cb"; label = "cdsprpc-smd"; iommus = <&apps_smmu 0x102C 0x1420>, <&apps_smmu 0x216C 0x0400>; qcom,iommu-dma-addr-pool = <0x80000000 0x78000000>; qcom,iommu-faults = "stall-disable", "HUPCF"; dma-coherent; }; qcom,msm_fastrpc_compute_cb18 { compatible = "qcom,msm-fastrpc-compute-cb"; label = "cdsprpc-smd"; iommus = <&apps_smmu 0x102D 0x1420>, <&apps_smmu 0x216D 0x0400>; qcom,iommu-dma-addr-pool = <0x80000000 0x78000000>; qcom,iommu-faults = "stall-disable", "HUPCF"; dma-coherent; }; qcom,msm_fastrpc_compute_cb19 { compatible = "qcom,msm-fastrpc-compute-cb"; label = "cdsprpc-smd"; iommus = <&apps_smmu 0x102E 0x1420>, <&apps_smmu 0x216E 0x0400>; qcom,iommu-dma-addr-pool = <0x80000000 0x78000000>; qcom,iommu-faults = "stall-disable", "HUPCF"; dma-coherent; }; }; spmi_bus: spmi0_bus: qcom,spmi@c42d000 { compatible = "qcom,spmi-pmic-arb"; reg = <0xc42d000 0x4000>, <0xc400000 0x3000>, <0xc500000 0x400000>, <0xc440000 0x80000>, <0xc4c0000 0x10000>; reg-names = "cnfg", "core", "chnls", "obsrvr", "intr"; interrupts-extended = <&pdc 1 IRQ_TYPE_LEVEL_HIGH>; interrupt-names = "periph_irq"; interrupt-controller; #interrupt-cells = <4>; #address-cells = <2>; #size-cells = <0>; cell-index = <0>; qcom,channel = <0>; qcom,ee = <0>; qcom,bus-id = <0>; }; spmi1_bus: qcom,spmi@c432000 { compatible = "qcom,spmi-pmic-arb"; reg = <0xc432000 0x4000>, <0xc400000 0x3000>, <0xc500000 0x400000>, <0xc440000 0x80000>, <0xc4d0000 0x10000>; reg-names = "cnfg", "core", "chnls", "obsrvr", "intr"; interrupts-extended = <&pdc 3 IRQ_TYPE_LEVEL_HIGH>; interrupt-names = "periph_irq"; interrupt-controller; #interrupt-cells = <4>; #address-cells = <2>; #size-cells = <0>; cell-index = <0>; qcom,channel = <0>; qcom,ee = <0>; qcom,bus-id = <1>; depends-on-supply = <&spmi0_bus>; }; spmi0_debug_bus: qcom,spmi-debug@10b14000 { compatible = "qcom,spmi-pmic-arb-debug"; reg = <0x10b14000 0x60>, <0x221c8784 0x4>; reg-names = "core", "fuse"; clocks = <&aoss_qmp>; clock-names = "core_clk"; qcom,fuse-enable-bit = <18>; #address-cells = <2>; #size-cells = <0>; depends-on-supply = <&spmi1_bus>; depends-on2-supply = <&smb1394_glink_debug>; qcom,pmk8350-debug@0 { compatible = "qcom,spmi-pmic"; reg = <0 SPMI_USID>; #address-cells = <2>; #size-cells = <0>; qcom,can-sleep; }; qcom,pm8350-debug@1 { compatible = "qcom,spmi-pmic"; reg = <1 SPMI_USID>; #address-cells = <2>; #size-cells = <0>; qcom,can-sleep; }; qcom,pm8350c-debug@2 { compatible = "qcom,spmi-pmic"; reg = <2 SPMI_USID>; #address-cells = <2>; #size-cells = <0>; qcom,can-sleep; }; qcom,pm8350b-debug@3 { compatible = "qcom,spmi-pmic"; reg = <3 SPMI_USID>; #address-cells = <2>; #size-cells = <0>; qcom,can-sleep; }; qcom,pmr735a-debug@4 { compatible = "qcom,spmi-pmic"; reg = <4 SPMI_USID>; #address-cells = <2>; #size-cells = <0>; qcom,can-sleep; }; qcom,pmr735b-debug@5 { compatible = "qcom,spmi-pmic"; reg = <5 SPMI_USID>; #address-cells = <2>; #size-cells = <0>; qcom,can-sleep; }; qcom,pm8450-debug@7 { compatible = "qcom,spmi-pmic"; reg = <7 SPMI_USID>; #address-cells = <2>; #size-cells = <0>; qcom,can-sleep; }; qcom,pm8010-debug@8 { compatible = "qcom,spmi-pmic"; reg = <8 SPMI_USID>; #address-cells = <2>; #size-cells = <0>; qcom,can-sleep; }; qcom,pm8010-debug@9 { compatible = "qcom,spmi-pmic"; reg = <9 SPMI_USID>; #address-cells = <2>; #size-cells = <0>; qcom,can-sleep; }; }; qcom,secure-buffer { compatible = "qcom,secure-buffer"; qcom,vmid-cp-camera-preview-ro; }; qcom,mem-buf { compatible = "qcom,mem-buf"; qcom,mem-buf-capabilities = "supplier"; qcom,vmid = <3>; }; qcom,mem-buf-msgq { compatible = "qcom,mem-buf-msgq"; }; qcom,sps { compatible = "qcom,msm-sps-4k"; qcom,pipe-attr-ee; }; adsp_notify: qcom,msm-adsp-notify { status = "ok"; compatible = "qcom,adsp-notify"; qcom,rproc-handle = <&adsp_pas>; }; bluetooth: bt_qca6490 { compatible = "qcom,qca6490"; pinctrl-names = "default"; pinctrl-0 = <&bt_en_sleep>; qcom,bt-reset-gpio = <&tlmm 81 0>; /* BT_EN */ qcom,wl-reset-gpio = <&tlmm 80 0>; /* WL_EN */ qcom,bt-sw-ctrl-gpio = <&tlmm 82 0>; /* SW_CTRL */ qcom,xo-clk-gpio = <&tlmm 204 0>; /* XO */ mboxes = <&qmp_aop 0>; qcom,vreg_ipa="s3e"; qcom,bt-vdd-aon-supply = <&S11B>; qcom,bt-vdd-dig-supply = <&S11B>; qcom,bt-vdd-rfa1-supply = <&S1C>; qcom,bt-vdd-rfa2-supply = <&S12B>; qcom,bt-vdd-asd-supply = <&L7E>; qcom,bt-vdd-aon-config = <966000 966000 0 1>; qcom,bt-vdd-dig-config = <966000 966000 0 1>; qcom,bt-vdd-rfa1-config = <1900000 2100000 0 1>; qcom,bt-vdd-rfa2-config = <1350000 1350000 0 1>; qcom,bt-vdd-asd-config = <2800000 2800000 0 1>; }; llcc_pmu: llcc-pmu@19095000 { compatible = "qcom,llcc-pmu-ver2"; reg = <0x19095000 0x300>; reg-names = "lagg-base"; }; qcom_pmu: qcom,pmu { compatible = "qcom,pmu"; qcom,long-counter; qcom,pmu-events-tbl = < 0x0008 0xFF 0x02 0xFF >, < 0x0011 0xFF 0x01 0xFF >, < 0x0017 0xFF 0xFF 0xFF >, < 0x0037 0xFF 0xFF 0xFF >, < 0x1000 0xFF 0xFF 0xFF >; }; ddr_freq_table: ddr-freq-table { qcom,freq-tbl = < 547000 >, < 768000 >, < 1555000 >, < 1708000 >, < 2092000 >, < 2736000 >, < 3196000 >; }; llcc_freq_table: llcc-freq-table { qcom,freq-tbl = < 300000 >, < 466000 >, < 600000 >, < 806000 >, < 933000 >, < 1066000 >; }; ddrqos_freq_table: ddrqos-freq-table { qcom,freq-tbl = < 0 >, < 1 >; }; qcom_dcvs: qcom,dcvs { compatible = "qcom,dcvs"; #address-cells = <1>; #size-cells = <1>; ranges; qcom_l3_dcvs_hw: l3 { compatible = "qcom,dcvs-hw"; qcom,dcvs-hw-type = <2>; qcom,bus-width = <32>; reg = <0x17d90000 0x4000>, <0x17d90100 0xa0>; reg-names = "l3-base", "l3tbl-base"; l3_dcvs_sp: sp { compatible = "qcom,dcvs-path"; qcom,dcvs-path-type = <0>; qcom,shared-offset = <0x0090>; }; }; qcom_ddr_dcvs_hw: ddr { compatible = "qcom,dcvs-hw"; qcom,dcvs-hw-type = <0>; qcom,bus-width = <4>; qcom,freq-tbl = <&ddr_freq_table>; ddr_dcvs_sp: sp { compatible = "qcom,dcvs-path"; qcom,dcvs-path-type = <0>; interconnects = <&mc_virt MASTER_LLCC &mc_virt SLAVE_EBI1>; }; ddr_dcvs_fp: fp { compatible = "qcom,dcvs-path"; qcom,dcvs-path-type = <1>; qcom,fp-voter = <&dcvs_fp>; }; }; qcom_llcc_dcvs_hw: llcc { compatible = "qcom,dcvs-hw"; qcom,dcvs-hw-type = <1>; qcom,bus-width = <16>; qcom,freq-tbl = <&llcc_freq_table>; llcc_dcvs_sp: sp { compatible = "qcom,dcvs-path"; qcom,dcvs-path-type = <0>; interconnects = <&gem_noc MASTER_APPSS_PROC &gem_noc SLAVE_LLCC>; }; llcc_dcvs_fp: fp { compatible = "qcom,dcvs-path"; qcom,dcvs-path-type = <1>; qcom,fp-voter = <&dcvs_fp>; }; }; qcom_ddrqos_dcvs_hw: ddrqos { compatible = "qcom,dcvs-hw"; qcom,dcvs-hw-type = <3>; qcom,bus-width = <1>; qcom,freq-tbl = <&ddrqos_freq_table>; ddrqos_dcvs_sp: sp { compatible = "qcom,dcvs-path"; qcom,dcvs-path-type = <0>; interconnects = <&mc_virt MASTER_LLCC &mc_virt SLAVE_EBI1>; }; }; }; qcom_memlat: qcom,memlat { compatible = "qcom,memlat"; ddr { compatible = "qcom,memlat-grp"; qcom,target-dev = <&qcom_ddr_dcvs_hw>; qcom,sampling-path = <&ddr_dcvs_fp>; qcom,miss-ev = <0x1000>; silver { compatible = "qcom,memlat-mon"; qcom,cpulist = <&CPU0 &CPU1 &CPU2 &CPU3>; qcom,cpufreq-memfreq-tbl = < 1190400 547000 >, < 1459200 768000 >, < 1900800 1555000 >; qcom,sampling-enabled; }; gold { compatible = "qcom,memlat-mon"; qcom,cpulist = <&CPU4 &CPU5 &CPU6>; qcom,cpufreq-memfreq-tbl = < 902400 547000 >, < 1017600 768000 >, < 1305600 1555000 >, < 1804800 1708000 >, < 2188800 2092000 >, < 2400000 3196000 >; qcom,sampling-enabled; }; prime { compatible = "qcom,memlat-mon"; qcom,cpulist = <&CPU7>; qcom,cpufreq-memfreq-tbl = < 902400 547000 >, < 1017600 768000 >, < 1305600 1555000 >, < 1804800 1708000 >, < 2188800 2092000 >, < 2400000 3196000 >; qcom,sampling-enabled; }; gold-compute { compatible = "qcom,memlat-mon"; qcom,cpulist = <&CPU4 &CPU5 &CPU6 &CPU7>; qcom,cpufreq-memfreq-tbl = < 1804800 547000 >, < 2400000 1555000 >; qcom,sampling-enabled; qcom,compute-mon; }; prime-latfloor { compatible = "qcom,memlat-mon"; qcom,cpulist = <&CPU7>; qcom,cpufreq-memfreq-tbl = < 2304000 547000 >, < 2400000 3196000 >; qcom,sampling-enabled; }; }; llcc { compatible = "qcom,memlat-grp"; qcom,target-dev = <&qcom_llcc_dcvs_hw>; qcom,sampling-path = <&llcc_dcvs_fp>; qcom,miss-ev = <0x37>; silver { compatible = "qcom,memlat-mon"; qcom,cpulist = <&CPU0 &CPU1 &CPU2 &CPU3>; qcom,cpufreq-memfreq-tbl = < 691200 300000 >, < 1459200 466000 >, < 1900800 600000 >; qcom,sampling-enabled; }; gold { compatible = "qcom,memlat-mon"; qcom,cpulist = <&CPU4 &CPU5 &CPU6 &CPU7>; qcom,cpufreq-memfreq-tbl = < 672000 300000 >, < 1017600 466000 >, < 1305600 600000 >, < 1804800 806000 >, < 2188800 933000 >, < 2400000 1066000 >; qcom,sampling-enabled; }; gold-compute { compatible = "qcom,memlat-mon"; qcom,cpulist = <&CPU4 &CPU5 &CPU6 &CPU7>; qcom,cpufreq-memfreq-tbl = < 1804800 300000 >, < 2400000 600000 >; qcom,sampling-enabled; qcom,compute-mon; }; }; l3 { compatible = "qcom,memlat-grp"; qcom,target-dev = <&qcom_l3_dcvs_hw>; qcom,sampling-path = <&l3_dcvs_sp>; qcom,miss-ev = <0x17>; silver { compatible = "qcom,memlat-mon"; qcom,cpulist = <&CPU0 &CPU1 &CPU2 &CPU3>; qcom,cpufreq-memfreq-tbl = < 300000 300000 >, < 403200 403200 >, < 499200 499200 >, < 691200 614400 >, < 806400 710400 >, < 998400 806400 >, < 1190400 998400 >, < 1286400 1094400 >, < 1459200 1248000 >, < 1728000 1344000 >, < 1804800 1440000 >, < 1900800 1516800 >; qcom,sampling-enabled; }; gold { compatible = "qcom,memlat-mon"; qcom,cpulist = <&CPU4 &CPU5 &CPU6>; qcom,cpufreq-memfreq-tbl = < 300000 300000 >, < 787200 614400 >, < 1209600 806400 >, < 1497600 998400 >, < 1689600 1248000 >, < 1900800 1344000 >, < 2188800 1440000 >, < 2400000 1516800 >; qcom,sampling-enabled; }; prime { compatible = "qcom,memlat-mon"; qcom,cpulist = <&CPU7>; qcom,cpufreq-memfreq-tbl = < 300000 300000 >, < 787200 614400 >, < 1209600 806400 >, < 1497600 998400 >, < 1689600 1248000 >, < 1900800 1344000 >, < 2188800 1440000 >, < 2400000 1516800 >; qcom,sampling-enabled; }; prime-compute { compatible = "qcom,memlat-mon"; qcom,cpulist = <&CPU7>; qcom,cpufreq-memfreq-tbl = < 1996800 300000 >, < 2400000 1516800 >; qcom,sampling-enabled; qcom,compute-mon; }; }; ddrqos { compatible = "qcom,memlat-grp"; qcom,target-dev = <&qcom_ddrqos_dcvs_hw>; qcom,sampling-path = <&ddrqos_dcvs_sp>; qcom,miss-ev = <0x1000>; ddrqos_gold_lat: gold { compatible = "qcom,memlat-mon"; qcom,cpulist = <&CPU4 &CPU5 &CPU6 &CPU7>; qcom,cpufreq-memfreq-tbl = < 300000 0 >, < 2400000 1 >; qcom,sampling-enabled; }; ddrqos_prime_latfloor: prime-latfloor { compatible = "qcom,memlat-mon"; qcom,cpulist = <&CPU7>; qcom,cpufreq-memfreq-tbl = < 1996800 0 >, < 2400000 1 >; qcom,sampling-enabled; }; }; }; bwmon_llcc: qcom,bwmon-llcc@190b6400 { compatible = "qcom,bwmon4"; reg = <0x190b6400 0x300>, <0x190b6300 0x200>; reg-names = "base", "global_base"; interrupts = ; qcom,mport = <0>; qcom,hw-timer-hz = <19200000>; qcom,count-unit = <0x10000>; qcom,target-dev = <&qcom_llcc_dcvs_hw>; }; bwmon_ddr: qcom,bwmon-ddr@19091000 { compatible = "qcom,bwmon5"; reg = <0x19091000 0x1000>; reg-names = "base"; interrupts = ; qcom,hw-timer-hz = <19200000>; qcom,count-unit = <0x10000>; qcom,target-dev = <&qcom_ddr_dcvs_hw>; }; trust_ui_vm: qcom,trust_ui_vm@e55fc000 { reg = <0xe54f8000 0x208000>; vm_name = "trustedvm"; shared-buffers = <&trust_ui_vm_vblk0_ring &trust_ui_vm_vblk1_ring &trust_ui_vm_swiotlb>; }; oem_vm: qcom,oem_vm@bfefc000 { reg = <0xbfefc000 0x104000>; vm_name = "oemvm"; shared-buffers = <&oem_vm_vblk0_ring &oem_vm_swiotlb>; }; qcom,virtio_backend@0 { compatible = "qcom,virtio_backend"; qcom,vm = <&trust_ui_vm>; qcom,label = <0x11>; }; qcom,virtio_backend@1 { compatible = "qcom,virtio_backend"; qcom,vm = <&trust_ui_vm>; qcom,label = <0x10>; }; qcom,virtio_backend@2 { compatible = "qcom,virtio_backend"; qcom,vm = <&oem_vm>; qcom,label = <0x13>; }; qcom,msm_gsi { compatible = "qcom,msm_gsi"; }; qcom,rmnet-ipa { compatible = "qcom,rmnet-ipa3"; qcom,rmnet-ipa-ssr; qcom,ipa-platform-type-msm; qcom,ipa-advertise-sg-support; qcom,ipa-napi-enable; }; qcom,ipa_fws { compatible = "qcom,pil-tz-generic"; qcom,pas-id = <0xf>; qcom,firmware-name = "ipa_fws"; qcom,pil-force-shutdown; status = "disabled"; }; qcom,qbt_handler { compatible = "qcom,qbt-handler"; qcom,ipc-gpio = <&tlmm 40 0>; qcom,finger-detect-gpio = <&tlmm 41 0>; qcom,intr2-gpio = <&tlmm 42 0>; }; wlan: qcom,cnss-qca6490@b0000000 { compatible = "qcom,cnss-qca6490"; reg = <0xb0000000 0x10000>; reg-names = "smmu_iova_ipa"; wlan-en-gpio = <&tlmm 80 0>; qcom,bt-en-gpio = <&tlmm 81 0>; pinctrl-names = "wlan_en_active", "wlan_en_sleep"; pinctrl-0 = <&cnss_wlan_en_active>; pinctrl-1 = <&cnss_wlan_en_sleep>; qcom,wlan-rc-num = <0>; qcom,wlan-ramdump-dynamic = <0x420000>; qcom,wlan-cbc-enabled; use-pm-domain; cnss-enable-self-recovery; qcom,same-dt-multi-dev; mboxes = <&qmp_aop 0>; qcom,vreg_ipa="s3e"; qcom,xo-clk-gpio = <&tlmm 204 0>; vdd-wlan-aon-supply = <&S2E>; qcom,vdd-wlan-aon-config = <1012000 1012000 0 0 1>; vdd-wlan-dig-supply = <&S11B>; qcom,vdd-wlan-dig-config = <966000 966000 0 0 1>; vdd-wlan-io-supply = <&S10B>; qcom,vdd-wlan-io-config = <1800000 1800000 0 0 1>; vdd-wlan-rfa1-supply = <&S1C>; qcom,vdd-wlan-rfa1-config = <1900000 2100000 0 0 1>; vdd-wlan-rfa2-supply = <&S12B>; qcom,vdd-wlan-rfa2-config = <1350000 1350000 0 0 1>; wlan-ant-switch-supply = <&L7E>; qcom,wlan-ant-switch-config = <2800000 2800000 0 0 1>; interconnects = <&pcie_noc MASTER_PCIE_0 &pcie_noc SLAVE_ANOC_PCIE_GEM_NOC>, <&gem_noc MASTER_ANOC_PCIE_GEM_NOC &mc_virt SLAVE_EBI1>; interconnect-names = "pcie_to_memnoc", "memnoc_to_ddr"; qcom,icc-path-count = <2>; qcom,bus-bw-cfg-count = <7>; qcom,bus-bw-cfg = /** ICC Path 1 **/ <0 0>, /* no vote */ /* idle: 0-18 Mbps snoc/anoc: 100 Mhz ddr: 451.2 MHz */ <2250 390000>, /* low: 18-60 Mbps snoc/anoc: 100 Mhz ddr: 451.2 MHz */ <7500 390000>, /* medium: 60-240 Mbps snoc/anoc: 200 Mhz ddr: 451.2 MHz */ <30000 790000>, /* high: 240-1080 Mbps snoc/anoc: 200 Mhz ddr: 451.2 MHz */ <100000 790000>, /* very high: > 1080 Mbps snoc/anoc: 403 Mhz ddr: 451.2 MHz */ <175000 1600000>, /* low (latency critical): 18-60 Mbps snoc/anoc: 200 Mhz * ddr: 547.2 MHz */ <7500 390000>, /** ICC Path 2 **/ <0 0>, <2250 1804800>, <7500 1804800>, <30000 1804800>, <100000 1804800>, <175000 6220800>, <7500 2188800>; }; ipa_hw: qcom,ipa@3e00000 { compatible = "qcom,ipa"; reg = <0x3e00000 0x84000>, <0x3e04000 0xfc000>; reg-names = "ipa-base", "gsi-base"; pas-ids = <0xf>; firmware-names = "ipa_fws"; memory-regions = <&ipa_gsi_mem>; qcom,ipa-cfg-offset = <0x0140000>; interrupts = <0 654 IRQ_TYPE_LEVEL_HIGH>, <0 432 IRQ_TYPE_LEVEL_HIGH>; interrupt-names = "ipa-irq", "gsi-irq"; qcom,ipa-hw-ver = <22>; /* IPA core version = IPAv5.1 */ qcom,ipa-hw-mode = <0>; qcom,platform-type = <1>; /* MSM platform */ qcom,ee = <0>; qcom,use-ipa-tethering-bridge; qcom,mhi-event-ring-id-limits = <9 11>; /* start and end */ qcom,modem-cfg-emb-pipe-flt; qcom,ipa-wdi3-over-gsi; qcom,arm-smmu; qcom,smmu-fast-map; qcom,use-64-bit-dma-mask; qcom,ipa-endp-delay-wa-v2; qcom,ipa-ulso-wa; qcom,lan-rx-napi; qcom,tx-napi; qcom,tx-poll; qcom,wan-use-skb-page; qcom,rmnet-ctl-enable; qcom,rmnet-ll-enable; qcom,ipa-uc-holb-monitor; qcom,ipa-holb-monitor-poll-period = <5>; qcom,ipa-holb-monitor-max-cnt-wlan = <10>; qcom,ipa-holb-monitor-max-cnt-usb = <10>; qcom,ipa-holb-monitor-max-cnt-11ad = <10>; qcom,tx-wrapper-cache-max-size = <400>; qcom,ipa-gpi-event-rp-ddr; qcom,ulso-supported; qcom,ulso-ip-id-min-linux-val = <0>; qcom,ulso-ip-id-max-linux-val = <0xffff>; qcom,ulso-ip-id-min-windows-val = <0>; qcom,ulso-ip-id-max-windows-val = <0x7fff>; qcom,max_num_smmu_cb = <4>; clock-names = "core_clk"; clocks = <&clock_rpmh RPMH_IPA_CLK>; qcom,interconnect,num-cases = <5>; qcom,interconnect,num-paths = <3>; interconnects = <&aggre2_noc MASTER_IPA &gem_noc SLAVE_LLCC>, <&mc_virt MASTER_LLCC &mc_virt SLAVE_EBI1>, <&gem_noc MASTER_APPSS_PROC &config_noc SLAVE_IPA_CFG>; interconnect-names = "ipa_to_llcc", "llcc_to_ebi1", "appss_to_ipa"; /* No vote */ qcom,no-vote = <0 0 0 0 0 0>; /* SVS2 */ qcom,svs2 = <600000 0 600000 1900000 0 76800>; /* SVS */ qcom,svs = <1200000 0 1200000 2800000 0 150000>; /* NOMINAL */ qcom,nominal = <2400000 0 2400000 5500000 0 400000>; /* TURBO */ qcom,turbo = <3600000 0 3600000 5500000 0 400000>; qcom,bus-vector-names = "MIN", "SVS2", "SVS", "NOMINAL", "TURBO"; qcom,throughput-threshold = <2000 4000 8000>; qcom,scaling-exceptions = <>; /* smp2p information */ qcom,smp2p_map_ipa_1_out { compatible = "qcom,smp2p-map-ipa-1-out"; qcom,smem-states = <&smp2p_ipa_1_out 0>; qcom,smem-state-names = "ipa-smp2p-out"; }; qcom,smp2p_map_ipa_1_in { compatible = "qcom,smp2p-map-ipa-1-in"; interrupts-extended = <&smp2p_ipa_1_in 0 0>; interrupt-names = "ipa-smp2p-in"; }; ipa_smmu_ap: ipa_smmu_ap { compatible = "qcom,ipa-smmu-ap-cb"; iommus = <&apps_smmu 0x5C0 0x0>; qcom,iommu-dma-addr-pool = <0x20000000 0x20000000>; qcom,additional-mapping = /* modem tables in IMEM */ <0x146A8000 0x146A8000 0x2000>; qcom,iommu-dma = "fastmap"; dma-coherent; qcom,ipa-q6-smem-size = <36864>; }; ipa_smmu_wlan: ipa_smmu_wlan { compatible = "qcom,ipa-smmu-wlan-cb"; iommus = <&apps_smmu 0x5C1 0x0>; qcom,iommu-dma = "atomic"; dma-coherent; }; ipa_smmu_uc: ipa_smmu_uc { compatible = "qcom,ipa-smmu-uc-cb"; iommus = <&apps_smmu 0x5C2 0x0>; qcom,iommu-dma-addr-pool = <0x20000000 0x20000000>; qcom,iommu-dma = "atomic"; dma-coherent; }; ipa_smmu_11ad: ipa_smmu_11ad { compatible = "qcom,ipa-smmu-11ad-cb"; iommus = <&apps_smmu 0x5C4 0x0>; dma-coherent; qcom,shared-cb; qcom,iommu-group = <>; }; }; mhi_qrtr_cnss { compatible = "qcom,qrtr-mhi"; qcom,dev-id = <0x1103>; qcom,net-id = <0>; qcom,low-latency; }; }; #include "ipcc-test.dtsi" #include "waipio-qupv3.dtsi" #include "waipio-pinctrl.dtsi" #include "msm-arm-smmu-waipio.dtsi" #include "waipio-smp2p.dtsi" #include "waipio-regulators.dtsi" #include "waipio-usb.dtsi" #include "waipio-coresight.dtsi" #include "waipio-dma-heaps.dtsi" #include "waipio-debug.dtsi" #include "waipio-eva.dtsi" #include "waipio-pcie.dtsi" #include "msm-rdbg.dtsi" #include "waipio-gpu.dtsi" #include "waipio-thermal.dtsi" &pcie0_rp { #address-cells = <5>; #size-cells = <0>; cnss_pci: cnss_pci { reg = <0 0 0 0 0>; qcom,iommu-group = <&cnss_pci_iommu_group>; memory-region = <&cnss_wlan_mem>; #address-cells = <1>; #size-cells = <1>; cnss_pci_iommu_group: cnss_pci_iommu_group { qcom,iommu-msi-size = <0x1000>; qcom,iommu-dma-addr-pool = <0xa0000000 0x10000000>; qcom,iommu-dma = "fastmap"; qcom,iommu-pagetable = "coherent"; qcom,iommu-faults = "stall-disable", "HUPCF", "no-CFRE", "non-fatal"; }; }; }; &qupv3_se7_2uart { status = "ok"; }; &qupv3_se20_4uart { status = "ok"; }; &qupv3_se5_i2c { status = "ok"; nq@64 { compatible = "rtc6226"; reg = <0x64>; fmint-gpio = <&tlmm 44 0>; vdd-supply = <&L7E>; rtc6226,vdd-supply-voltage = <2800000 2800000>; rtc6226,vdd-load = <15000>; vio-supply = <&S10B>; rtc6226,vio-supply-voltage = <1800000 1800000 >; }; fsa4480: fsa4480@42 { compatible = "qcom,fsa4480-i2c"; reg = <0x42>; }; };