From: Miaoqing Pan <miaoqing.pan@oss.qualcomm.com>
To: Loic Poulain <loic.poulain@oss.qualcomm.com>,
Komal Bajaj <komal.bajaj@oss.qualcomm.com>
Cc: Vinod Koul <vkoul@kernel.org>, Frank Li <Frank.Li@kernel.org>,
Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
Krzysztof Kozlowski <krzk@kernel.org>,
Georgi Djakov <djakov@kernel.org>,
Bjorn Andersson <andersson@kernel.org>,
Konrad Dybcio <konradybcio@kernel.org>,
linux-arm-msm@vger.kernel.org, dmaengine@vger.kernel.org,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-pm@vger.kernel.org,
Yepuri Siddu <yepuri.siddu@oss.qualcomm.com>
Subject: Re: [PATCH v3 10/10] arm64: dts: qcom: shikra: Enable Bluetooth and WiFi on EVK boards
Date: Mon, 8 Jun 2026 10:26:37 +0800 [thread overview]
Message-ID: <2f963239-e1f3-4966-b442-7d44f372ea3d@oss.qualcomm.com> (raw)
In-Reply-To: <CAFEp6-2rT5fXkWaa-Fd--h8zuJ7kQqPyjedGNXrGvco79yMJCg@mail.gmail.com>
On 6/6/2026 8:57 PM, Loic Poulain wrote:
> On Mon, Jun 1, 2026 at 2:57 PM Komal Bajaj <komal.bajaj@oss.qualcomm.com> wrote:
>> Enable Bluetooth and WiFi connectivity on Shikra CQM, CQS and IQS
>> EVK boards using the WCN3988 combo chip.
>>
>> For Bluetooth, enable uart8 and add WCN3988 Bluetooth node with
>> board-specific regulator supplies across CQM, CQS and IQS Shikra
>> EVK boards.
>>
>> For WiFi, introduce the wcn3990-wifi hardware node in shikra.dtsi
>> with register space, interrupts, IOMMU configuration and reserved
>> memory. The node is kept disabled by default and enabled per-board
>> with the appropriate PMIC supply connections and calibration variant
>> selection.
>>
>> Co-developed-by: Yepuri Siddu <yepuri.siddu@oss.qualcomm.com>
>> Signed-off-by: Yepuri Siddu <yepuri.siddu@oss.qualcomm.com>
>> Co-developed-by: Miaoqing Pan <miaoqing.pan@oss.qualcomm.com>
>> Signed-off-by: Miaoqing Pan <miaoqing.pan@oss.qualcomm.com>
>> Signed-off-by: Komal Bajaj <komal.bajaj@oss.qualcomm.com>
>> ---
>> arch/arm64/boot/dts/qcom/shikra-cqm-evk.dts | 59 +++++++++++++++++++++++++
>> arch/arm64/boot/dts/qcom/shikra-cqs-evk.dts | 59 +++++++++++++++++++++++++
>> arch/arm64/boot/dts/qcom/shikra-evk.dtsi | 15 +++++++
>> arch/arm64/boot/dts/qcom/shikra-iqs-evk.dts | 67 +++++++++++++++++++++++++++++
>> arch/arm64/boot/dts/qcom/shikra.dtsi | 23 ++++++++++
>> 5 files changed, 223 insertions(+)
>>
>> diff --git a/arch/arm64/boot/dts/qcom/shikra-cqm-evk.dts b/arch/arm64/boot/dts/qcom/shikra-cqm-evk.dts
>> index b112b21b1d79..c2ed0396533a 100644
>> --- a/arch/arm64/boot/dts/qcom/shikra-cqm-evk.dts
>> +++ b/arch/arm64/boot/dts/qcom/shikra-cqm-evk.dts
>> @@ -16,11 +16,48 @@ / {
>> aliases {
>> mmc0 = &sdhc_1;
>> serial0 = &uart0;
>> + serial1 = &uart8;
>> };
>>
>> chosen {
>> stdout-path = "serial0:115200n8";
>> };
>> +
>> + wcn3988-pmu {
>> + compatible = "qcom,wcn3988-pmu";
>> +
>> + pinctrl-0 = <&sw_ctrl_default>;
>> + pinctrl-names = "default";
>> +
>> + vddio-supply = <&pm4125_l7>;
>> + vddxo-supply = <&pm4125_l13>;
>> + vddrf-supply = <&pm4125_l10>;
>> + vddch0-supply = <&pm4125_l22>;
>> +
>> + swctrl-gpios = <&tlmm 88 GPIO_ACTIVE_HIGH>;
>> +
>> + regulators {
>> + vreg_pmu_io: ldo0 {
>> + regulator-name = "vreg_pmu_io";
>> + };
>> +
>> + vreg_pmu_xo: ldo1 {
>> + regulator-name = "vreg_pmu_xo";
>> + };
>> +
>> + vreg_pmu_rf: ldo2 {
>> + regulator-name = "vreg_pmu_rf";
>> + };
>> +
>> + vreg_pmu_ch0: ldo3 {
>> + regulator-name = "vreg_pmu_ch0";
>> + };
>> +
>> + vreg_pmu_ch1: ldo4 {
>> + regulator-name = "vreg_pmu_ch1";
>> + };
>> + };
>> + };
>> };
>>
>> &remoteproc_cdsp {
>> @@ -57,3 +94,25 @@ &sdhc_1 {
>>
>> status = "okay";
>> };
>> +
>> +&uart8 {
>> + status = "okay";
>> +
>> + bluetooth {
>> + vddio-supply = <&vreg_pmu_io>;
>> + vddxo-supply = <&vreg_pmu_xo>;
>> + vddrf-supply = <&vreg_pmu_rf>;
>> + vddch0-supply = <&vreg_pmu_ch0>;
>> + };
>> +};
>> +
>> +&wifi {
>> + vdd-0.8-cx-mx-supply = <&pm4125_l7>;
>> + vdd-1.8-xo-supply = <&vreg_pmu_xo>;
>> + vdd-1.3-rfa-supply = <&vreg_pmu_rf>;
>> + vdd-3.3-ch0-supply = <&vreg_pmu_ch0>;
>> + qcom,calibration-variant = "Shikra_EVK";
>> + firmware-name = "cq2390";
>> +
>> + status = "okay";
>> +};
>> diff --git a/arch/arm64/boot/dts/qcom/shikra-cqs-evk.dts b/arch/arm64/boot/dts/qcom/shikra-cqs-evk.dts
>> index e62ba5aef71f..3bfd0050064f 100644
>> --- a/arch/arm64/boot/dts/qcom/shikra-cqs-evk.dts
>> +++ b/arch/arm64/boot/dts/qcom/shikra-cqs-evk.dts
>> @@ -16,11 +16,48 @@ / {
>> aliases {
>> mmc0 = &sdhc_1;
>> serial0 = &uart0;
>> + serial1 = &uart8;
>> };
>>
>> chosen {
>> stdout-path = "serial0:115200n8";
>> };
>> +
>> + wcn3988-pmu {
>> + compatible = "qcom,wcn3988-pmu";
>> +
>> + pinctrl-0 = <&sw_ctrl_default>;
>> + pinctrl-names = "default";
>> +
>> + vddio-supply = <&pm4125_l7>;
>> + vddxo-supply = <&pm4125_l13>;
>> + vddrf-supply = <&pm4125_l10>;
>> + vddch0-supply = <&pm4125_l22>;
>> +
>> + swctrl-gpios = <&tlmm 88 GPIO_ACTIVE_HIGH>;
>> +
>> + regulators {
>> + vreg_pmu_io: ldo0 {
>> + regulator-name = "vreg_pmu_io";
>> + };
>> +
>> + vreg_pmu_xo: ldo1 {
>> + regulator-name = "vreg_pmu_xo";
>> + };
>> +
>> + vreg_pmu_rf: ldo2 {
>> + regulator-name = "vreg_pmu_rf";
>> + };
>> +
>> + vreg_pmu_ch0: ldo3 {
>> + regulator-name = "vreg_pmu_ch0";
>> + };
>> +
>> + vreg_pmu_ch1: ldo4 {
>> + regulator-name = "vreg_pmu_ch1";
>> + };
>> + };
>> + };
>> };
>>
>> &remoteproc_cdsp {
>> @@ -57,3 +94,25 @@ &sdhc_1 {
>>
>> status = "okay";
>> };
>> +
>> +&uart8 {
>> + status = "okay";
>> +
>> + bluetooth {
>> + vddio-supply = <&vreg_pmu_io>;
>> + vddxo-supply = <&vreg_pmu_xo>;
>> + vddrf-supply = <&vreg_pmu_rf>;
>> + vddch0-supply = <&vreg_pmu_ch0>;
>> + };
>> +};
>> +
>> +&wifi {
>> + vdd-0.8-cx-mx-supply = <&pm4125_l7>;
>> + vdd-1.8-xo-supply = <&vreg_pmu_xo>;
>> + vdd-1.3-rfa-supply = <&vreg_pmu_rf>;
>> + vdd-3.3-ch0-supply = <&vreg_pmu_ch0>;
>> + qcom,calibration-variant = "Shikra_EVK";
>> + firmware-name = "cq2390";
>> +
>> + status = "okay";
>> +};
>> diff --git a/arch/arm64/boot/dts/qcom/shikra-evk.dtsi b/arch/arm64/boot/dts/qcom/shikra-evk.dtsi
>> index 8b03d4eafa6d..a79f44aff968 100644
>> --- a/arch/arm64/boot/dts/qcom/shikra-evk.dtsi
>> +++ b/arch/arm64/boot/dts/qcom/shikra-evk.dtsi
>> @@ -8,7 +8,22 @@ &qupv3_0 {
>> status = "okay";
>> };
>>
>> +&tlmm {
>> + sw_ctrl_default: sw-ctrl-default-state {
>> + pins = "gpio88";
>> + function = "gpio";
>> + bias-pull-down;
>> + };
>> +};
>> +
>> &uart0 {
>> status = "okay";
>> };
>>
>> +&uart8 {
>> + bluetooth {
>> + compatible = "qcom,wcn3988-bt";
>> + max-speed = <3200000>;
>> + };
>> +};
>> +
>> diff --git a/arch/arm64/boot/dts/qcom/shikra-iqs-evk.dts b/arch/arm64/boot/dts/qcom/shikra-iqs-evk.dts
>> index 727809430fd1..95bd797d009d 100644
>> --- a/arch/arm64/boot/dts/qcom/shikra-iqs-evk.dts
>> +++ b/arch/arm64/boot/dts/qcom/shikra-iqs-evk.dts
>> @@ -16,11 +16,56 @@ / {
>> aliases {
>> mmc0 = &sdhc_1;
>> serial0 = &uart0;
>> + serial1 = &uart8;
>> };
>>
>> chosen {
>> stdout-path = "serial0:115200n8";
>> };
>> +
>> + vreg_wcn_3p3: regulator-wcn-3p3 {
>> + compatible = "regulator-fixed";
>> + regulator-name = "wcn_3p3";
>> + regulator-min-microvolt = <3300000>;
>> + regulator-max-microvolt = <3300000>;
>> + regulator-always-on;
>> + };
>> +
>> + wcn3988-pmu {
>> + compatible = "qcom,wcn3988-pmu";
>> +
>> + pinctrl-0 = <&sw_ctrl_default>;
>> + pinctrl-names = "default";
>> +
>> + vddio-supply = <&pm8150_s4>;
>> + vddxo-supply = <&pm8150_l12>;
>> + vddrf-supply = <&pm8150_l8>;
>> + vddch0-supply = <&vreg_wcn_3p3>;
>> +
>> + swctrl-gpios = <&tlmm 88 GPIO_ACTIVE_HIGH>;
>> +
>> + regulators {
>> + vreg_pmu_io: ldo0 {
>> + regulator-name = "vreg_pmu_io";
>> + };
>> +
>> + vreg_pmu_xo: ldo1 {
>> + regulator-name = "vreg_pmu_xo";
>> + };
>> +
>> + vreg_pmu_rf: ldo2 {
>> + regulator-name = "vreg_pmu_rf";
>> + };
>> +
>> + vreg_pmu_ch0: ldo3 {
>> + regulator-name = "vreg_pmu_ch0";
>> + };
>> +
>> + vreg_pmu_ch1: ldo4 {
>> + regulator-name = "vreg_pmu_ch1";
>> + };
>> + };
>> + };
>> };
>>
>> &remoteproc_cdsp {
>> @@ -57,3 +102,25 @@ &sdhc_1 {
>>
>> status = "okay";
>> };
>> +
>> +&uart8 {
>> + status = "okay";
>> +
>> + bluetooth {
>> + vddio-supply = <&vreg_pmu_io>;
>> + vddxo-supply = <&vreg_pmu_xo>;
>> + vddrf-supply = <&vreg_pmu_rf>;
>> + vddch0-supply = <&vreg_pmu_ch0>;
>> + };
>> +};
>> +
>> +&wifi {
>> + vdd-0.8-cx-mx-supply = <&pm8150_s4>;
>> + vdd-1.8-xo-supply = <&vreg_pmu_xo>;
>> + vdd-1.3-rfa-supply = <&vreg_pmu_rf>;
>> + vdd-3.3-ch0-supply = <&vreg_pmu_ch0>;
>> + qcom,calibration-variant = "Shikra_EVK";
>> + firmware-name = "cq2390";
> Does the firmware differ from the one used on Agatti (QCM2290)?
Yes, WCN3950 vs WCN3980.
>
>
>> +
>> + status = "okay";
>> +};
>> diff --git a/arch/arm64/boot/dts/qcom/shikra.dtsi b/arch/arm64/boot/dts/qcom/shikra.dtsi
>> index c1f25ce89bb1..6bac6ebac8da 100644
>> --- a/arch/arm64/boot/dts/qcom/shikra.dtsi
>> +++ b/arch/arm64/boot/dts/qcom/shikra.dtsi
>> @@ -2064,6 +2064,29 @@ apps_smmu: iommu@c600000 {
>> <GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH 0>;
>> };
>>
>> + wifi: wifi@c800000 {
>> + compatible = "qcom,wcn3990-wifi";
>> + reg = <0x0 0x0c800000 0x0 0x800000>;
>> + reg-names = "membase";
>> + memory-region = <&wlan_mem>;
>> + interrupts = <GIC_SPI 358 IRQ_TYPE_LEVEL_HIGH 0>,
>> + <GIC_SPI 359 IRQ_TYPE_LEVEL_HIGH 0>,
>> + <GIC_SPI 360 IRQ_TYPE_LEVEL_HIGH 0>,
>> + <GIC_SPI 361 IRQ_TYPE_LEVEL_HIGH 0>,
>> + <GIC_SPI 362 IRQ_TYPE_LEVEL_HIGH 0>,
>> + <GIC_SPI 363 IRQ_TYPE_LEVEL_HIGH 0>,
>> + <GIC_SPI 364 IRQ_TYPE_LEVEL_HIGH 0>,
>> + <GIC_SPI 365 IRQ_TYPE_LEVEL_HIGH 0>,
>> + <GIC_SPI 366 IRQ_TYPE_LEVEL_HIGH 0>,
>> + <GIC_SPI 367 IRQ_TYPE_LEVEL_HIGH 0>,
>> + <GIC_SPI 368 IRQ_TYPE_LEVEL_HIGH 0>,
>> + <GIC_SPI 369 IRQ_TYPE_LEVEL_HIGH 0>;
>> + iommus = <&apps_smmu 0x1a0 0x1>;
>> + qcom,msa-fixed-perm;
>> +
>> + status = "disabled";
>> + };
>> +
>> intc: interrupt-controller@f200000 {
>> compatible = "arm,gic-v3";
>> reg = <0x0 0xf200000 0x0 0x10000>,
>>
>> --
>> 2.34.1
>>
>>
next prev parent reply other threads:[~2026-06-08 2:26 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-01 12:55 [PATCH v3 00/10] arm64: dts: qcom: Extend Shikra device tree with peripheral and subsystem support Komal Bajaj
2026-06-01 12:55 ` [PATCH v3 01/10] dt-bindings: dma: qcom,gpi: Document GPI DMA engine for Shikra SoC Komal Bajaj
2026-06-05 12:11 ` Krzysztof Kozlowski
2026-06-01 12:55 ` [PATCH v3 02/10] dt-bindings: interconnect: qcom-bwmon: Add Shikra cpu-bwmon compatible Komal Bajaj
2026-06-05 12:12 ` Krzysztof Kozlowski
2026-06-01 12:55 ` [PATCH v3 03/10] arm64: dts: qcom: Add QUPv3 configuration for Shikra Komal Bajaj
2026-06-06 12:46 ` Dmitry Baryshkov
2026-06-01 12:55 ` [PATCH v3 04/10] arm64: dts: qcom: shikra: Add DDR BWMON support Komal Bajaj
2026-06-01 12:55 ` [PATCH v3 05/10] arm64: dts: qcom: shikra: Add cpufreq-hw, EPSS L3 interconnect and OPP tables Komal Bajaj
2026-06-01 12:55 ` [PATCH v3 06/10] arm64: dts: qcom: shikra: Add SMP2P nodes Komal Bajaj
2026-06-06 12:45 ` Dmitry Baryshkov
2026-06-01 12:55 ` [PATCH v3 07/10] arm64: dts: qcom: shikra: Add CDSP, LPAICP, MPSS remoteproc PAS nodes Komal Bajaj
2026-06-01 12:55 ` [PATCH v3 08/10] arm64: dts: qcom: shikra: Enable CDSP, LPAICP and MPSS on EVK boards Komal Bajaj
2026-06-06 12:32 ` Dmitry Baryshkov
2026-06-08 12:54 ` Komal Bajaj
2026-06-01 12:55 ` [PATCH v3 09/10] arm64: dts: qcom: shikra: Enable TSENS and thermal zones Komal Bajaj
2026-06-06 12:41 ` Dmitry Baryshkov
2026-06-01 12:55 ` [PATCH v3 10/10] arm64: dts: qcom: shikra: Enable Bluetooth and WiFi on EVK boards Komal Bajaj
2026-06-06 12:45 ` Dmitry Baryshkov
2026-06-08 13:00 ` Komal Bajaj
2026-06-06 12:57 ` Loic Poulain
2026-06-08 2:26 ` Miaoqing Pan [this message]
2026-06-08 8:22 ` Loic Poulain
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=2f963239-e1f3-4966-b442-7d44f372ea3d@oss.qualcomm.com \
--to=miaoqing.pan@oss.qualcomm.com \
--cc=Frank.Li@kernel.org \
--cc=andersson@kernel.org \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=djakov@kernel.org \
--cc=dmaengine@vger.kernel.org \
--cc=komal.bajaj@oss.qualcomm.com \
--cc=konradybcio@kernel.org \
--cc=krzk+dt@kernel.org \
--cc=krzk@kernel.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=loic.poulain@oss.qualcomm.com \
--cc=robh@kernel.org \
--cc=vkoul@kernel.org \
--cc=yepuri.siddu@oss.qualcomm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox