From 8ef6a82f1f550cce999d6e2773caba81f25a6893 Mon Sep 17 00:00:00 2001 From: Kartikey Arora Date: Mon, 20 May 2024 13:01:28 +0530 Subject: [PATCH] ARM: dts: msm: Add opensource wlan device tree support for Netrani Add wcn6750 and wcn3990 parrot dtsi from kernel devicetree to vendor wlan-devicetree and corresponding dts files as part of new wlan teckpack for kernel-6.6 upgrade. Change-Id: I9a48a0731209216800151f21a46727a033cf62cb --- Kbuild | 11 +++ parrot-atp-wcn3990.dts | 17 +++++ parrot-idp-wcn3990.dts | 17 +++++ parrot-idp-wcn6750.dts | 17 +++++ parrot-qrd-wcn3990.dts | 17 +++++ parrot-qrd-wcn6750.dts | 17 +++++ parrot-rumi-wcn3990.dts | 17 +++++ parrot-wcn3990.dtsi | 83 ++++++++++++++++++++ parrot-wcn6750.dtsi | 163 ++++++++++++++++++++++++++++++++++++++++ 9 files changed, 359 insertions(+) create mode 100644 parrot-atp-wcn3990.dts create mode 100644 parrot-idp-wcn3990.dts create mode 100644 parrot-idp-wcn6750.dts create mode 100644 parrot-qrd-wcn3990.dts create mode 100644 parrot-qrd-wcn6750.dts create mode 100644 parrot-rumi-wcn3990.dts create mode 100644 parrot-wcn3990.dtsi create mode 100644 parrot-wcn6750.dtsi diff --git a/Kbuild b/Kbuild index da428956..55a2d664 100644 --- a/Kbuild +++ b/Kbuild @@ -15,6 +15,17 @@ 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/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..bfb83b71 --- /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 5>, <34 6>, <34 0x600>, <34 0x602>, <34 0x604>; +}; 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..19fd640d --- /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 2>, <0x1000B 0x601>; +}; 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>; + }; +};