diff --git a/Kbuild b/Kbuild index 7b651b7c..55a2d664 100644 --- a/Kbuild +++ b/Kbuild @@ -11,6 +11,21 @@ dtbo-y += pineapple-kiwi-cnss.dtbo dtbo-y += pineapplep-hdk-kiwi-cnss.dtbo endif +ifeq ($(CONFIG_ARCH_X1E80100),y) +dtbo-y += x1e80100-kiwi-cnss.dtbo +endif + +ifeq ($(CONFIG_ARCH_PARROT),y) +dtbo-y += parrot-idp-wcn3990.dtbo +dtbo-y += parrot-idp-wcn6750.dtbo +dtbo-y += parrot-qrd-wcn3990.dtbo +dtbo-y += parrot-qrd-wcn6750.dtbo +dtbo-y += parrot-atp-wcn3990.dtbo +dtbo-y += parrot-rumi-wcn3990.dtbo +dtbo-y += parrot-idp-wcn6755.dtbo +dtbo-y += parrot-qrd-wcn6755.dtbo +endif + always-y := $(dtb-y) $(dtbo-y) subdir-y := $(dts-dirs) clean-files := *.dtb *.dtbo diff --git a/bindings/cnss-wlan.yaml b/bindings/cnss-wlan.yaml index e2ef1e30..20a9b7cb 100644 --- a/bindings/cnss-wlan.yaml +++ b/bindings/cnss-wlan.yaml @@ -211,6 +211,9 @@ properties: qcom,bus-bw-cfg: description: Bus bandwidth voting data. + wlan-txrx-intr-cpumask: + description: cpumask for wlan tx rx interrupt affinity + qcom,tcs_offset_int_pow_amp_vreg: description: | TCS CMD register offset for Voltage diff --git a/parrot-atp-wcn3990.dts b/parrot-atp-wcn3990.dts new file mode 100644 index 00000000..5bff1263 --- /dev/null +++ b/parrot-atp-wcn3990.dts @@ -0,0 +1,17 @@ +// SPDX-License-Identifier: BSD-3-Clause + +/* + * Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved. + */ + +/dts-v1/; +/plugin/; + +#include "parrot-wcn3990.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. Parrot ATP"; + compatible = "qcom,parrot", "qcom,parrot-atp", "qcom,atp"; + qcom,msm-id = <537 0x10000>, <583 0x10000>, <613 0x10000>, <631 0x10000>, <633 0x10000>, <634 0x10000>, <638 0x10000>, <663 0x10000>; + qcom,board-id = <33 0>; +}; diff --git a/parrot-idp-wcn3990.dts b/parrot-idp-wcn3990.dts new file mode 100644 index 00000000..fa4f3362 --- /dev/null +++ b/parrot-idp-wcn3990.dts @@ -0,0 +1,17 @@ +// SPDX-License-Identifier: BSD-3-Clause + +/* + * Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved. + */ + +/dts-v1/; +/plugin/; + +#include "parrot-wcn3990.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. Parrot IDP"; + compatible = "qcom,parrot", "qcom,parrot-idp", "qcom,idp"; + qcom,msm-id = <537 0x10000>, <583 0x10000>, <613 0x10000>, <631 0x10000>, <633 0x10000>, <634 0x10000>, <638 0x10000>, <663 0x10000>; + qcom,board-id = <34 1>, <34 3>, <34 0x601>, <34 0x603>; +}; diff --git a/parrot-idp-wcn6750.dts b/parrot-idp-wcn6750.dts new file mode 100644 index 00000000..edc24ef1 --- /dev/null +++ b/parrot-idp-wcn6750.dts @@ -0,0 +1,17 @@ +// SPDX-License-Identifier: BSD-3-Clause + +/* + * Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved. + */ + +/dts-v1/; +/plugin/; + +#include "parrot-wcn6750.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. Parrot IDP"; + compatible = "qcom,parrot", "qcom,parrot-idp", "qcom,idp"; + qcom,msm-id = <537 0x10000>, <583 0x10000>, <613 0x10000>, <631 0x10000>, <633 0x10000>, <634 0x10000>, <638 0x10000>, <663 0x10000>; + qcom,board-id = <34 0>, <34 2>, <34 4>, <34 0x600>, <34 0x602>, <34 0x604>; +}; diff --git a/parrot-idp-wcn6755.dts b/parrot-idp-wcn6755.dts new file mode 100644 index 00000000..296aa5cd --- /dev/null +++ b/parrot-idp-wcn6755.dts @@ -0,0 +1,17 @@ +// SPDX-License-Identifier: BSD-3-Clause + +/* + * Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved. + */ + +/dts-v1/; +/plugin/; + +#include "parrot-wcn6755.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. Parrot WCN6755 IDP"; + compatible = "qcom,parrot", "qcom,parrot-idp", "qcom,idp"; + qcom,msm-id = <537 0x10000>, <583 0x10000>, <613 0x10000>, <631 0x10000>, <633 0x10000>, <634 0x10000>, <638 0x10000>, <663 0x10000>; + qcom,board-id = <34 5>, <34 6>; +}; diff --git a/parrot-qrd-wcn3990.dts b/parrot-qrd-wcn3990.dts new file mode 100644 index 00000000..fc81b8fd --- /dev/null +++ b/parrot-qrd-wcn3990.dts @@ -0,0 +1,17 @@ +// SPDX-License-Identifier: BSD-3-Clause + +/* + * Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved. + */ + +/dts-v1/; +/plugin/; + +#include "parrot-wcn3990.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. Parrot QRD"; + compatible = "qcom,parrot", "qcom,parrot-qrd", "qcom,qrd"; + qcom,msm-id = <537 0x10000>, <583 0x10000>, <613 0x10000>, <631 0x10000>, <633 0x10000>, <634 0x10000>, <638 0x10000>, <663 0x10000>; + qcom,board-id = <0x1000B 0>, <0x1000B 0x600>; +}; diff --git a/parrot-qrd-wcn6750.dts b/parrot-qrd-wcn6750.dts new file mode 100644 index 00000000..9fedaf16 --- /dev/null +++ b/parrot-qrd-wcn6750.dts @@ -0,0 +1,17 @@ +// SPDX-License-Identifier: BSD-3-Clause + +/* + * Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved. + */ + +/dts-v1/; +/plugin/; + +#include "parrot-wcn6750.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. Parrot QRD"; + compatible = "qcom,parrot", "qcom,parrot-qrd", "qcom,qrd"; + qcom,msm-id = <537 0x10000>, <583 0x10000>, <613 0x10000>, <631 0x10000>, <633 0x10000>, <634 0x10000>, <638 0x10000>, <663 0x10000>; + qcom,board-id = <0x1000B 1>, <0x1000B 0x601>; +}; diff --git a/parrot-qrd-wcn6755.dts b/parrot-qrd-wcn6755.dts new file mode 100644 index 00000000..8babcf90 --- /dev/null +++ b/parrot-qrd-wcn6755.dts @@ -0,0 +1,17 @@ +// SPDX-License-Identifier: BSD-3-Clause + +/* + * Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved. + */ + +/dts-v1/; +/plugin/; + +#include "parrot-wcn6755.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. Parrot WCN6755 QRD"; + compatible = "qcom,parrot", "qcom,parrot-qrd", "qcom,qrd"; + qcom,msm-id = <537 0x10000>, <583 0x10000>, <613 0x10000>, <631 0x10000>, <633 0x10000>, <634 0x10000>, <638 0x10000>, <663 0x10000>; + qcom,board-id = <0x1000B 2>; +}; diff --git a/parrot-rumi-wcn3990.dts b/parrot-rumi-wcn3990.dts new file mode 100644 index 00000000..f48b5bb7 --- /dev/null +++ b/parrot-rumi-wcn3990.dts @@ -0,0 +1,17 @@ +// SPDX-License-Identifier: BSD-3-Clause + +/* + * Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved. + */ + +/dts-v1/; +/plugin/; + +#include "parrot-wcn3990.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. Parrot RUMI"; + compatible = "qcom,parrot", "qcom,parrot-rumi", "qcom,rumi"; + qcom,msm-id = <537 0x10000>, <583 0x10000>, <613 0x10000>, <631 0x10000>, <633 0x10000>, <634 0x10000>, <638 0x10000>, <663 0x10000>; + qcom,board-id = <0x1000F 0>; +}; diff --git a/parrot-wcn3990.dtsi b/parrot-wcn3990.dtsi new file mode 100644 index 00000000..34b0bbe1 --- /dev/null +++ b/parrot-wcn3990.dtsi @@ -0,0 +1,83 @@ +// SPDX-License-Identifier: BSD-3-Clause + +/* + * Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved. + */ + +#include +#include + +&reserved_memory { + wlan_fw_mem: wlan_fw_region@82a00000 { + no-map; + reg = <0x0 0x82a00000 0x0 0x300000>; + }; +}; + +&soc { + wpss_pas: remoteproc-wpss@8a00000 { + firmware-name = "adrastea/wpss.mdt"; + }; + + icnss: qcom,icnss@22800000 { + compatible = "qcom,icnss"; + reg = <0x22800000 0x800000>; + reg-names = "membase"; + qcom,rproc-handle = <&wpss_pas>; + iommus = <&apps_smmu 0x4c0 0x1>; + interrupts = , + , + , + , + , + , + , + , + , + , + , + ; + qcom,iommu-dma = "fastmap"; + qcom,iommu-faults = "stall-disable", "HUPCF", "non-fatal"; + qcom,iommu-dma-addr-pool = <0xa0000000 0x10000000>; + qcom,iommu-geometry = <0xa0000000 0x10000000>; + qcom,fw-prefix; + qcom,wlan; + bdf-download-support; + wpss-support-enable; + qcom,wlan-msa-fixed-region = <&wlan_fw_mem>; + vdd-cx-mx-supply = <&L11B>; + vdd-1.8-xo-supply = <&L1E>; + vdd-1.3-rfa-supply = <&L14B>; + vdd-3.3-ch1-supply = <&L11E>; + vdd-3.3-ch0-supply = <&L10E>; + qcom,vdd-cx-mx-config = <0 0>; + qcom,vdd-3.3-ch1-config = <3000000 3312000>; + qcom,vdd-3.3-ch0-config = <3000000 3312000>; + + qcom,smem-states = <&smp2p_wlan_1_out 0>; + qcom,smem-state-names = "wlan-smp2p-out"; + + qcom,smp2p_map_wlan_1_in { + interrupts-extended = <&smp2p_wlan_1_in 0 0>, + <&smp2p_wlan_1_in 1 0>; + interrupt-names = "qcom,smp2p-force-fatal-error", + "qcom,smp2p-early-crash-ind"; + }; + + }; + + bluetooth: bt_wcn3990 { + compatible = "qcom,wcn3990"; + qcom,bt-sw-ctrl-gpio = <&tlmm 61 GPIO_ACTIVE_HIGH>; + qcom,bt-vdd-io-supply = <&L22B>; /* IO */ + qcom,bt-vdd-core-supply = <&L14B>; /* RFA */ + qcom,bt-vdd-pa-supply = <&L10E>; /* CH0 */ + qcom,bt-vdd-xtal-supply = <&L1E>; /* XO */ + + qcom,bt-vdd-io-config = <1700000 1900000 1 0>; + qcom,bt-vdd-core-config = <1304000 1304000 1 0>; + qcom,bt-vdd-pa-config = <3000000 3312000 1 0>; + qcom,bt-vdd-xtal-config = <1700000 1900000 1 0>; + }; +}; diff --git a/parrot-wcn6750.dtsi b/parrot-wcn6750.dtsi new file mode 100644 index 00000000..e9d61dae --- /dev/null +++ b/parrot-wcn6750.dtsi @@ -0,0 +1,163 @@ +// SPDX-License-Identifier: BSD-3-Clause + +/* + * Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved. + */ + +#include + +&soc { + bluetooth: bt_wcn6750 { + compatible = "qcom,wcn6750-bt"; + pinctrl-names = "default"; + pinctrl-0 = <&bt_en_sleep>; + qcom,bt-reset-gpio = <&tlmm 35 0>; /* BT_EN */ + qcom,bt-sw-ctrl-gpio = <&tlmm 61 0>; /* SW_CTRL */ + qcom,wl-reset-gpio = <&tlmm 36 0>; /* WL_EN */ + tsens = "quiet-therm"; + + qcom,bt-vdd-io-supply = <&L22B>; /* IO */ + qcom,bt-vdd-aon-supply = <&S7B>; + qcom,bt-vdd-dig-supply = <&S7B>; /* BT_CX_MX */ + qcom,bt-vdd-rfacmn-supply = <&S7B>; + qcom,bt-vdd-rfa-0p8-supply = <&S7B>; + qcom,bt-vdd-rfa1-supply = <&S8E>; /*RFA 1p7*/ + qcom,bt-vdd-rfa2-supply = <&S8B>; /*RFA 1p2*/ + qcom,bt-vdd-ipa-2p2-supply = <&S9B>; /*IPA 2p2*/ + //qcom,bt-vdd-asd-supply = <&L11C>; + + /* max voltage are set to regulator max voltage supported */ + qcom,bt-vdd-io-config = <1800000 2000000 0 1>; + qcom,bt-vdd-aon-config = <824000 1174000 0 1>; + qcom,bt-vdd-dig-config = <824000 1174000 0 1>; + qcom,bt-vdd-rfacmn-config = <824000 1174000 0 1>; + qcom,bt-vdd-rfa-0p8-config = <824000 1174000 0 1>; + qcom,bt-vdd-rfa1-config = <1872000 2040000 0 1>; + qcom,bt-vdd-rfa2-config = <1256000 1654000 0 1>; + qcom,bt-vdd-ipa-2p2-config = <2200000 2208000 0 1>; + //qcom,bt-vdd-asd-config = <2800000 3544000 0 1>; + }; + + qcom,smp2p-wpss { + smp2p_wlan_2_in: qcom,smp2p-wlan-2-in { + qcom,entry-name = "wlan_soc_wake"; + interrupt-controller; + #interrupt-cells = <2>; + }; + + smp2p_wlan_2_out: qcom,smp2p-wlan-2-out { + qcom,entry-name = "wlan_soc_wake"; + #qcom,smem-state-cells = <1>; + }; + + smp2p_wlan_3_out: qcom,smp2p-wlan-3-out { + qcom,entry-name = "wlan_ep_power_save"; + #qcom,smem-state-cells = <1>; + }; + }; + + wpss_pas: remoteproc-wpss@8a00000 { + firmware-name = "qca6750/wpss.mdt"; + }; + + icnss2: qcom,wcn6750 { + compatible = "qcom,wcn6750"; + reg = <0x17210040 0x0>, + <0xb0000000 0x10000>; + reg-names = "msi_addr", "smmu_iova_ipa"; + qcom,rproc-handle = <&wpss_pas>; + iommus = <&apps_smmu 0x1c00 0x1>; + interrupts = , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + ; + + qcom,iommu-dma = "fastmap"; + qcom,iommu-faults = "stall-disable", "HUPCF", "non-fatal"; + qcom,iommu-dma-addr-pool = <0xa0000000 0x10000000>; + qcom,iommu-geometry = <0xa0000000 0x10010000>; + dma-coherent; + qcom,fw-prefix; + qcom,wlan; + tsens = "quiet-therm"; + qcom,wlan-msa-fixed-region = <&wlan_fw_mem>; + vdd-cx-mx-supply = <&S7B>; + qcom,vdd-cx-mx-config = <880000 1120000 0 0 1>; + vdd-1.8-xo-supply = <&S8E>; + qcom,vdd-1.8-xo-config = <1872000 2040000 0 0 0>; + vdd-1.3-rfa-supply = <&S8B>; + qcom,vdd-1.3-rfa-config = <1256000 1500000 0 0 0>; + + qcom,smem-states = <&smp2p_wlan_1_out 0>, + <&smp2p_wlan_2_out 0>, + <&smp2p_wlan_3_out 0>; + qcom,smem-state-names = "wlan-smp2p-out", + "wlan-soc-wake-smp2p-out", + "wlan-ep-powersave-smp2p-out"; + + mboxes = <&qmp_aop 0>; + qcom,vreg_ol_cpr ="s7b"; + + icnss_cdev_apss: qcom,icnss_cdev1 { + #cooling-cells = <2>; + }; + + icnss_cdev_wpss: qcom,icnss_cdev2 { + #cooling-cells = <2>; + }; + + qcom,smp2p_map_wlan_1_in { + interrupts-extended = <&smp2p_wlan_1_in 0 0>, + <&smp2p_wlan_1_in 1 0>; + interrupt-names = "qcom,smp2p-force-fatal-error", + "qcom,smp2p-early-crash-ind"; + }; + + qcom,smp2p_map_wlan_2_in { + interrupts-extended = <&smp2p_wlan_2_in 0 0>; + interrupt-names = "qcom,smp2p-soc-wake-ack"; + }; + }; +}; + +&qupv3_se2_i2c { + status = "ok"; + nq@64 { + compatible = "rtc6226"; + reg = <0x64>; + fmint-gpio = <&tlmm 105 0>; + vdd-supply = <&L5E>; + rtc6226,vdd-supply-voltage = <2800000 2800000>; + rtc6226,vdd-load = <15000>; + vio-supply = <&L22B>; + rtc6226,vio-supply-voltage = <1800000 1800000>; + }; +}; diff --git a/parrot-wcn6755.dtsi b/parrot-wcn6755.dtsi new file mode 100644 index 00000000..e0249a16 --- /dev/null +++ b/parrot-wcn6755.dtsi @@ -0,0 +1,164 @@ +// SPDX-License-Identifier: BSD-3-Clause + +/* + * Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved. + */ + +#include + +&soc { + bluetooth: bt_wcn6750 { + compatible = "qcom,wcn6750-bt"; + pinctrl-names = "default"; + pinctrl-0 = <&bt_en_sleep>; + qcom,bt-reset-gpio = <&tlmm 35 0>; /* BT_EN */ + qcom,bt-sw-ctrl-gpio = <&tlmm 61 0>; /* SW_CTRL */ + qcom,wl-reset-gpio = <&tlmm 36 0>; /* WL_EN */ + tsens = "quiet-therm"; + + qcom,bt-vdd-io-supply = <&L22B>; /* IO */ + qcom,bt-vdd-aon-supply = <&S7B>; + qcom,bt-vdd-dig-supply = <&S7B>; /* BT_CX_MX */ + qcom,bt-vdd-rfacmn-supply = <&S7B>; + qcom,bt-vdd-rfa-0p8-supply = <&S7B>; + qcom,bt-vdd-rfa1-supply = <&S8E>; /*RFA 1p7*/ + qcom,bt-vdd-rfa2-supply = <&S8B>; /*RFA 1p2*/ + qcom,bt-vdd-ipa-2p2-supply = <&S9B>; /*IPA 2p2*/ + //qcom,bt-vdd-asd-supply = <&L11C>; + + /* max voltage are set to regulator max voltage supported */ + qcom,bt-vdd-io-config = <1800000 2000000 0 1>; + qcom,bt-vdd-aon-config = <824000 1174000 0 1>; + qcom,bt-vdd-dig-config = <824000 1174000 0 1>; + qcom,bt-vdd-rfacmn-config = <824000 1174000 0 1>; + qcom,bt-vdd-rfa-0p8-config = <824000 1174000 0 1>; + qcom,bt-vdd-rfa1-config = <1872000 2040000 0 1>; + qcom,bt-vdd-rfa2-config = <1256000 1654000 0 1>; + qcom,bt-vdd-ipa-2p2-config = <2200000 2208000 0 1>; + //qcom,bt-vdd-asd-config = <2800000 3544000 0 1>; + }; + + qcom,smp2p-wpss { + smp2p_wlan_2_in: qcom,smp2p-wlan-2-in { + qcom,entry-name = "wlan_soc_wake"; + interrupt-controller; + #interrupt-cells = <2>; + }; + + smp2p_wlan_2_out: qcom,smp2p-wlan-2-out { + qcom,entry-name = "wlan_soc_wake"; + #qcom,smem-state-cells = <1>; + }; + + smp2p_wlan_3_out: qcom,smp2p-wlan-3-out { + qcom,entry-name = "wlan_ep_power_save"; + #qcom,smem-state-cells = <1>; + }; + }; + + wpss_pas: remoteproc-wpss@8a00000 { + firmware-name = "qca6755/wpss.mdt"; + }; + + icnss2: qcom,wcn6750 { + compatible = "qcom,wcn6750"; + reg = <0x17210040 0x0>, + <0xb0000000 0x10000>; + reg-names = "msi_addr", "smmu_iova_ipa"; + qcom,rproc-handle = <&wpss_pas>; + iommus = <&apps_smmu 0x1c00 0x1>; + interrupts = , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + ; + + qcom,iommu-dma = "fastmap"; + qcom,iommu-faults = "stall-disable", "HUPCF", "non-fatal"; + qcom,iommu-dma-addr-pool = <0xa0000000 0x10000000>; + qcom,iommu-geometry = <0xa0000000 0x10010000>; + dma-coherent; + qcom,fw-prefix; + qcom,wlan; + tsens = "quiet-therm"; + wcn-hw-version = "qca6755"; + qcom,wlan-msa-fixed-region = <&wlan_fw_mem>; + vdd-cx-mx-supply = <&S7B>; + qcom,vdd-cx-mx-config = <880000 1120000 0 0 1>; + vdd-1.8-xo-supply = <&S8E>; + qcom,vdd-1.8-xo-config = <1872000 2040000 0 0 0>; + vdd-1.3-rfa-supply = <&S8B>; + qcom,vdd-1.3-rfa-config = <1256000 1500000 0 0 0>; + + qcom,smem-states = <&smp2p_wlan_1_out 0>, + <&smp2p_wlan_2_out 0>, + <&smp2p_wlan_3_out 0>; + qcom,smem-state-names = "wlan-smp2p-out", + "wlan-soc-wake-smp2p-out", + "wlan-ep-powersave-smp2p-out"; + + mboxes = <&qmp_aop 0>; + qcom,vreg_ol_cpr ="s7b"; + + icnss_cdev_apss: qcom,icnss_cdev1 { + #cooling-cells = <2>; + }; + + icnss_cdev_wpss: qcom,icnss_cdev2 { + #cooling-cells = <2>; + }; + + qcom,smp2p_map_wlan_1_in { + interrupts-extended = <&smp2p_wlan_1_in 0 0>, + <&smp2p_wlan_1_in 1 0>; + interrupt-names = "qcom,smp2p-force-fatal-error", + "qcom,smp2p-early-crash-ind"; + }; + + qcom,smp2p_map_wlan_2_in { + interrupts-extended = <&smp2p_wlan_2_in 0 0>; + interrupt-names = "qcom,smp2p-soc-wake-ack"; + }; + }; +}; + +&qupv3_se2_i2c { + status = "ok"; + nq@64 { + compatible = "rtc6226"; + reg = <0x64>; + fmint-gpio = <&tlmm 105 0>; + vdd-supply = <&L5E>; + rtc6226,vdd-supply-voltage = <2800000 2800000>; + rtc6226,vdd-load = <15000>; + vio-supply = <&L22B>; + rtc6226,vio-supply-voltage = <1800000 1800000>; + }; +}; diff --git a/sun-kiwi-cnss-v8.dtsi b/sun-kiwi-cnss-v8.dtsi index bd28a0cd..8c8fce19 100644 --- a/sun-kiwi-cnss-v8.dtsi +++ b/sun-kiwi-cnss-v8.dtsi @@ -187,6 +187,11 @@ "{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}"; + + /* cpu mask used for wlan tx rx interrupt affinity + * + */ + wlan-txrx-intr-cpumask = <0x3 0x30>; }; }; diff --git a/sun-kiwi-cnss.dtsi b/sun-kiwi-cnss.dtsi index 0ad47060..f2e1b5a1 100644 --- a/sun-kiwi-cnss.dtsi +++ b/sun-kiwi-cnss.dtsi @@ -189,6 +189,11 @@ "{class: wlan_pdc, ss: bb, res: s4j.v, enable: 1}", "{class: wlan_pdc, ss: bb, res: s4j.v, upval: 932}", "{class: wlan_pdc, ss: bb, res: s4j.v, dwnval: 444}"; + + /* cpu mask used for wlan tx rx interrupt affinity + * + */ + wlan-txrx-intr-cpumask = <0x3 0x30>; }; }; diff --git a/sun-peach-cnss-v8.dtsi b/sun-peach-cnss-v8.dtsi index c51b6b36..3e2b6ac8 100644 --- a/sun-peach-cnss-v8.dtsi +++ b/sun-peach-cnss-v8.dtsi @@ -193,6 +193,11 @@ "{class: wlan_pdc, ss: rf, res: s5f.v, enable: 1}", "{class: wlan_pdc, ss: rf, res: s5f.v, upval: 876}", "{class: wlan_pdc, ss: rf, res: s5f.v, dwnval: 876}"; + + /* cpu mask used for wlan tx rx interrupt affinity + * + */ + wlan-txrx-intr-cpumask = <0x3 0x30>; }; }; diff --git a/sun-peach-cnss.dtsi b/sun-peach-cnss.dtsi index 38520f13..234feb43 100644 --- a/sun-peach-cnss.dtsi +++ b/sun-peach-cnss.dtsi @@ -192,6 +192,11 @@ "{class: wlan_pdc, ss: rf, res: s4j.v, enable: 1}", "{class: wlan_pdc, ss: rf, res: s4j.v, upval: 876}", "{class: wlan_pdc, ss: rf, res: s4j.v, dwnval: 876}"; + + /* cpu mask used for wlan tx rx interrupt affinity + * + */ + wlan-txrx-intr-cpumask = <0x3 0x30>; }; }; diff --git a/x1e80100-kiwi-cnss.dts b/x1e80100-kiwi-cnss.dts new file mode 100644 index 00000000..87cb03c8 --- /dev/null +++ b/x1e80100-kiwi-cnss.dts @@ -0,0 +1,17 @@ +// SPDX-License-Identifier: BSD-3-Clause + +/* + * Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved. + */ + +/dts-v1/; +/plugin/; + +#include "x1e80100-kiwi-cnss.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. X1E80100 SoC"; + compatible = "qcom,x1e80100"; + qcom,msm-id = <0x22b 0x10000>, <0x22b 0x20000>; + qcom,board-id = <0x28 0x0>; +}; diff --git a/x1e80100-kiwi-cnss.dtsi b/x1e80100-kiwi-cnss.dtsi new file mode 100644 index 00000000..2d72d395 --- /dev/null +++ b/x1e80100-kiwi-cnss.dtsi @@ -0,0 +1,105 @@ +// SPDX-License-Identifier: BSD-3-Clause + +/* + * Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved. + */ + +#include + +&tlmm { + cnss_pins { + cnss_wlan_en_active: cnss_wlan_en_active { + mux { + pins = "gpio117"; + function = "gpio"; + }; + + config { + pins = "gpio117"; + drive-strength = <16>; + output-high; + bias-pull-up; + }; + }; + + cnss_wlan_en_sleep: cnss_wlan_en_sleep { + mux { + pins = "gpio117"; + function = "gpio"; + }; + + config { + pins = "gpio117"; + drive-strength = <2>; + output-low; + bias-pull-down; + }; + }; + }; +}; + +&reserved_memory { + cnss_wlan_mem: cnss_wlan_region { + compatible = "shared-dma-pool"; + alloc-ranges = <0x0 0x00000000 0x0 0xffffffff>; + reusable; + alignment = <0x0 0x400000>; + size = <0x0 0x4000000>; + }; +}; + +&soc { + wlan_kiwi: qcom,cnss-kiwi@b0000000 { + compatible = "qcom,cnss-kiwi"; + reg = <0xb0000000 0x10000>; + reg-names = "smmu_iova_ipa"; + qcom,wlan-cbc-enabled; + supported-ids = <0x1107>; + wlan-en-gpio = <&tlmm 117 0>; + qcom,bt-en-gpio = <&tlmm 116 0>; + pinctrl-names = "wlan_en_active", "wlan_en_sleep"; + pinctrl-0 = <&cnss_wlan_en_active>; + pinctrl-1 = <&cnss_wlan_en_sleep>; + qcom,wlan; + qcom,wlan-rc-num = <4>; + qcom,wlan-ramdump-dynamic = <0x780000>; + cnss-enable-self-recovery; + use-pm-domain; + qcom,same-dt-multi-dev; + qcom,qmp = <&aoss_qmp>; + vdd-wlan-m2-supply = <&vreg_wlan_3p3>; + qcom,vdd-wlan-m2-config = <3300000 3300000 0 0 0>; + vdd-wlan-io-supply = <&L15B>; + qcom,vdd-wlan-io-config = <1800000 1800000 0 0 0>; + /* interconnect is not set */ + }; +}; + +&pcie4_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 { + 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>; + /* bypass due to SMMU V3 is NOT well supported yet */ + qcom,iommu-dma = "bypass"; + qcom,iommu-pagetable = "coherent"; + qcom,iommu-faults = + "stall-disable", "HUPCF", "non-fatal"; + }; + }; +};