Re: [PATCH v3 10/10] arm64: dts: qcom: shikra: Enable Bluetooth and WiFi on EVK boards
From: Loic Poulain
Date: Mon Jun 08 2026 - 04:35:13 EST
On Mon, Jun 8, 2026 at 4:26 AM Miaoqing Pan
<miaoqing.pan@xxxxxxxxxxxxxxxx> wrote:
>
>
>
> On 6/6/2026 8:57 PM, Loic Poulain wrote:
> > On Mon, Jun 1, 2026 at 2:57 PM Komal Bajaj <komal.bajaj@xxxxxxxxxxxxxxxx> 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@xxxxxxxxxxxxxxxx>
> >> Signed-off-by: Yepuri Siddu <yepuri.siddu@xxxxxxxxxxxxxxxx>
> >> Co-developed-by: Miaoqing Pan <miaoqing.pan@xxxxxxxxxxxxxxxx>
> >> Signed-off-by: Miaoqing Pan <miaoqing.pan@xxxxxxxxxxxxxxxx>
> >> Signed-off-by: Komal Bajaj <komal.bajaj@xxxxxxxxxxxxxxxx>
> >> ---
> >> 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.
It's not exactly my question, Agatti also supports both (e.g. WCN3988
is integrated to UNO-Q).
Regards,
Loic