#include #include #include "quin-vm-common.dtsi" #include "pm8195-vm.dtsi" / { model = "Qualcomm Technologies, Inc. SA8195 Virtual Machine"; qcom,msm-name = "SA8195P"; qcom,msm-id = <405 0x20000>; aliases { hsuart0 = &qupv3_se13_4uart; 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>; capacity-dmips-mhz = <1024>; }; CPU1: cpu@1 { device_type = "cpu"; compatible = "arm,armv8"; reg = <0x0 0x1>; capacity-dmips-mhz = <1024>; }; CPU2: cpu@2 { device_type = "cpu"; compatible = "arm,armv8"; reg = <0x0 0x2>; capacity-dmips-mhz = <1024>; }; CPU3: cpu@3 { device_type = "cpu"; compatible = "arm,armv8"; reg = <0x0 0x3>; capacity-dmips-mhz = <1024>; }; CPU4: cpu@4 { device_type = "cpu"; compatible = "arm,armv8"; reg = <0x0 0x4>; capacity-dmips-mhz = <306>; }; CPU5: cpu@5 { device_type = "cpu"; compatible = "arm,armv8"; reg = <0x0 0x5>; capacity-dmips-mhz = <306>; }; CPU6: cpu@6 { device_type = "cpu"; compatible = "arm,armv8"; reg = <0x0 0x6>; capacity-dmips-mhz = <306>; }; CPU7: cpu@7 { device_type = "cpu"; compatible = "arm,armv8"; reg = <0x0 0x7>; capacity-dmips-mhz = <306>; }; 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 { /* Rome 3.3V supply */ vreg_wlan: vreg_wlan { compatible = "qcom,stub-regulator"; regulator-name = "vreg_wlan"; }; /* PWR_CTR2_VDD_1P8 supply */ vreg_conn_1p8: vreg_conn_1p8 { compatible = "regulator-fixed"; regulator-name = "vreg_conn_1p8"; pinctrl-names = "default"; pinctrl-0 = <&conn_power_1p8_active>; startup-delay-us = <4000>; enable-active-high; gpio = <&tlmm 173 0>; }; /* PWR_CTR1_VDD_PA supply */ vreg_conn_pa: vreg_conn_pa { compatible = "regulator-fixed"; regulator-name = "vreg_conn_pa"; pinctrl-names = "default"; pinctrl-0 = <&conn_power_pa_active>; startup-delay-us = <4000>; enable-active-high; gpio = <&tlmm 174 0>; }; cnss_pcie: qcom,cnss-qca-converged { compatible = "qcom,cnss-qca-converged"; qcom,converged-dt; qcom,wlan-rc-num = <0>; qcom,bus-type=<0>; qcom,notify-modem-status; #address-cells=<1>; #size-cells=<1>; ranges = <0xb0000000 0xb0000000 0x10000>; vdd-wlan-ctrl1-supply = <&vreg_conn_pa>; vdd-wlan-ctrl2-supply = <&vreg_conn_1p8>; vdd-wlan-supply = <&vreg_wlan>; vdd-wlan-aon-supply = <&pm8195_1_s5>; vdd-wlan-rfa1-supply = <&pm8195_1_s2>; vdd-wlan-rfa2-supply = <&pm8195_2_s5>; vdd-wlan-rfa3-supply = <&pm8195_2_l7>; wlan_vregs = "vdd-wlan-ctrl1", "vdd-wlan-ctrl2"; qcom,vdd-wlan-ctrl1-config = <0 0 0 0>; qcom,vdd-wlan-ctrl2-config = <0 0 0 0>; wlan-en-gpio = <&tlmm 169 0>; pinctrl-names = "wlan_en_active", "wlan_en_sleep"; pinctrl-0 = <&cnss_wlan_en_active>; pinctrl-1 = <&cnss_wlan_en_sleep>; chip_cfg@0 { reg = <0x10000000 0x10000000>, <0x20000000 0x10000>; reg-names = "smmu_iova_base", "smmu_iova_ipa"; supported-ids = <0x003e>; wlan_vregs = "vdd-wlan"; qcom,vdd-wlan-info = <0 0 0 10>; qcom,smmu-s1-enable; qcom,wlan-ramdump-dynamic = <0x200000>; }; chip_cfg@1 { reg = <0xb0000000 0x10000>; reg-names = "smmu_iova_ipa"; supported-ids = <0x1101>; wlan_vregs = "vdd-wlan-aon", "vdd-wlan-rfa1", "vdd-wlan-rfa2", "vdd-wlan-rfa3"; qcom,vdd-wlan-aon-config = <1000000 1000000 0 0 1>; qcom,vdd-wlan-rfa1-config = <1370000 1370000 0 0 1>; qcom,vdd-wlan-rfa2-config = <2040000 2040000 0 0 1>; qcom,vdd-wlan-rfa3-config = <1900000 1900000 450000 0 1>; qcom,wlan-ramdump-dynamic = <0x400000>; mhi,max-channels = <30>; mhi,timeout = <10000>; mhi,buffer-len = <0x8000>; mhi,m2-no-db-access; mhi_channels { #address-cells = <1>; #size-cells = <0>; mhi_chan@0 { reg = <0>; label = "LOOPBACK"; mhi,num-elements = <32>; mhi,event-ring = <1>; mhi,chan-dir = <1>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <0x14>; }; mhi_chan@1 { reg = <1>; label = "LOOPBACK"; mhi,num-elements = <32>; mhi,event-ring = <1>; mhi,chan-dir = <2>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <0x14>; }; mhi_chan@4 { reg = <4>; label = "DIAG"; mhi,num-elements = <32>; mhi,event-ring = <1>; mhi,chan-dir = <1>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <0x14>; }; mhi_chan@5 { reg = <5>; label = "DIAG"; mhi,num-elements = <32>; mhi,event-ring = <1>; mhi,chan-dir = <2>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <0x14>; }; mhi_chan@20 { reg = <20>; label = "IPCR"; mhi,num-elements = <32>; mhi,event-ring = <1>; mhi,chan-dir = <1>; mhi,data-type = <1>; mhi,doorbell-mode = <2>; mhi,ee = <0x14>; mhi,auto-start; }; mhi_chan@21 { reg = <21>; label = "IPCR"; mhi,num-elements = <32>; mhi,event-ring = <1>; mhi,chan-dir = <2>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <0x14>; mhi,auto-queue; mhi,auto-start; }; }; mhi_events { mhi_event@0 { mhi,num-elements = <32>; mhi,intmod = <1>; mhi,msi = <1>; mhi,priority = <1>; mhi,brstmode = <2>; mhi,data-type = <1>; }; mhi_event@1 { mhi,num-elements = <256>; mhi,intmod = <1>; mhi,msi = <2>; mhi,priority = <1>; mhi,brstmode = <2>; }; }; }; chip_cfg@2 { reg = <0xa0000000 0x10000000>, <0xb0000000 0x10000>; reg-names = "smmu_iova_base", "smmu_iova_ipa"; supported-ids = <0x1102>; wlan_vregs = "vdd-wlan-aon", "vdd-wlan-rfa1", "vdd-wlan-rfa2", "vdd-wlan-rfa3"; qcom,vdd-wlan-aon-config = <1055000 1055000 0 0 1>; qcom,vdd-wlan-rfa1-config = <1370000 1370000 0 0 1>; qcom,vdd-wlan-rfa2-config = <2040000 2040000 0 0 1>; qcom,vdd-wlan-rfa3-config = <1900000 1900000 0 0 1>; qcom,wlan-ramdump-dynamic = <0x300000>; mhi,max-channels = <30>; mhi,timeout = <10000>; mhi,ee = <0x3>, <0x4>; mhi,ee-names = "SBL", "RDDM"; mhi,bhie-offset = <0x0324>; mhi_channels { #address-cells = <1>; #size-cells = <0>; mhi_chan@0 { reg = <0>; label = "LOOPBACK"; mhi,num-elements = <32>; mhi,event-ring = <1>; mhi,chan-dir = <1>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <0x14>; }; mhi_chan@1 { reg = <1>; label = "LOOPBACK"; mhi,num-elements = <32>; mhi,event-ring = <1>; mhi,chan-dir = <2>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <0x14>; }; mhi_chan@4 { reg = <4>; label = "DIAG"; mhi,num-elements = <32>; mhi,event-ring = <1>; mhi,chan-dir = <1>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <0x14>; }; mhi_chan@5 { reg = <5>; label = "DIAG"; mhi,num-elements = <32>; mhi,event-ring = <1>; mhi,chan-dir = <2>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <0x14>; }; mhi_chan@16 { reg = <16>; label = "IPCR"; mhi,num-elements = <32>; mhi,event-ring = <1>; mhi,chan-dir = <1>; mhi,data-type = <1>; mhi,doorbell-mode = <2>; mhi,ee = <0x14>; mhi,auto-start; }; mhi_chan@17 { reg = <17>; label = "IPCR"; mhi,num-elements = <32>; mhi,event-ring = <1>; mhi,chan-dir = <2>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <0x14>; mhi,auto-queue; mhi,auto-start; }; }; mhi_events { mhi_event@0 { mhi,num-elements = <32>; mhi,intmod = <1>; mhi,msi = <1>; mhi,priority = <1>; mhi,brstmode = <2>; mhi,data-type = <1>; }; mhi_event@1 { mhi,num-elements = <256>; mhi,intmod = <1>; mhi,msi = <2>; mhi,priority = <1>; mhi,brstmode = <2>; }; }; }; }; apps_smmu: apps-smmu@0x15000000 { compatible = "qcom,qsmmu-v500"; reg = <0x15000000 0x100000>, <0x15182000 0x20>; reg-names = "base", "tcu-base"; #iommu-cells = <2>; qcom,skip-init; qcom,use-3-lvl-tables; qcom,disable-atos; #global-interrupts = <1>; #size-cells = <1>; #address-cells = <1>; ranges; interrupts = , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ; }; sdhc_2: sdhci@8804000 { compatible = "qcom,sdhci-msm-v5"; reg = <0x8804000 0x1000>; reg-names = "hc_mem"; interrupts = , ; interrupt-names = "hc_irq", "pwr_irq"; clocks = <&gcc GCC_SDCC2_AHB_CLK>, <&gcc GCC_SDCC2_APPS_CLK>; clock-names = "iface", "core"; bus-width = <4>; qcom,restore-after-cx-collapse; qcom,msm-bus,name = "sdhc2"; qcom,msm-bus,num-cases = <6>; qcom,msm-bus,num-paths = <2>; qcom,msm-bus,vectors-KBps = /* No vote */ <0 0>, <0 0>, /* 25 MB/s */ <65360 100000>, <100000 100000>, /* 50 MB/s */ <130718 200000>, <100000 100000>, /* 100 MB/s */ <261438 200000>, <130000 130000>, /* 200 MB/s */ <261438 400000>, <300000 300000>, /* Max. bandwidth */ <1338562 4096000>, <1338562 4096000>; /* DLL HSR settings. Refer go/hsr - DLL settings */ qcom,dll-hsr-list = <0x0007642c 0x0 0x10 0x2C010800 0x80040868>; qcom,devfreq,freq-table = <50000000 200000000>; vdd-supply = <&pm8195_1_l10>; qcom,vdd-voltage-level = <2950000 2960000>; qcom,vdd-current-level = <200 800000>; vdd-io-supply = <&pm8195_1_l2>; qcom,vdd-io-voltage-level = <1808000 2960000>; qcom,vdd-io-current-level = <200 22000>; pinctrl-names = "default", "sleep"; pinctrl-0 = <&sdc2_on>; pinctrl-1 = <&sdc2_off>; cd-gpios = <&pm8195_1_gpios 4 GPIO_ACTIVE_LOW>; status = "disabled"; qos0 { mask = <0x0f>; vote = <70>; }; qos1 { mask = <0xf0>; vote = <70>; }; }; qtee_shmbridge { compatible = "qcom,tee-shared-memory-bridge"; }; qcom_qseecom: qseecom@87a00000 { compatible = "qcom,qseecom"; reg = <0x87a00000 0x2100000>; reg-names = "secapp-region"; memory-region = <&qseecom_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,qsee-reentrancy-support = <2>; }; pdc: interrupt-controller@b220000 { compatible = "qcom,sm8150-pdc"; reg = <0xb220000 0x30000>; qcom,pdc-ranges = <6 486 6>, <30 510 1>, <40 520 1>, <46 526 1>, <59 539 1>, <68 548 1>, <71 551 1>; #interrupt-cells = <2>; interrupt-parent = <&intc>; interrupt-controller; }; VDD_CX_LEVEL: S3E_LEVEL: pm8195_3_s3_level: regulator-pm8195-3-s3-level { compatible = "qcom,stub-regulator"; regulator-name = "pm8195_3_s3_level"; regulator-min-microvolt = ; regulator-max-microvolt = ; }; tcsr_compute_signal_glb: syscon@0x1fd8000 { compatible = "syscon"; reg = <0x1fd8000 0x1000>; }; tcsr_compute_signal_sender0: syscon@0x1fd9000 { compatible = "syscon"; reg = <0x1fd9000 0x1000>; }; tcsr_compute_signal_sender1: syscon@0x1fdd000 { compatible = "syscon"; reg = <0x1fdd000 0x1000>; }; tcsr_compute_signal_receiver0: syscon@0x1fdb000 { compatible = "syscon"; reg = <0x1fdb000 0x1000>; }; tcsr_compute_signal_receiver1: syscon@0x1fdf000 { compatible = "syscon"; reg = <0x1fdf000 0x1000>; }; hgsl_tcsr_sender0: hgsl_tcsr_sender0 { compatible = "qcom,hgsl-tcsr-sender"; syscon = <&tcsr_compute_signal_sender0>; syscon-glb = <&tcsr_compute_signal_glb>; }; hgsl_tcsr_sender1: hgsl_tcsr_sender1 { compatible = "qcom,hgsl-tcsr-sender"; syscon = <&tcsr_compute_signal_sender1>; syscon-glb = <&tcsr_compute_signal_glb>; }; hgsl_tcsr_receiver0: hgsl_tcsr_receiver0 { compatible = "qcom,hgsl-tcsr-receiver"; syscon = <&tcsr_compute_signal_receiver0>; interrupts = <0 238 IRQ_TYPE_LEVEL_HIGH>; }; hgsl_tcsr_receiver1: hgsl_tcsr_receiver1 { compatible = "qcom,hgsl-tcsr-receiver"; syscon = <&tcsr_compute_signal_receiver1>; interrupts = <0 239 IRQ_TYPE_LEVEL_HIGH>; }; msm_gpu_hyp: qcom,hgsl@0x2c00000 { compatible = "qcom,hgsl"; reg = <0x2c00000 0x8>, <0x2c8f000 0x4>; reg-names = "hgsl_reg_hwinf", "hgsl_reg_gmucx"; qcom,glb-db-senders = <&hgsl_tcsr_sender0 &hgsl_tcsr_sender1>; qcom,glb-db-receivers = <&hgsl_tcsr_receiver0 &hgsl_tcsr_receiver1>; }; bluetooth: bt-qca-auto-converged { compatible = "qcom,qca-auto-converged"; pinctrl-names = "default"; pinctrl-0 = <&bt_en_active>; /* BT_EN */ qcom,bt-reset-gpio = <&tlmm 172 0>; /* PWR_CTR1_VDD_PA */ qcom,bt-vdd-ctrl1-supply = <&vreg_conn_pa>; /* PWR_CTR2_VDD_1P8 */ qcom,bt-vdd-ctrl2-supply = <&vreg_conn_1p8>; qcom,bt-vdd-aon-supply = <&pm8195_1_s5>; qcom,bt-vdd-rfa1-supply = <&pm8195_1_s2>; qcom,bt-vdd-rfa2-supply = <&pm8195_2_s5>; qcom,bt-vdd-rfa3-supply = <&pm8195_2_l7>; /* */ qcom,bt-vdd-aon-config = <1000000 1000000 0 0>; qcom,bt-vdd-rfa1-config = <1370000 1370000 0 0>; qcom,bt-vdd-rfa2-config = <2040000 2040000 0 0>; qcom,bt-vdd-rfa3-config = <1900000 1900000 450000 0>; }; qcom_rng: qrng@793000 { compatible = "qcom,msm-rng"; reg = <0x793000 0x1000>; qcom,no-qrng-config; clocks = <&gcc GCC_PRNG_AHB_CLK>; clock-names = "km_clk_src"; }; }; ®ulator { usb30_prim_gdsc: usb30_prim_gdsc { regulator-name = "usb30_prim_gdsc"; }; usb30_sec_gdsc: usb30_sec_gdsc { regulator-name = "usb30_sec_gdsc"; }; usb30_mp_gdsc: qcom,gdsc@1a6004 { regulator-name = "usb30_mp_gdsc"; }; ufs_card_2_gdsc: ufs_card_2_gdsc { regulator-name = "ufs_card_2_gdsc"; }; pcie_0_gdsc: pcie_0_gdsc { regulator-name = "pcie_0_gdsc"; }; pcie_1_gdsc: pcie_1_gdsc { regulator-name = "pcie_1_gdsc"; }; pcie_2_gdsc: pcie_2_gdsc { regulator-name = "pcie_2_gdsc"; }; pcie_3_gdsc: pcie_3_gdsc { regulator-name = "pcie_3_gdsc"; }; ufs_card_2_gdsc: ufs_card_2_gdsc { regulator-name = "ufs_card_2_gdsc"; }; L2A: pm8195_1_l2: regulator-pm8195-1-l2 { regulator-name = "ldoa2"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <3300000>; }; L9A: pm8195_1_l9: regulator-pm8195-1-l9 { regulator-name = "ldoa9"; regulator-min-microvolt = <1150000>; regulator-max-microvolt = <1250000>; regulator-allow-set-load; }; L10A: pm8195_1_l10: regulator-pm8195-1-l10 { regulator-name = "ldoa10"; regulator-min-microvolt = <2700000>; regulator-max-microvolt = <3544000>; }; L12A: pm8195_1_l12: regulator-pm8195-1-l12 { regulator-name = "ldoa12"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1890000>; }; L7C: pm8195_2_l7: regulator-pm8195-2-l7 { regulator-name = "ldoc7"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <2040000>; }; L5E: pm8195_3_l5: regulator-pm8195-3-l5 { regulator-name = "ldoe5"; regulator-min-microvolt = <800000>; regulator-max-microvolt = <920000>; regulator-allow-set-load; }; L9E: pm8195_3_l9: regulator-pm8195-3-l9 { regulator-name = "ldoe9"; regulator-min-microvolt = <830000>; regulator-max-microvolt = <920000>; }; L16E: pm8195_3_l16: regulator-pm8195-3-l16 { regulator-name = "ldoe16"; regulator-min-microvolt = <2921000>; regulator-max-microvolt = <3300000>; }; S2A: pm8195_1_s2: regulator-pm8195-1-s2 { regulator-name = "smpa2"; regulator-min-microvolt = <1179000>; regulator-max-microvolt = <1379000>; }; S5A: pm8195_1_s5: regulator-pm8195-1-s5 { regulator-name = "smpa5"; regulator-min-microvolt = <900000>; regulator-max-microvolt = <1000000>; }; S5C: pm8195_2_s5: regulator-pm8195-2-s5 { regulator-name = "smpc5"; regulator-min-microvolt = <1713000>; regulator-max-microvolt = <2040000>; }; }; &firmware { scm { compatible = "qcom,scm"; }; }; #include "sdmshrike-pinctrl.dtsi" #include "sm8150-slpi-pinctrl.dtsi" #include "sa8195-vm-usb.dtsi" #include "sa8195-vm-pcie.dtsi" #include "sa8195-qupv3.dtsi" #include "sa8195-ssc-qupv3.dtsi" #include "sa8155-vm-audio.dtsi" &tlmm { /delete-property/ wakeup-parent; }; &slpi_tlmm { status = "ok"; }; &pcie_rc0 { cnss_pci: cnss_pci { reg = <0 0 0 0 0>; qcom,iommu-group = <&cnss_pci_iommu_group>; #address-cells = <1>; #size-cells = <1>; cnss_pci_iommu_group: cnss_pci_iommu_group { qcom,iommu-dma-addr-pool = <0xa0000000 0x10000000>; qcom,iommu-dma = "bypass"; qcom,iommu-faults = "stall-disable", "no-CFRE", "non-fatal"; }; }; }; &qupv3_0 { /delete-property/ qcom,msm-bus,num-paths; /delete-property/ qcom,msm-bus,vectors-bus-ids; qcom,iommu-dma = "bypass"; }; &qupv3_1 { /delete-property/ qcom,msm-bus,num-paths; /delete-property/ qcom,msm-bus,vectors-bus-ids; qcom,iommu-dma = "bypass"; }; &qupv3_2 { /delete-property/ qcom,msm-bus,num-paths; /delete-property/ qcom,msm-bus,vectors-bus-ids; qcom,iommu-dma = "bypass"; }; &qupv3_3 { /delete-property/ qcom,msm-bus,num-paths; /delete-property/ qcom,msm-bus,vectors-bus-ids; qcom,iommu-dma = "atomic"; };