Linux Power Management development
 help / color / mirror / Atom feed
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
>>
>>


  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