diff --git a/Kbuild b/Kbuild index f11d6541..99a54b00 100644 --- a/Kbuild +++ b/Kbuild @@ -1,3 +1,8 @@ +ifeq ($(CONFIG_ARCH_CANOE),y) +dtbo-y += canoe-kiwi-cnss.dtbo +dtbo-y += canoe-peach-cnss.dtbo +endif + ifeq ($(CONFIG_ARCH_SUN),y) dtbo-y += sun-kiwi-cnss.dtbo dtbo-y += sun-kiwi-cnss-v8.dtbo diff --git a/canoe-kiwi-cnss.dtsi b/canoe-kiwi-cnss.dtsi index e0dec929..1068fdcc 100644 --- a/canoe-kiwi-cnss.dtsi +++ b/canoe-kiwi-cnss.dtsi @@ -96,16 +96,47 @@ vdd-wlan-io12-supply = <&L3G>; qcom,vdd-wlan-io12-config = <1200000 1200000 0 0 1>; vdd-wlan-cx-supply = <&S1J>; - qcom,vdd-wlan-cx-config = <932000 1000000 0 0 1>; + qcom,vdd-wlan-cx-config = <968000 1000000 0 0 1>; vdd-wlan-dig-supply = <&S2J>; - qcom,vdd-wlan-dig-config = <916000 1100000 0 0 1>; + qcom,vdd-wlan-dig-config = <1012000 1100000 0 0 1>; vdd-wlan-rfa1-supply = <&S8F>; - qcom,vdd-wlan-rfa1-config = <1864000 2000000 0 0 1>; + qcom,vdd-wlan-rfa1-config = <1900000 2000000 0 0 1>; vdd-wlan-rfa2-supply = <&S7F>; - qcom,vdd-wlan-rfa2-config = <1316000 1400000 0 0 1>; - //TODO: extractor regulator is required or not - // TODO PDC TABLE BUS BW - // PDC MAP AND PMU Vreg Map + qcom,vdd-wlan-rfa2-config = <1352000 1400000 0 0 1>; + vdd-wlan-ant-share-supply = <&L3K>; + qcom,vdd-wlan-ant-share-config = <1200000 1200000 0 0 1>; + vdd-wlan-supply = <&S7G>; + qcom,vdd-wlan-config = <952000 1100000 0 0 1>; + + qcom,vreg_pdc_map = + "S2J1", "bb", + "S1J1", "bb", + "S8F0", "rf", + "S7F0", "rf", + "S7G0", "rf"; + + qcom,pmu_vreg_map = + "VDD095_MX_PMU", "S2J1", + "VDD095_PMU", "S1J1", + "VDD_PMU_AON_I", "S7G0", + "VDD095_PMU_BT", "S7G0", + "VDD09_PMU_RFA_I", "S7G0", + "VDD13_PMU_PCIE_I", "S7F0", + "VDD13_PMU_RFA_I", "S7F0", + "VDD19_PMU_PCIE_I", "S8F0", + "VDD19_PMU_RFA_I", "S8F0"; + + qcom,pdc_init_table = + " {class: wlan_pdc, ss: rf, res: S8F0.v, upval: 1900}", + " {class: wlan_pdc, ss: rf, res: S8F0.v, dwnval: 1860}", + " {class: wlan_pdc, ss: rf, res: S7F0.v, upval: 1352}", + " {class: wlan_pdc, ss: rf, res: S7F0.v, dwnval: 988}", + " {class: wlan_pdc, ss: bb, res: S1J1.v, upval: 968}", + " {class: wlan_pdc, ss: bb, res: S1J1.v, dwnval: 460}", + " {class: wlan_pdc, ss: bb, res: S2J1.m, enable: 1}", + " {class: wlan_pdc, ss: bb, res: S2J1.v, enable: 1}", + " {class: wlan_pdc, ss: rf, res: S7G0.m, enable: 1}", + " {class: wlan_pdc, ss: rf, res: S7G0.v, enable: 1}"; /* cpu mask used for wlan tx rx interrupt affinity * @@ -114,7 +145,7 @@ }; }; -&pcie0_rp { +&pcie_rp { cnss_pci0: cnss_pci0 { reg = <0 0 0 0 0>; @@ -132,7 +163,7 @@ cnss_pci_iommu_group0: cnss_pci_iommu_group0 { qcom,iommu-msi-size = <0x1000>; - qcom,iommu-geometry = <0x98000000 0x18010000>; + qcom,iommu-geometry = <0x0 0x98000000 0x0 0x18010000>; qcom,iommu-dma = "fastmap"; qcom,iommu-pagetable = "coherent"; qcom,iommu-faults = "stall-disable", "HUPCF", diff --git a/canoe-peach-cnss.dtsi b/canoe-peach-cnss.dtsi index 075db596..17f9d1db 100644 --- a/canoe-peach-cnss.dtsi +++ b/canoe-peach-cnss.dtsi @@ -120,6 +120,8 @@ qcom,vdd-wlan-rfa1-config = <1876000 2000000 0 0 1>; vdd-wlan-rfa2-supply = <&S7F>; qcom,vdd-wlan-rfa2-config = <1328000 1340000 0 0 1>; + vdd-wlan-ant-share-supply = <&L3K>; + qcom,vdd-wlan-ant-share-config = <1200000 1200000 0 0 1>; qcom,vreg_pdc_map = "s1j", "bb", @@ -144,9 +146,22 @@ */ wlan-txrx-intr-cpumask = <0x3 0x30>; }; + + wlan_direct_link: qcom,cnss-direct-link { + compatible = "qcom,cnss-direct-link"; + iommus = <&apps_smmu 0x100f 0x0>; + qcom,iommu-group = <&cnss_audio_iommu_group0>; + memory-region = <&direct_link_iommu_region_partition>; + dma-coherent; + + direct_link_iommu_region_partition: direct_link_iommu_region_partition { + iommu-addresses = <&wlan_direct_link 0x0 0x0 0x0 0x18000000>, + <&wlan_direct_link 0x0 0xb0000000 0x0 0x50000000>; + }; + }; }; -&pcie0_rp { +&pcie_rp { cnss_pci0: cnss_pci0 { reg = <0 0 0 0 0>; qcom,iommu-group = <&cnss_audio_iommu_group0>; diff --git a/kera-wcn7750.dtsi b/kera-wcn7750.dtsi index 3ec6e4f7..4ab7aeaa 100644 --- a/kera-wcn7750.dtsi +++ b/kera-wcn7750.dtsi @@ -41,6 +41,13 @@ firmware-name = "wcn7750/wpss.mdt"; }; + icnss2_direct_link_iommu_group0: icnss2_direct_link_iommu_group0 { + qcom,iommu-dma-addr-pool = <0xb0000000 0x10000000>; + qcom,iommu-geometry = <0xb0000000 0x10010000>; + qcom,iommu-dma = "fastmap"; + qcom,iommu-faults = "stall-disable", "HUPCF", "non-fatal"; + }; + icnss2: qcom,wcn7750 { compatible = "qcom,wcn7750"; reg = <0x17110040 0x0>, @@ -85,10 +92,7 @@ , ; - qcom,iommu-dma = "fastmap"; - qcom,iommu-faults = "stall-disable", "HUPCF", "non-fatal"; - qcom,iommu-dma-addr-pool = <0xb0000000 0x10000000>; - qcom,iommu-geometry = <0xb0000000 0x10010000>; + qcom,iommu-group = <&icnss2_direct_link_iommu_group0>; dma-coherent; qcom,fw-prefix; qcom,wlan; @@ -185,4 +189,11 @@ interrupt-names = "qcom,smp2p-soc-wake-ack"; }; }; + + wlan_direct_link: qcom,icnss-direct-link { + compatible = "qcom,icnss-direct-link"; + iommus = <&apps_smmu 0x100f 0x0>; + qcom,iommu-group = <&icnss2_direct_link_iommu_group0>; + dma-coherent; + }; }; diff --git a/sun-peach-cnss-v8.dtsi b/sun-peach-cnss-v8.dtsi index 38350fc9..df47fc5a 100644 --- a/sun-peach-cnss-v8.dtsi +++ b/sun-peach-cnss-v8.dtsi @@ -199,6 +199,20 @@ */ wlan-txrx-intr-cpumask = <0x3 0x30>; }; + + wlan_direct_link: qcom,cnss-direct-link { + compatible = "qcom,cnss-direct-link"; + iommus = <&apps_smmu 0x100f 0x0>; + qcom,iommu-group = <&cnss_audio_iommu_group0>; + memory-region = <&direct_link_iommu_region_partition>; + dma-coherent; + + direct_link_iommu_region_partition: direct_link_iommu_region_partition { + iommu-addresses = <&wlan_direct_link 0x00000000 0x18000000>, + <&wlan_direct_link 0xb0000000 0x50000000>; + }; + + }; }; &pcie0_rp { diff --git a/sun-peach-cnss.dtsi b/sun-peach-cnss.dtsi index ef0efe81..c145ff69 100644 --- a/sun-peach-cnss.dtsi +++ b/sun-peach-cnss.dtsi @@ -198,6 +198,19 @@ */ wlan-txrx-intr-cpumask = <0x3 0x30>; }; + + wlan_direct_link: qcom,cnss-direct-link { + compatible = "qcom,cnss-direct-link"; + iommus = <&apps_smmu 0x100f 0x0>; + qcom,iommu-group = <&cnss_audio_iommu_group0>; + memory-region = <&direct_link_iommu_region_partition>; + dma-coherent; + + direct_link_iommu_region_partition: direct_link_iommu_region_partition { + iommu-addresses = <&wlan_direct_link 0x00000000 0x18000000>, + <&wlan_direct_link 0xb0000000 0x50000000>; + }; + }; }; &pcie0_rp { diff --git a/tuna-kiwi-cnss.dtsi b/tuna-kiwi-cnss.dtsi index 1eed8a92..f0f48637 100644 --- a/tuna-kiwi-cnss.dtsi +++ b/tuna-kiwi-cnss.dtsi @@ -133,39 +133,39 @@ /** ICC Path 1 **/ <0 0>, /* no vote */ /* idle: 0-18 Mbps snoc/anoc: 100 Mhz */ - <2250 1200000>, + <2250 400000>, /* low: 18-60 Mbps snoc/anoc: 100 Mhz */ - <7500 1200000>, + <7500 400000>, /* medium: 60-240 Mbps snoc/anoc: 100 Mhz */ - <30000 1200000>, + <30000 400000>, /* high: 240-1200 Mbps snoc/anoc: 100 Mhz */ - <100000 1200000>, + <100000 400000>, /* very high: > 1200 Mbps snoc/anoc: 403 Mhz */ - <175000 3224000>, + <175000 1612000>, /* ultra high: DBS mode snoc/anoc: 403 Mhz */ - <312500 3224000>, + <312500 1612000>, /* super high: DBS mode snoc/anoc: 533 Mhz */ - <587500 4264000>, + <587500 2171000>, /* low (latency critical): 18-60 Mbps snoc/anoc: 200 Mhz */ - <7500 1600000>, + <7500 800000>, /** ICC Path 2 **/ <0 0>, - /* idle: 0-18 Mbps ddr: 451.2 MHz */ + /* idle: 0-18 Mbps ddr: 547 MHz */ <2250 2188800>, - /* low: 18-60 Mbps ddr: 451.2 MHz */ + /* low: 18-60 Mbps ddr: 547 MHz */ <7500 2188800>, - /* medium: 60-240 Mbps ddr: 451.2 MHz */ + /* medium: 60-240 Mbps ddr: 547 MHz */ <30000 2188800>, - /* high: 240-1200 Mbps ddr: 451.2 MHz */ + /* high: 240-1200 Mbps ddr: 547 MHz */ <100000 2188800>, /* very high: > 1200 Mbps ddr: 1555 MHz */ <175000 6220800>, /* ultra high: DBS mode ddr: 2092 MHz */ - <312500 8368000>, + <312500 8371200>, /* super high: DBS mode ddr: 3.2 GHz */ - <587500 12800000>, - /* low (latency critical): 18-60 Mbps ddr: 451.2 MHz */ + <587500 14745600>, + /* low (latency critical): 18-60 Mbps ddr: 547 MHz */ <7500 2188800>; qcom,pdc_init_table = diff --git a/tuna-wcn7750.dtsi b/tuna-wcn7750.dtsi index 92ed6a70..c0c276c3 100644 --- a/tuna-wcn7750.dtsi +++ b/tuna-wcn7750.dtsi @@ -37,6 +37,13 @@ }; }; + icnss2_direct_link_iommu_group0: icnss2_direct_link_iommu_group0 { + qcom,iommu-dma-addr-pool = <0xb0000000 0x10000000>; + qcom,iommu-geometry = <0xb0000000 0x10010000>; + qcom,iommu-dma = "fastmap"; + qcom,iommu-faults = "stall-disable", "HUPCF", "non-fatal"; + }; + icnss2: qcom,wcn7750 { compatible = "qcom,wcn7750"; reg = <0x17110040 0x0>, @@ -81,10 +88,7 @@ , ; - qcom,iommu-dma = "fastmap"; - qcom,iommu-faults = "stall-disable", "HUPCF", "non-fatal"; - qcom,iommu-dma-addr-pool = <0xb0000000 0x10000000>; - qcom,iommu-geometry = <0xb0000000 0x10010000>; + qcom,iommu-group = <&icnss2_direct_link_iommu_group0>; dma-coherent; qcom,fw-prefix; qcom,wlan; @@ -121,39 +125,39 @@ /** ICC Path 1 **/ <0 0>, /* no vote */ /* idle: 0-18 Mbps snoc/anoc: 100 Mhz */ - <2250 1200000>, + <2250 400000>, /* low: 18-60 Mbps snoc/anoc: 100 Mhz */ - <7500 1200000>, + <7500 400000>, /* medium: 60-240 Mbps snoc/anoc: 100 Mhz */ - <30000 1200000>, + <30000 400000>, /* high: 240-1200 Mbps snoc/anoc: 100 Mhz */ - <100000 1200000>, + <100000 400000>, /* very high: > 1200 Mbps snoc/anoc: 403 Mhz */ - <175000 3224000>, + <175000 1612000>, /* ultra high: DBS mode snoc/anoc: 403 Mhz */ - <312500 3224000>, + <312500 1612000>, /* super high: DBS mode snoc/anoc: 533 Mhz */ - <587500 4264000>, + <587500 2171000>, /* low (latency critical): 18-60 Mbps snoc/anoc: 200 Mhz */ - <7500 1600000>, + <7500 800000>, /** ICC Path 2 **/ <0 0>, - /* idle: 0-18 Mbps ddr: 451.2 MHz */ + /* idle: 0-18 Mbps ddr: 547 MHz */ <2250 2188800>, - /* low: 18-60 Mbps ddr: 451.2 MHz */ + /* low: 18-60 Mbps ddr: 547 MHz */ <7500 2188800>, - /* medium: 60-240 Mbps ddr: 451.2 MHz */ + /* medium: 60-240 Mbps ddr: 547 MHz */ <30000 2188800>, - /* high: 240-1200 Mbps ddr: 451.2 MHz */ + /* high: 240-1200 Mbps ddr: 547 MHz */ <100000 2188800>, /* very high: > 1200 Mbps ddr: 1555 MHz */ <175000 6220800>, /* ultra high: DBS mode ddr: 2092 MHz */ - <312500 8368000>, + <312500 8371200>, /* super high: DBS mode ddr: 3.2 GHz */ - <587500 12800000>, - /* low (latency critical): 18-60 Mbps ddr: 451.2 MHz */ + <587500 14745600>, + /* low (latency critical): 18-60 Mbps ddr: 547 MHz */ <7500 2188800>; icnss_cdev_apss: qcom,icnss_cdev1 { @@ -176,4 +180,11 @@ interrupt-names = "qcom,smp2p-soc-wake-ack"; }; }; + + wlan_direct_link: qcom,icnss-direct-link { + compatible = "qcom,icnss-direct-link"; + iommus = <&apps_smmu 0x100f 0x0>; + qcom,iommu-group = <&icnss2_direct_link_iommu_group0>; + dma-coherent; + }; }; diff --git a/volcano6i-peach-cnss.dtsi b/volcano6i-peach-cnss.dtsi index 7ef1b8e5..01f1468f 100644 --- a/volcano6i-peach-cnss.dtsi +++ b/volcano6i-peach-cnss.dtsi @@ -167,6 +167,10 @@ status = "disabled"; }; +&wpss_mem { + status = "disabled"; +}; + &pcie0_rp { #address-cells = <5>; #size-cells = <0>;