Upstream Linux kernel has added a new devicetree property "iommu-addresses", to replace "qcom,iommu-dma-addr-pool". The new property defines the address range the device cannot use, in contrast to the older property which defines the address range the device can use. Change-Id: I8fc13e27593193af7be5ca1bcc03c04a25f36c91 CRs-Fixed: 3724373
173 lines
4.5 KiB
Plaintext
173 lines
4.5 KiB
Plaintext
// SPDX-License-Identifier: BSD-3-Clause
|
|
|
|
/*
|
|
* Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved.
|
|
*/
|
|
|
|
#include <dt-bindings/interconnect/qcom,sun.h>
|
|
|
|
&tlmm {
|
|
cnss_pins {
|
|
cnss_wlan_en_active: cnss_wlan_en_active {
|
|
mux {
|
|
pins = "gpio16";
|
|
function = "gpio";
|
|
};
|
|
|
|
config {
|
|
pins = "gpio16";
|
|
drive-strength = <16>;
|
|
output-high;
|
|
bias-pull-up;
|
|
};
|
|
};
|
|
|
|
cnss_wlan_en_sleep: cnss_wlan_en_sleep {
|
|
mux {
|
|
pins = "gpio16";
|
|
function = "gpio";
|
|
};
|
|
|
|
config {
|
|
pins = "gpio16";
|
|
drive-strength = <2>;
|
|
output-low;
|
|
bias-pull-down;
|
|
};
|
|
};
|
|
|
|
cnss_wlan_sw_ctrl: cnss_wlan_sw_ctrl {
|
|
mux {
|
|
pins = "gpio18";
|
|
function = "wcn_sw_ctrl";
|
|
};
|
|
};
|
|
|
|
cnss_wlan_sw_ctrl_wl_cx: cnss_wlan_sw_ctrl_wl_cx {
|
|
mux {
|
|
pins = "gpio19";
|
|
function = "wcn_sw";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
&reserved_memory {
|
|
cnss_wlan_mem: cnss_wlan_region {
|
|
compatible = "shared-dma-pool";
|
|
alloc-ranges = <0x0 0x00000000 0x0 0xffffffff>;
|
|
reusable;
|
|
alignment = <0x0 0x400000>;
|
|
size = <0x0 0x2000000>;
|
|
};
|
|
};
|
|
|
|
&soc {
|
|
wlan_kiwi: qcom,cnss-kiwi@b0000000 {
|
|
compatible = "qcom,cnss-kiwi";
|
|
reg = <0xb0000000 0x10000>;
|
|
reg-names = "smmu_iova_ipa";
|
|
qcom,wlan-sw-ctrl-gpio = <&tlmm 19 0>;
|
|
|
|
supported-ids = <0x1107>;
|
|
wlan-en-gpio = <&tlmm 16 0>;
|
|
qcom,bt-en-gpio = <&pm8550ve_f_gpios 3 0>;
|
|
qcom,sw-ctrl-gpio = <&tlmm 18 0>;
|
|
/* List of GPIOs to be setup for interrupt wakeup capable */
|
|
mpm_wake_set_gpios = <18 19>;
|
|
pinctrl-names = "wlan_en_active", "wlan_en_sleep", "sw_ctrl",
|
|
"sw_ctrl_wl_cx";
|
|
pinctrl-0 = <&cnss_wlan_en_active>;
|
|
pinctrl-1 = <&cnss_wlan_en_sleep>;
|
|
pinctrl-2 = <&cnss_wlan_sw_ctrl>;
|
|
pinctrl-3 = <&cnss_wlan_sw_ctrl_wl_cx>;
|
|
qcom,wlan;
|
|
qcom,wlan-rc-num = <0>;
|
|
qcom,wlan-ramdump-dynamic = <0x780000>;
|
|
cnss-enable-self-recovery;
|
|
qcom,wlan-cbc-enabled;
|
|
use-pm-domain;
|
|
qcom,same-dt-multi-dev;
|
|
/* For AOP communication, use direct QMP instead of mailbox */
|
|
qcom,qmp = <&aoss_qmp>;
|
|
|
|
vdd-wlan-io-supply = <&L3F>;
|
|
qcom,vdd-wlan-io-config = <1800000 1800000 0 0 0>;
|
|
vdd-wlan-io12-supply = <&L2F>;
|
|
qcom,vdd-wlan-io12-config = <1200000 1200000 0 0 0>;
|
|
vdd-wlan-supply = <&S5F>;
|
|
qcom,vdd-wlan-config = <932000 1000000 0 0 0>;
|
|
vdd-wlan-aon-supply = <&S4D>;
|
|
qcom,vdd-wlan-aon-config = <976000 1036000 0 0 0>;
|
|
vdd-wlan-dig-supply = <&S1D>;
|
|
qcom,vdd-wlan-dig-config = <916000 1100000 0 0 0>;
|
|
vdd-wlan-rfa1-supply = <&S3G>;
|
|
qcom,vdd-wlan-rfa1-config = <1864000 2000000 0 0 0>;
|
|
vdd-wlan-rfa2-supply = <&S7I>;
|
|
qcom,vdd-wlan-rfa2-config = <1316000 1340000 0 0 0>;
|
|
vdd-wlan-ant-share-supply = <&L6K>;
|
|
qcom,vdd-wlan-ant-share-config = <1800000 1800000 0 0 0>;
|
|
|
|
qcom,vreg_pdc_map =
|
|
"s5f", "bb",
|
|
"s4d", "bb",
|
|
"s3g", "rf",
|
|
"s7i", "rf",
|
|
"s1d", "rf";
|
|
|
|
qcom,pmu_vreg_map =
|
|
"VDD095_MX_PMU", "s4d",
|
|
"VDD095_PMU", "s5f",
|
|
"VDD_PMU_AON_I", "s1d",
|
|
"VDD095_PMU_BT", "s1d",
|
|
"VDD09_PMU_RFA_I", "s1d",
|
|
"VDD13_PMU_PCIE_I", "s7i",
|
|
"VDD13_PMU_RFA_I", "s7i",
|
|
"VDD19_PMU_PCIE_I", "s3g",
|
|
"VDD19_PMU_RFA_I", "s3g";
|
|
|
|
qcom,pdc_init_table =
|
|
"{class: wlan_pdc, ss: rf, res: s3g.v, upval: 1856}",
|
|
"{class: wlan_pdc, ss: rf, res: s3g.v, dwnval: 1844}",
|
|
"{class: wlan_pdc, ss: rf, res: s7i.v, upval: 1316}",
|
|
"{class: wlan_pdc, ss: rf, res: s7i.v, dwnval: 972}",
|
|
"{class: wlan_pdc, ss: rf, res: s1d.m, enable: 1}",
|
|
"{class: wlan_pdc, ss: rf, res: s1d.v, enable: 1}",
|
|
"{class: wlan_pdc, ss: rf, res: s1d.v, upval: 916}",
|
|
"{class: wlan_pdc, ss: rf, res: s1d.v, dwnval: 880}",
|
|
"{class: wlan_pdc, ss: bb, res: s4d.v, upval: 976}",
|
|
"{class: wlan_pdc, ss: bb, res: s4d.v, dwnval: 536}",
|
|
"{class: wlan_pdc, ss: bb, res: s5f.m, enable: 1}",
|
|
"{class: wlan_pdc, ss: bb, res: s5f.v, enable: 1}",
|
|
"{class: wlan_pdc, ss: bb, res: s5f.v, upval: 932}",
|
|
"{class: wlan_pdc, ss: bb, res: s5f.v, dwnval: 444}";
|
|
};
|
|
};
|
|
|
|
&pcie0_rp {
|
|
|
|
cnss_pci0: cnss_pci0 {
|
|
reg = <0 0 0 0 0>;
|
|
qcom,iommu-group = <&cnss_pci_iommu_group0>;
|
|
memory-region = <&cnss_wlan_mem &cnss_pci0_iommu_region_partition>;
|
|
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
|
|
cnss_pci0_iommu_region_partition: cnss_pci0_iommu_region_partition {
|
|
/* address-cells =3 size-cells=2 from sun-pcie.dtsi */
|
|
iommu-addresses = <&cnss_pci0 0x0 0x0 0x0 0x0 0xa0000000>,
|
|
<&cnss_pci0 0x0 0x0 0xB0000000 0x0 0x50000000>;
|
|
};
|
|
|
|
cnss_pci_iommu_group0: cnss_pci_iommu_group0 {
|
|
qcom,iommu-msi-size = <0x1000>;
|
|
qcom,iommu-geometry = <0xa0000000 0x10010000>;
|
|
qcom,iommu-dma = "fastmap";
|
|
qcom,iommu-pagetable = "coherent";
|
|
qcom,iommu-faults = "stall-disable", "HUPCF",
|
|
"non-fatal";
|
|
};
|
|
};
|
|
};
|