* [PATCH v3 1/8] ASoC: dt-bindings: qcom,apr: Add modem_apps GLINK channel for shikra
2026-09-17 4:37 [PATCH v3 0/8] arm64: dts: qcom: shikra: Enable audio on EVK boards Mohammad Rafi Shaik
@ 2026-09-17 4:37 ` Mohammad Rafi Shaik
2026-09-17 4:37 ` [PATCH v3 2/8] arm64: dts: qcom: shikra: Add QAIF CPU node for audio Mohammad Rafi Shaik
` (7 subsequent siblings)
8 siblings, 0 replies; 12+ messages in thread
From: Mohammad Rafi Shaik @ 2026-09-17 4:37 UTC (permalink / raw)
To: Srinivas Kandagatla, Bjorn Andersson, Konrad Dybcio, Abel Vesa,
Rob Herring, Krzysztof Kozlowski, Conor Dooley
Cc: Mohammad Rafi Shaik, linux-sound, linux-arm-msm, devicetree,
linux-kernel, Krzysztof Kozlowski
Add support for the modem_apps GLINK channel on Shikra, as audio
processing is handled through the modem DSP.
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Signed-off-by: Mohammad Rafi Shaik <mohammad.rafi.shaik@oss.qualcomm.com>
---
Documentation/devicetree/bindings/soc/qcom/qcom,apr.yaml | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom,apr.yaml b/Documentation/devicetree/bindings/soc/qcom/qcom,apr.yaml
index e51acdcaafaf..01250b556985 100644
--- a/Documentation/devicetree/bindings/soc/qcom/qcom,apr.yaml
+++ b/Documentation/devicetree/bindings/soc/qcom/qcom,apr.yaml
@@ -120,7 +120,9 @@ allOf:
properties:
qcom,glink-channels:
items:
- - const: adsp_apps
+ - enum:
+ - adsp_apps
+ - modem_apps
power-domains: false
else:
properties:
--
2.34.1
^ permalink raw reply [flat|nested] 12+ messages in thread* [PATCH v3 2/8] arm64: dts: qcom: shikra: Add QAIF CPU node for audio
2026-09-17 4:37 [PATCH v3 0/8] arm64: dts: qcom: shikra: Enable audio on EVK boards Mohammad Rafi Shaik
2026-09-17 4:37 ` [PATCH v3 1/8] ASoC: dt-bindings: qcom,apr: Add modem_apps GLINK channel for shikra Mohammad Rafi Shaik
@ 2026-09-17 4:37 ` Mohammad Rafi Shaik
2026-09-17 15:35 ` Abel Vesa
2026-09-17 4:37 ` [PATCH v3 3/8] arm64: dts: qcom: shikra: Add gpr node Mohammad Rafi Shaik
` (6 subsequent siblings)
8 siblings, 1 reply; 12+ messages in thread
From: Mohammad Rafi Shaik @ 2026-09-17 4:37 UTC (permalink / raw)
To: Srinivas Kandagatla, Bjorn Andersson, Konrad Dybcio, Abel Vesa,
Rob Herring, Krzysztof Kozlowski, Conor Dooley
Cc: Mohammad Rafi Shaik, linux-sound, linux-arm-msm, devicetree,
linux-kernel, Harendra Gautam
Add the QAIF CPU endpoint in shikra.dtsi so board files can connect LPASS
front-end links to backend codecs.
Describe the MMIO region, interrupt, IOMMU mapping and required clocks for
the QAIF block. Keep the node disabled at SoC level; board dts files enable
and consume it in subsequent patches.
Co-developed-by: Harendra Gautam <harendra.gautam@oss.qualcomm.com>
Signed-off-by: Harendra Gautam <harendra.gautam@oss.qualcomm.com>
Signed-off-by: Mohammad Rafi Shaik <mohammad.rafi.shaik@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/shikra.dtsi | 35 +++++++++++++++++++++++++++++++++++
1 file changed, 35 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/shikra.dtsi b/arch/arm64/boot/dts/qcom/shikra.dtsi
index 999b478e1640..7633d274e090 100644
--- a/arch/arm64/boot/dts/qcom/shikra.dtsi
+++ b/arch/arm64/boot/dts/qcom/shikra.dtsi
@@ -16,6 +16,7 @@
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/phy/phy-qcom-qmp.h>
#include <dt-bindings/power/qcom-rpmpd.h>
+#include <dt-bindings/sound/qcom,q6dsp-lpass-ports.h>
#include <dt-bindings/thermal/thermal.h>
/ {
@@ -3595,6 +3596,40 @@ cti@9900000 {
label = "cti_apss_2";
};
+ qaif_cpu: audio@a000000 {
+ compatible = "qcom,shikra-qaif-cpu";
+ reg = <0x0 0x0a000000 0x0 0x20000>;
+
+ interrupts = <GIC_SPI 331 IRQ_TYPE_LEVEL_HIGH 0>;
+
+ clocks = <&gcc GCC_LPASS_CONFIG_CLK>,
+ <&gcc GCC_LPASS_CORE_AXIM_CLK>,
+ <&audiocorecc AUDIO_CORE_CC_AUD_DMA_CLK>,
+ <&audiocorecc AUDIO_CORE_CC_AUD_DMA_MEM_CLK>,
+ <&audiocorecc AUDIO_CORE_CC_BUS_CLK>,
+ <&audiocorecc AUDIO_CORE_CC_AIF_IF0_IBIT_CLK>,
+ <&audiocorecc AUDIO_CORE_CC_AIF_IF1_IBIT_CLK>,
+ <&audiocorecc AUDIO_CORE_CC_AIF_IF2_IBIT_CLK>,
+ <&audiocorecc AUDIO_CORE_CC_AIF_IF3_IBIT_CLK>;
+ clock-names = "lpass_config",
+ "lpass_core_axim",
+ "aud_dma",
+ "aud_dma_mem",
+ "bus",
+ "aif_if0_ibit",
+ "aif_if1_ibit",
+ "aif_if2_ibit",
+ "aif_if3_ibit";
+
+ iommus = <&apps_smmu 0x1c0 0x0>;
+
+ #sound-dai-cells = <1>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ status = "disabled";
+ };
+
audiocorecc: clock-controller@a0a0000 {
compatible = "qcom,shikra-audiocorecc";
reg = <0x0 0x0a0a0000 0x0 0x10000>;
--
2.34.1
^ permalink raw reply [flat|nested] 12+ messages in thread* Re: [PATCH v3 2/8] arm64: dts: qcom: shikra: Add QAIF CPU node for audio
2026-09-17 4:37 ` [PATCH v3 2/8] arm64: dts: qcom: shikra: Add QAIF CPU node for audio Mohammad Rafi Shaik
@ 2026-09-17 15:35 ` Abel Vesa
2026-09-29 10:45 ` Mohammad Rafi Shaik
0 siblings, 1 reply; 12+ messages in thread
From: Abel Vesa @ 2026-09-17 15:35 UTC (permalink / raw)
To: Mohammad Rafi Shaik
Cc: Srinivas Kandagatla, Bjorn Andersson, Konrad Dybcio, Abel Vesa,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, linux-sound,
linux-arm-msm, devicetree, linux-kernel, Harendra Gautam
On 26-09-17 10:07:31, Mohammad Rafi Shaik wrote:
> Add the QAIF CPU endpoint in shikra.dtsi so board files can connect LPASS
> front-end links to backend codecs.
>
> Describe the MMIO region, interrupt, IOMMU mapping and required clocks for
> the QAIF block. Keep the node disabled at SoC level; board dts files enable
> and consume it in subsequent patches.
Don't mention subsequent patches here, please.
That is not a good enough argument to disable it at SoC level.
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v3 2/8] arm64: dts: qcom: shikra: Add QAIF CPU node for audio
2026-09-17 15:35 ` Abel Vesa
@ 2026-09-29 10:45 ` Mohammad Rafi Shaik
0 siblings, 0 replies; 12+ messages in thread
From: Mohammad Rafi Shaik @ 2026-09-29 10:45 UTC (permalink / raw)
To: Abel Vesa
Cc: Srinivas Kandagatla, Bjorn Andersson, Konrad Dybcio, Abel Vesa,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, linux-sound,
linux-arm-msm, devicetree, linux-kernel, Harendra Gautam
On 9/17/2026 9:05 PM, Abel Vesa wrote:
> On 26-09-17 10:07:31, Mohammad Rafi Shaik wrote:
>> Add the QAIF CPU endpoint in shikra.dtsi so board files can connect LPASS
>> front-end links to backend codecs.
>>
>> Describe the MMIO region, interrupt, IOMMU mapping and required clocks for
>> the QAIF block. Keep the node disabled at SoC level; board dts files enable
>> and consume it in subsequent patches.
>
> Don't mention subsequent patches here, please.
>
> That is not a good enough argument to disable it at SoC level.
Ack, will fix in next revision.
Best regards,
Raf.
>
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH v3 3/8] arm64: dts: qcom: shikra: Add gpr node
2026-09-17 4:37 [PATCH v3 0/8] arm64: dts: qcom: shikra: Enable audio on EVK boards Mohammad Rafi Shaik
2026-09-17 4:37 ` [PATCH v3 1/8] ASoC: dt-bindings: qcom,apr: Add modem_apps GLINK channel for shikra Mohammad Rafi Shaik
2026-09-17 4:37 ` [PATCH v3 2/8] arm64: dts: qcom: shikra: Add QAIF CPU node for audio Mohammad Rafi Shaik
@ 2026-09-17 4:37 ` Mohammad Rafi Shaik
2026-09-17 4:37 ` [PATCH v3 4/8] arm64: dts: qcom: shikra: Add soundwire and macro nodes Mohammad Rafi Shaik
` (5 subsequent siblings)
8 siblings, 0 replies; 12+ messages in thread
From: Mohammad Rafi Shaik @ 2026-09-17 4:37 UTC (permalink / raw)
To: Srinivas Kandagatla, Bjorn Andersson, Konrad Dybcio, Abel Vesa,
Rob Herring, Krzysztof Kozlowski, Conor Dooley
Cc: Mohammad Rafi Shaik, linux-sound, linux-arm-msm, devicetree,
linux-kernel, Ajay Kumar Nandam
Add GPR (Generic Packet Router) node along with APM (Audio Process
Manager) and PRM (Proxy Resource Manager) audio services.
Add a dedicated MDSP carveout memory region for audio usecases on
Shikra and mark both existing audio heap and MDSP carveout regions
as shared DMA pools.
Update the Q6 APM DAI node to reference multiple memory regions,
where index 0 is used for control path buffers and index 1 is used
for MDSP data path buffers. This separation ensures proper memory
allocation and access for APM communication between APSS and MDSP.
Also add shared-dma-pool compatibility to the existing audio heap
region to align with upstream DMA pool usage.
Co-developed-by: Ajay Kumar Nandam <ajay.nandam@oss.qualcomm.com>
Signed-off-by: Ajay Kumar Nandam <ajay.nandam@oss.qualcomm.com>
Signed-off-by: Mohammad Rafi Shaik <mohammad.rafi.shaik@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/shikra.dtsi | 49 +++++++++++++++++++++++++++++++++++-
1 file changed, 48 insertions(+), 1 deletion(-)
diff --git a/arch/arm64/boot/dts/qcom/shikra.dtsi b/arch/arm64/boot/dts/qcom/shikra.dtsi
index 7633d274e090..21e4e6a7e12a 100644
--- a/arch/arm64/boot/dts/qcom/shikra.dtsi
+++ b/arch/arm64/boot/dts/qcom/shikra.dtsi
@@ -8,6 +8,7 @@
#include <dt-bindings/clock/qcom,rpmcc.h>
#include <dt-bindings/clock/qcom,shikra-audiocorecc.h>
#include <dt-bindings/clock/qcom,shikra-gcc.h>
+#include <dt-bindings/firmware/qcom,scm.h>
#include <dt-bindings/interconnect/qcom,icc.h>
#include <dt-bindings/interconnect/qcom,osm-l3.h>
#include <dt-bindings/dma/qcom-gpi.h>
@@ -16,6 +17,7 @@
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/phy/phy-qcom-qmp.h>
#include <dt-bindings/power/qcom-rpmpd.h>
+#include <dt-bindings/soc/qcom,gpr.h>
#include <dt-bindings/sound/qcom,q6dsp-lpass-ports.h>
#include <dt-bindings/thermal/thermal.h>
@@ -476,7 +478,14 @@ smem_mem: smem@86000000 {
};
audio_heap_mem: audio-heap@86200000 {
- reg = <0x0 0x86200000 0x0 0x100000>;
+ compatible = "shared-dma-pool";
+ reg = <0x0 0x86200000 0x0 0x40000>;
+ no-map;
+ };
+
+ audio_mdsp_carveout_mem: audio-mdsp-carveout@86240000 {
+ compatible = "shared-dma-pool";
+ reg = <0x0 0x86240000 0x0 0x100000>;
no-map;
};
@@ -2410,6 +2419,44 @@ glink-edge {
mboxes = <&apcs_glb 12>;
qcom,remote-pid = <1>;
label = "mpss";
+
+ gpr: gpr {
+ compatible = "qcom,gpr";
+ qcom,glink-channels = "modem_apps";
+ qcom,domain = <GPR_DOMAIN_ID_MODEM>;
+ qcom,intents = <200 20>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ q6apm: service@1 {
+ compatible = "qcom,q6apm";
+ reg = <GPR_APM_MODULE_IID>;
+ #sound-dai-cells = <0>;
+
+ q6apmbedai: bedais {
+ compatible = "qcom,q6apm-lpass-dais";
+ #sound-dai-cells = <1>;
+ };
+
+ q6apmdai: dais {
+ compatible = "qcom,q6apm-dais";
+ memory-region = <&audio_heap_mem
+ &audio_mdsp_carveout_mem>;
+ qcom,vmid = <QCOM_SCM_VMID_LPASS
+ QCOM_SCM_VMID_MSS_MSA>;
+ };
+ };
+
+ q6prm: service@2 {
+ compatible = "qcom,q6prm";
+ reg = <GPR_PRM_MODULE_IID>;
+
+ q6prmcc: clock-controller {
+ compatible = "qcom,q6prm-lpass-clocks";
+ #clock-cells = <2>;
+ };
+ };
+ };
};
};
--
2.34.1
^ permalink raw reply [flat|nested] 12+ messages in thread* [PATCH v3 4/8] arm64: dts: qcom: shikra: Add soundwire and macro nodes
2026-09-17 4:37 [PATCH v3 0/8] arm64: dts: qcom: shikra: Enable audio on EVK boards Mohammad Rafi Shaik
` (2 preceding siblings ...)
2026-09-17 4:37 ` [PATCH v3 3/8] arm64: dts: qcom: shikra: Add gpr node Mohammad Rafi Shaik
@ 2026-09-17 4:37 ` Mohammad Rafi Shaik
2026-09-17 4:37 ` [PATCH v3 5/8] arm64: dts: qcom: shikra-cqm-evk: Enable sound card support Mohammad Rafi Shaik
` (4 subsequent siblings)
8 siblings, 0 replies; 12+ messages in thread
From: Mohammad Rafi Shaik @ 2026-09-17 4:37 UTC (permalink / raw)
To: Srinivas Kandagatla, Bjorn Andersson, Konrad Dybcio, Abel Vesa,
Rob Herring, Krzysztof Kozlowski, Conor Dooley
Cc: Mohammad Rafi Shaik, linux-sound, linux-arm-msm, devicetree,
linux-kernel
Add SoC-level SoundWire masters and LPASS RX/VA macro nodes, along with
DMIC and SWR pinctrl states required by the audio data path.
Keep these nodes disabled in shikra.dtsi so board dts files can selectively
enable and configure them.
Signed-off-by: Mohammad Rafi Shaik <mohammad.rafi.shaik@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/shikra.dtsi | 172 +++++++++++++++++++++++++++++++++++
1 file changed, 172 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/shikra.dtsi b/arch/arm64/boot/dts/qcom/shikra.dtsi
index 21e4e6a7e12a..ec0a3cd4a27d 100644
--- a/arch/arm64/boot/dts/qcom/shikra.dtsi
+++ b/arch/arm64/boot/dts/qcom/shikra.dtsi
@@ -953,6 +953,70 @@ rclk-pins {
bias-bus-hold;
};
};
+
+ dmic01_default: dmic01-default-state {
+ clk-pins {
+ pins = "gpio96";
+ function = "dmic";
+ drive-strength = <8>;
+ output-high;
+ };
+
+ data-pins {
+ pins = "gpio97";
+ function = "dmic";
+ drive-strength = <8>;
+ bias-disable;
+ };
+ };
+
+ dmic23_default: dmic23-default-state {
+ clk-pins {
+ pins = "gpio98";
+ function = "dmic";
+ drive-strength = <8>;
+ output-high;
+ };
+
+ data-pins {
+ pins = "gpio99";
+ function = "dmic";
+ drive-strength = <8>;
+ bias-disable;
+ };
+ };
+
+ tx_swr_active: tx-swr-active-state {
+ clk-pins {
+ pins = "gpio105";
+ function = "swr0_tx";
+ drive-strength = <8>;
+ bias-disable;
+ };
+
+ data-pins {
+ pins = "gpio106";
+ function = "swr0_tx";
+ drive-strength = <8>;
+ bias-bus-hold;
+ };
+ };
+
+ rx_swr_active: rx-swr-active-state {
+ clk-pins {
+ pins = "gpio107";
+ function = "swr0_rx";
+ drive-strength = <8>;
+ bias-disable;
+ };
+
+ data-pins {
+ pins = "gpio108", "gpio109";
+ function = "swr0_rx";
+ drive-strength = <8>;
+ bias-bus-hold;
+ };
+ };
};
pmu@c91000 {
@@ -3677,6 +3741,114 @@ qaif_cpu: audio@a000000 {
status = "disabled";
};
+ rxmacro: codec@a040000 {
+ compatible = "qcom,shikra-lpass-rx-macro";
+ reg = <0x0 0x0a040000 0x0 0x1000>;
+
+ clocks = <&audiocorecc AUDIO_CORE_CC_RX_MCLK_CLK>,
+ <&audiocorecc AUDIO_CORE_CC_RX_MCLK_2X_CLK>,
+ <&vamacro>;
+ clock-names = "mclk",
+ "npl",
+ "fsgen";
+
+ #clock-cells = <0>;
+ clock-output-names = "mclk";
+ #sound-dai-cells = <1>;
+
+ status = "disabled";
+ };
+
+ swr0: soundwire@a060000 {
+ compatible = "qcom,shikra-soundwire";
+ reg = <0x0 0x0a060000 0x0 0x10000>;
+
+ interrupts = <GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH 0>;
+
+ clocks = <&rxmacro>;
+ clock-names = "iface";
+ label = "RX";
+
+ pinctrl-0 = <&rx_swr_active>;
+ pinctrl-names = "default";
+
+ qcom,din-ports = <0>;
+ qcom,dout-ports = <5>;
+
+ resets = <&audiocore_csr AUDIO_CORE_CSR_RX_SWR_CGCR>;
+ reset-names = "swr_audio_cgcr";
+
+ qcom,ports-sinterval-low = /bits/ 8 <0x03 0x1f 0x1f 0x07 0x00>;
+ qcom,ports-offset1 = /bits/ 8 <0x00 0x00 0x0b 0x01 0x00>;
+ qcom,ports-offset2 = /bits/ 8 <0x00 0x00 0x0b 0x00 0x00>;
+ qcom,ports-hstart = /bits/ 8 <0xff 0x03 0xff 0xff 0xff>;
+ qcom,ports-hstop = /bits/ 8 <0xff 0x06 0xff 0xff 0xff>;
+ qcom,ports-word-length = /bits/ 8 <0x01 0x07 0x04 0xff 0xff>;
+ qcom,ports-block-pack-mode = /bits/ 8 <0xff 0x00 0x01 0xff 0xff>;
+ qcom,ports-block-group-count = /bits/ 8 <0xff 0xff 0xff 0xff 0x00>;
+ qcom,ports-lane-control = /bits/ 8 <0x01 0x00 0x00 0x00 0x00>;
+
+ #sound-dai-cells = <1>;
+ #address-cells = <2>;
+ #size-cells = <0>;
+
+ status = "disabled";
+ };
+
+ vamacro: codec@a078000 {
+ compatible = "qcom,shikra-lpass-va-macro";
+ reg = <0x0 0x0a078000 0x0 0x2000>;
+
+ clocks = <&audiocorecc AUDIO_CORE_CC_TX_MCLK_CLK>,
+ <&audiocorecc AUDIO_CORE_CC_TX_MCLK_2X_CLK>;
+ clock-names = "mclk",
+ "npl";
+
+ #clock-cells = <0>;
+ clock-output-names = "fsgen";
+ #sound-dai-cells = <1>;
+
+ status = "disabled";
+ };
+
+ swr1: soundwire@a080000 {
+ compatible = "qcom,shikra-soundwire";
+ reg = <0x0 0x0a080000 0x0 0x10000>;
+
+ interrupts = <GIC_SPI 328 IRQ_TYPE_LEVEL_HIGH 0>,
+ <GIC_SPI 406 IRQ_TYPE_LEVEL_HIGH 0>;
+ interrupt-names = "core", "wakeup";
+
+ clocks = <&vamacro>;
+ clock-names = "iface";
+ label = "VA_TX";
+
+ pinctrl-0 = <&tx_swr_active>;
+ pinctrl-names = "default";
+
+ qcom,din-ports = <4>;
+ qcom,dout-ports = <0>;
+
+ resets = <&audiocore_csr AUDIO_CORE_CSR_TX_SWR_CGCR>;
+ reset-names = "swr_audio_cgcr";
+
+ qcom,ports-sinterval-low = /bits/ 8 <0x01 0x03 0x03 0x03>;
+ qcom,ports-offset1 = /bits/ 8 <0x00 0x01 0x01 0x01>;
+ qcom,ports-offset2 = /bits/ 8 <0x00 0x00 0x00 0x00>;
+ qcom,ports-hstart = /bits/ 8 <0xff 0xff 0xff 0xff>;
+ qcom,ports-hstop = /bits/ 8 <0xff 0xff 0xff 0xff>;
+ qcom,ports-word-length = /bits/ 8 <0xff 0xff 0xff 0xff>;
+ qcom,ports-block-pack-mode = /bits/ 8 <0xff 0xff 0xff 0xff>;
+ qcom,ports-block-group-count = /bits/ 8 <0xff 0xff 0xff 0xff>;
+ qcom,ports-lane-control = /bits/ 8 <0x01 0x00 0x00 0x00>;
+
+ #sound-dai-cells = <1>;
+ #address-cells = <2>;
+ #size-cells = <0>;
+
+ status = "disabled";
+ };
+
audiocorecc: clock-controller@a0a0000 {
compatible = "qcom,shikra-audiocorecc";
reg = <0x0 0x0a0a0000 0x0 0x10000>;
--
2.34.1
^ permalink raw reply [flat|nested] 12+ messages in thread* [PATCH v3 5/8] arm64: dts: qcom: shikra-cqm-evk: Enable sound card support
2026-09-17 4:37 [PATCH v3 0/8] arm64: dts: qcom: shikra: Enable audio on EVK boards Mohammad Rafi Shaik
` (3 preceding siblings ...)
2026-09-17 4:37 ` [PATCH v3 4/8] arm64: dts: qcom: shikra: Add soundwire and macro nodes Mohammad Rafi Shaik
@ 2026-09-17 4:37 ` Mohammad Rafi Shaik
2026-09-17 4:37 ` [PATCH v3 6/8] arm64: dts: qcom: shikra-cqs-evk: " Mohammad Rafi Shaik
` (3 subsequent siblings)
8 siblings, 0 replies; 12+ messages in thread
From: Mohammad Rafi Shaik @ 2026-09-17 4:37 UTC (permalink / raw)
To: Srinivas Kandagatla, Bjorn Andersson, Konrad Dybcio, Abel Vesa,
Rob Herring, Krzysztof Kozlowski, Conor Dooley
Cc: Mohammad Rafi Shaik, linux-sound, linux-arm-msm, devicetree,
linux-kernel
Enable the sound card on the shikra-cqm-evk platform, including
the PM4125 (Rouleur) headset codec, WSA885x external speaker path,
and QAIF backend links.
Also enable the required LPASS macro and SoundWire nodes, along with
the necessary pinctrl configurations for DMIC and I2S interfaces.
Signed-off-by: Mohammad Rafi Shaik <mohammad.rafi.shaik@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/shikra-cqm-evk.dts | 199 +++++++++++++++++++++++++++
arch/arm64/boot/dts/qcom/shikra-cqm-som.dtsi | 5 +
2 files changed, 204 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/shikra-cqm-evk.dts b/arch/arm64/boot/dts/qcom/shikra-cqm-evk.dts
index 079a1636cb6a..9da58ab4e7a8 100644
--- a/arch/arm64/boot/dts/qcom/shikra-cqm-evk.dts
+++ b/arch/arm64/boot/dts/qcom/shikra-cqm-evk.dts
@@ -21,12 +21,116 @@ aliases {
chosen {
stdout-path = "serial0:115200n8";
};
+
+ sound: sound {
+ compatible = "qcom,shikra-cqm-sndcard";
+ model = "shikra-cqm-evk";
+
+ audio-routing = "IN1_HPHL", "HPHL_OUT",
+ "IN2_HPHR", "HPHR_OUT",
+ "AMIC1", "MIC BIAS1",
+ "AMIC2", "MIC BIAS2",
+ "AMIC3", "MIC BIAS3",
+ "VA SWR_ADC0", "ADC1_OUTPUT",
+ "VA SWR_ADC1", "ADC2_OUTPUT",
+ "VA DMIC0", "vdd-micb",
+ "VA DMIC1", "vdd-micb",
+ "VA DMIC2", "vdd-micb",
+ "VA DMIC3", "vdd-micb";
+
+ pinctrl-0 = <&i2s2_default>, <&dmic_eldo_en_default>;
+ pinctrl-names = "default";
+
+ headset-capture-dai-link {
+ link-name = "Headphones Capture";
+
+ codec {
+ sound-dai = <&pmic4125_codec 1>,
+ <&swr1 0>,
+ <&vamacro 0>;
+ };
+
+ cpu {
+ sound-dai = <&qaif_cpu VA_CODEC_DMA_TX_1>;
+ };
+ };
+
+ headset-playback-dai-link {
+ link-name = "Headphones Playback";
+
+ codec {
+ sound-dai = <&pmic4125_codec 0>,
+ <&swr0 0>,
+ <&rxmacro 0>;
+ };
+
+ cpu {
+ sound-dai = <&qaif_cpu RX_CODEC_DMA_RX_1>;
+ };
+ };
+
+ wsa-speaker-dai-link {
+ link-name = "WSA Speaker Playback";
+
+ codec {
+ sound-dai = <&wsa8855>;
+ dai-tdm-slot-num = <2>;
+ dai-tdm-slot-width = <32>;
+ dai-tdm-slot-rx-mask = <1 1>;
+ };
+
+ cpu {
+ sound-dai = <&qaif_cpu AIF_TDM_RX_2>;
+ dai-tdm-slot-num = <2>;
+ dai-tdm-slot-width = <32>;
+ dai-tdm-slot-rx-mask = <1 1>;
+ dai-tdm-slot-tx-mask = <1 1>;
+ };
+ };
+
+ va-dmic-dai-link {
+ link-name = "VA DMIC Capture";
+
+ codec {
+ sound-dai = <&vamacro 0>;
+ };
+
+ cpu {
+ sound-dai = <&qaif_cpu VA_CODEC_DMA_TX_0>;
+ };
+ };
+ };
};
&audiocorecc {
status = "okay";
};
+&gpr {
+ status = "disabled";
+};
+
+&i2c3 {
+ status = "okay";
+
+ wsa8855: speaker@c {
+ compatible = "qcom,wsa8855";
+ reg = <0x0c>;
+
+ pinctrl-0 = <&wsa8855_spkr_sd_n>;
+ pinctrl-names = "default";
+
+ powerdown-gpios = <&tlmm 2 GPIO_ACTIVE_LOW>;
+ interrupt-parent = <&tlmm>;
+ interrupts = <77 IRQ_TYPE_EDGE_FALLING>;
+ vdd-1p8-supply = <&pm4125_l15>;
+ vdd-io-supply = <&pm4125_l15>;
+ qcom,battery-config = "1s";
+
+ #sound-dai-cells = <0>;
+ };
+};
+
&pm4125_hs_in {
remote-endpoint = <&usb_1_dwc3_hs>;
};
@@ -35,6 +139,20 @@ &pm4125_ss_in {
remote-endpoint = <&usb_qmpphy_out>;
};
+&qaif_cpu {
+ status = "okay";
+
+ aif@b5 {
+ reg = <AIF_TDM_RX_2>;
+ dai-format = "dsp_a";
+ dai-tdm-slot-width = <32>;
+ dai-tdm-slot-num = <2>;
+ dai-tdm-slot-rx-mask = <1 1>;
+ dai-tdm-slot-tx-mask = <1 1>;
+ qcom,qaif-aif-lane-map = <1 0>;
+ };
+};
+
&remoteproc_cdsp {
firmware-name = "qcom/shikra/cdsp.mbn";
@@ -54,6 +172,10 @@ &remoteproc_mpss {
status = "okay";
};
+&rxmacro {
+ status = "okay";
+};
+
&sdhc_1 {
vmmc-supply = <&pm4125_l20>;
vqmmc-supply = <&pm4125_l14>;
@@ -104,3 +226,80 @@ &usb_2_hsphy {
status = "okay";
};
+
+&spmi_bus {
+ pmic@0 {
+ pmic4125_codec: audio-codec@f000 {
+ compatible = "qcom,pm4125-codec";
+ reg = <0xf000>;
+ vdd-io-supply = <&pm4125_l15>;
+ vdd-cp-supply = <&pm4125_s1>;
+ vdd-pa-vpos-supply = <&pm4125_s1>;
+
+ vdd-mic-bias-supply = <&pm4125_l22>;
+ qcom,micbias1-microvolt = <1800000>;
+ qcom,micbias2-microvolt = <1800000>;
+ qcom,micbias3-microvolt = <1800000>;
+
+ qcom,rx-device = <&pm4125_rx>;
+ qcom,tx-device = <&pm4125_tx>;
+ #sound-dai-cells = <1>;
+
+ status = "okay";
+ };
+ };
+};
+
+&swr0 {
+ status = "okay";
+
+ pm4125_rx: codec@0,4 {
+ compatible = "sdw20217010c00";
+ reg = <0 4>;
+ qcom,rx-port-mapping = <1 2 3 4 5>;
+ };
+};
+
+&swr1 {
+ status = "okay";
+
+ pm4125_tx: codec@0,3 {
+ compatible = "sdw20217010c00";
+ reg = <0 3>;
+ qcom,tx-port-mapping = <2 3>;
+ };
+};
+
+&tlmm {
+ dmic_eldo_en_default: dmic-eldo-default-active-state {
+ pins = "gpio71";
+ function = "gpio";
+ drive-strength = <8>;
+ bias-disable;
+ output-high;
+ };
+
+ i2s2_default: i2s2-default-active-state {
+ pins = "gpio100", "gpio101", "gpio102", "gpio103";
+ function = "i2s2";
+ drive-strength = <8>;
+ output-high;
+ bias-disable;
+ };
+
+ wsa8855_spkr_sd_n: wsa8855-spkr-sd-n-active-state {
+ pins = "gpio2";
+ function = "gpio";
+ input-disable;
+ output-enable;
+ };
+};
+
+&vamacro {
+ pinctrl-0 = <&dmic01_default>, <&dmic23_default>;
+ pinctrl-names = "default";
+
+ qcom,dmic-sample-rate = <4800000>;
+ status = "okay";
+};
+
diff --git a/arch/arm64/boot/dts/qcom/shikra-cqm-som.dtsi b/arch/arm64/boot/dts/qcom/shikra-cqm-som.dtsi
index 541ba278bb2e..1b8cc52f88a5 100644
--- a/arch/arm64/boot/dts/qcom/shikra-cqm-som.dtsi
+++ b/arch/arm64/boot/dts/qcom/shikra-cqm-som.dtsi
@@ -134,6 +134,11 @@ &rpm_requests {
regulators {
compatible = "qcom,rpm-pm2250-regulators";
+ pm4125_s1: s1 {
+ regulator-min-microvolt = <1396000>;
+ regulator-max-microvolt = <1396000>;
+ };
+
pm4125_s2: s2 {
regulator-min-microvolt = <1000000>;
regulator-max-microvolt = <1200000>;
--
2.34.1
^ permalink raw reply [flat|nested] 12+ messages in thread* [PATCH v3 6/8] arm64: dts: qcom: shikra-cqs-evk: Enable sound card support
2026-09-17 4:37 [PATCH v3 0/8] arm64: dts: qcom: shikra: Enable audio on EVK boards Mohammad Rafi Shaik
` (4 preceding siblings ...)
2026-09-17 4:37 ` [PATCH v3 5/8] arm64: dts: qcom: shikra-cqm-evk: Enable sound card support Mohammad Rafi Shaik
@ 2026-09-17 4:37 ` Mohammad Rafi Shaik
2026-09-17 4:37 ` [PATCH v3 7/8] arm64: dts: qcom: shikra-iqs-evk: " Mohammad Rafi Shaik
` (2 subsequent siblings)
8 siblings, 0 replies; 12+ messages in thread
From: Mohammad Rafi Shaik @ 2026-09-17 4:37 UTC (permalink / raw)
To: Srinivas Kandagatla, Bjorn Andersson, Konrad Dybcio, Abel Vesa,
Rob Herring, Krzysztof Kozlowski, Conor Dooley
Cc: Mohammad Rafi Shaik, linux-sound, linux-arm-msm, devicetree,
linux-kernel
Enable the sound card on the shikra-cqs-evk platform, including
the PM4125 (Rouleur) headset codec, WSA885x speaker amp.
Also enable the required LPASS macro and SoundWire nodes, along with
the necessary pinctrl configurations for DMIC and I2S interfaces.
Also enable the required LPASS macro along with the necessary
pinctrl configurations for DMIC and I2S interfaces.
Signed-off-by: Mohammad Rafi Shaik <mohammad.rafi.shaik@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/shikra-cqs-evk.dts | 219 ++++++++++++++++++++++++++++
1 file changed, 219 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/shikra-cqs-evk.dts b/arch/arm64/boot/dts/qcom/shikra-cqs-evk.dts
index 01400612d147..4225543ba564 100644
--- a/arch/arm64/boot/dts/qcom/shikra-cqs-evk.dts
+++ b/arch/arm64/boot/dts/qcom/shikra-cqs-evk.dts
@@ -21,6 +21,121 @@ aliases {
chosen {
stdout-path = "serial0:115200n8";
};
+
+ sound {
+ compatible = "qcom,shikra-cqs-sndcard";
+ model = "shikra-cqs-evk";
+
+ pinctrl-0 = <&i2s2_default>, <&dmic_eldo_en_default>;
+ pinctrl-names = "default";
+
+ audio-routing = "VA DMIC0", "vdd-micb",
+ "VA DMIC1", "vdd-micb",
+ "VA DMIC2", "vdd-micb",
+ "VA DMIC3", "vdd-micb",
+ "VA SWR_ADC0", "ADC1_OUTPUT",
+ "VA SWR_ADC1", "ADC2_OUTPUT",
+ "AMIC1", "MIC BIAS1",
+ "AMIC2", "MIC BIAS2",
+ "AMIC3", "MIC BIAS3",
+ "IN1_HPHL", "HPHL_OUT",
+ "IN2_HPHR", "HPHR_OUT";
+
+ wcd-playback-dai-link {
+ link-name = "Headphones Playback";
+
+ codec {
+ sound-dai = <&pmic4125_codec 0>,
+ <&swr0 0>,
+ <&rxmacro 0>;
+ };
+
+ cpu {
+ sound-dai = <&q6apmbedai RX_CODEC_DMA_RX_1>;
+ };
+
+ platform {
+ sound-dai = <&q6apm>;
+ };
+ };
+
+ wcd-capture-dai-link {
+ link-name = "Headphones capture";
+
+ codec {
+ sound-dai = <&pmic4125_codec 1>,
+ <&swr1 0>,
+ <&vamacro 0>;
+ };
+
+ cpu {
+ sound-dai = <&q6apmbedai VA_CODEC_DMA_TX_1>;
+ };
+
+ platform {
+ sound-dai = <&q6apm>;
+ };
+ };
+
+ va-dmic-dai-link {
+ link-name = "VA DMIC Capture";
+
+ codec {
+ sound-dai = <&vamacro 0>;
+ };
+
+ cpu {
+ sound-dai = <&q6apmbedai VA_CODEC_DMA_TX_0>;
+ };
+
+ platform {
+ sound-dai = <&q6apm>;
+ };
+ };
+
+ wsa-playback-dai-link {
+ link-name = "WSA Playback";
+
+ codec {
+ sound-dai = <&wsa8855>;
+ dai-tdm-slot-num = <2>;
+ dai-tdm-slot-width = <32>;
+ dai-tdm-slot-rx-mask = <1 1>;
+ };
+
+ cpu {
+ sound-dai = <&q6apmbedai SECONDARY_TDM_RX_0>;
+ dai-tdm-slot-num = <2>;
+ dai-tdm-slot-width = <32>;
+ dai-tdm-slot-rx-mask = <1 1>;
+ };
+
+ platform {
+ sound-dai = <&q6apm>;
+ };
+ };
+ };
+};
+
+&i2c3 {
+ status = "okay";
+
+ wsa8855: speaker@c {
+ compatible = "qcom,wsa8855";
+ reg = <0x0c>;
+
+ pinctrl-0 = <&wsa8855_spkr_sd_n>;
+ pinctrl-names = "default";
+
+ powerdown-gpios = <&tlmm 2 GPIO_ACTIVE_LOW>;
+ interrupt-parent = <&tlmm>;
+ interrupts = <77 IRQ_TYPE_EDGE_FALLING>;
+ vdd-1p8-supply = <&pm4125_l15>;
+ vdd-io-supply = <&pm4125_l15>;
+ qcom,battery-config = "1s";
+
+ #sound-dai-cells = <0>;
+ };
};
&pm4125_hs_in {
@@ -31,6 +146,16 @@ &pm4125_ss_in {
remote-endpoint = <&usb_qmpphy_out>;
};
+&q6apmbedai {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ dai@40 {
+ reg = <SECONDARY_TDM_RX_0>;
+ clocks = <&q6prmcc LPASS_CLK_ID_QAIF_IF2_IBIT LPASS_CLK_ATTRIBUTE_COUPLE_NO>;
+ clock-names = "bclk";
+ };
+};
+
&remoteproc_cdsp {
firmware-name = "qcom/shikra/cdsp.mbn";
@@ -50,6 +175,18 @@ &remoteproc_mpss {
status = "okay";
};
+&rxmacro {
+ clocks = <&q6prmcc LPASS_CLK_ID_RX_CORE_MCLK LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
+ <&q6prmcc LPASS_CLK_ID_RX_CORE_NPL_MCLK LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
+ <&vamacro>;
+
+ clock-names = "mclk",
+ "npl",
+ "fsgen";
+
+ status = "okay";
+};
+
&sdhc_1 {
vmmc-supply = <&pm4125_l20>;
vqmmc-supply = <&pm4125_l14>;
@@ -100,3 +237,85 @@ &usb_2_hsphy {
status = "okay";
};
+
+&spmi_bus {
+ pmic@0 {
+ pmic4125_codec: audio-codec@f000 {
+ compatible = "qcom,pm4125-codec";
+ reg = <0xf000>;
+ vdd-io-supply = <&pm4125_l15>;
+ vdd-cp-supply = <&pm4125_s1>;
+ vdd-pa-vpos-supply = <&pm4125_s1>;
+
+ vdd-mic-bias-supply = <&pm4125_l22>;
+ qcom,micbias1-microvolt = <1800000>;
+ qcom,micbias2-microvolt = <1800000>;
+ qcom,micbias3-microvolt = <1800000>;
+
+ qcom,rx-device = <&pm4125_rx>;
+ qcom,tx-device = <&pm4125_tx>;
+ #sound-dai-cells = <1>;
+
+ status = "okay";
+ };
+ };
+};
+
+&swr0 {
+ status = "okay";
+
+ pm4125_rx: codec@0,4 {
+ compatible = "sdw20217010c00";
+ reg = <0 4>;
+ qcom,rx-port-mapping = <1 2 3 4 5 >;
+ };
+};
+
+&swr1 {
+ status = "okay";
+
+ pm4125_tx: codec@0,3 {
+ compatible = "sdw20217010c00";
+ reg = <0 3>;
+ qcom,tx-port-mapping = <2 3>;
+ };
+};
+
+&tlmm {
+ dmic_eldo_en_default: dmic-eldo-default-active-state {
+ pins = "gpio71";
+ function = "gpio";
+ drive-strength = <8>;
+ bias-disable;
+ output-high;
+ };
+
+ i2s2_default: i2s2-default-active-state {
+ pins = "gpio100", "gpio101", "gpio102", "gpio103";
+ function = "i2s2";
+ drive-strength = <8>;
+ bias-disable;
+ };
+
+ wsa8855_spkr_sd_n: wsa8855-spkr-sd-n-active-state {
+ pins = "gpio2";
+ function = "gpio";
+ drive-strength = <8>;
+ input-disable;
+ output-enable;
+ };
+};
+
+&vamacro {
+ pinctrl-0 = <&dmic01_default>, <&dmic23_default>;
+ pinctrl-names = "default";
+
+ clocks = <&q6prmcc LPASS_CLK_ID_TX_CORE_MCLK LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
+ <&q6prmcc LPASS_CLK_ID_TX_CORE_NPL_MCLK LPASS_CLK_ATTRIBUTE_COUPLE_NO>;
+ clock-names = "mclk",
+ "npl";
+
+ qcom,dmic-sample-rate = <4800000>;
+ status = "okay";
+};
+
--
2.34.1
^ permalink raw reply [flat|nested] 12+ messages in thread* [PATCH v3 7/8] arm64: dts: qcom: shikra-iqs-evk: Enable sound card support
2026-09-17 4:37 [PATCH v3 0/8] arm64: dts: qcom: shikra: Enable audio on EVK boards Mohammad Rafi Shaik
` (5 preceding siblings ...)
2026-09-17 4:37 ` [PATCH v3 6/8] arm64: dts: qcom: shikra-cqs-evk: " Mohammad Rafi Shaik
@ 2026-09-17 4:37 ` Mohammad Rafi Shaik
2026-09-17 4:37 ` [PATCH v3 8/8] arm64: defconfig: Enable Qualcomm PM4125 and WSA885X drivers Mohammad Rafi Shaik
2026-09-29 3:15 ` (subset) [PATCH v3 0/8] arm64: dts: qcom: shikra: Enable audio on EVK boards Bjorn Andersson
8 siblings, 0 replies; 12+ messages in thread
From: Mohammad Rafi Shaik @ 2026-09-17 4:37 UTC (permalink / raw)
To: Srinivas Kandagatla, Bjorn Andersson, Konrad Dybcio, Abel Vesa,
Rob Herring, Krzysztof Kozlowski, Conor Dooley
Cc: Mohammad Rafi Shaik, linux-sound, linux-arm-msm, devicetree,
linux-kernel, Ajay Kumar Nandam
Enable the IQS EVK audio card using MAX98091 on I2S0 for primary
playback/capture and VA DMIC capture through q6apm backend links.
Add board clock and pinctrl states required for codec IRQ, external
mclk and digital mic routing.
Co-developed-by: Ajay Kumar Nandam <ajay.nandam@oss.qualcomm.com>
Signed-off-by: Ajay Kumar Nandam <ajay.nandam@oss.qualcomm.com>
Signed-off-by: Mohammad Rafi Shaik <mohammad.rafi.shaik@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/shikra-iqs-evk.dts | 144 ++++++++++++++++++++++++++++
1 file changed, 144 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/shikra-iqs-evk.dts b/arch/arm64/boot/dts/qcom/shikra-iqs-evk.dts
index 543d769125ef..54c840a748c8 100644
--- a/arch/arm64/boot/dts/qcom/shikra-iqs-evk.dts
+++ b/arch/arm64/boot/dts/qcom/shikra-iqs-evk.dts
@@ -21,6 +21,105 @@ aliases {
chosen {
stdout-path = "serial0:115200n8";
};
+
+ sound {
+ compatible = "qcom,shikra-iqs-sndcard";
+ model = "shikra-iqs-evk";
+
+ pinctrl-0 = <&i2s0_default>, <&ext_mclk2_active>;
+ pinctrl-names = "default";
+
+ audio-routing = "IN34", "Headset Mic",
+ "Headset Mic", "MICBIAS",
+ "DMICL", "Int Mic",
+ "Int Mic", "MICBIAS",
+ "Headphone", "HPL",
+ "Headphone", "HPR",
+ "Speaker", "SPKL",
+ "Speaker", "SPKR",
+ "VA DMIC0", "vdd-micb",
+ "VA DMIC1", "vdd-micb",
+ "VA DMIC2", "vdd-micb",
+ "VA DMIC3", "vdd-micb";
+
+ pri-i2s-playback-dai-link {
+ link-name = "Analog Playback";
+
+ codec {
+ sound-dai = <&max98091>;
+ };
+
+ cpu {
+ sound-dai = <&q6apmbedai PRIMARY_MI2S_RX>;
+ };
+
+ platform {
+ sound-dai = <&q6apm>;
+ };
+ };
+
+ pri-i2s-capture-dai-link {
+ link-name = "Analog Capture";
+
+ codec {
+ sound-dai = <&max98091>;
+ };
+
+ cpu {
+ sound-dai = <&q6apmbedai PRIMARY_MI2S_TX>;
+ };
+
+ platform {
+ sound-dai = <&q6apm>;
+ };
+ };
+
+ va-dmic-dai-link {
+ link-name = "VA DMIC Capture";
+
+ codec {
+ sound-dai = <&vamacro 0>;
+ };
+
+ cpu {
+ sound-dai = <&q6apmbedai VA_CODEC_DMA_TX_0>;
+ };
+
+ platform {
+ sound-dai = <&q6apm>;
+ };
+ };
+ };
+};
+
+&i2c3 {
+ status = "okay";
+
+ max98091: audio-codec@10 {
+ compatible = "maxim,max98091";
+ reg = <0x10>;
+
+ pinctrl-0 = <&max98091_default>;
+ pinctrl-names = "default";
+
+ interrupts-extended = <&tlmm 28 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&q6prmcc LPASS_CLK_ID_MCLK_2 LPASS_CLK_ATTRIBUTE_COUPLE_NO>;
+ clock-names = "mclk";
+ assigned-clocks = <&q6prmcc LPASS_CLK_ID_MCLK_2 LPASS_CLK_ATTRIBUTE_COUPLE_NO>;
+ assigned-clock-rates = <12288000>;
+ #sound-dai-cells = <0>;
+ };
+};
+
+&q6apmbedai {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ dai@16 {
+ reg = <PRIMARY_MI2S_RX>;
+ clocks = <&q6prmcc LPASS_CLK_ID_QAIF_IF0_IBIT LPASS_CLK_ATTRIBUTE_COUPLE_NO>;
+ clock-names = "bclk";
+ };
};
&remoteproc_cdsp {
@@ -80,3 +179,48 @@ &usb_2_hsphy {
status = "okay";
};
+
+&tlmm {
+ dmic_eldo_en_default: dmic-eldo-default-active-state {
+ pins = "gpio71";
+ function = "gpio";
+ drive-strength = <8>;
+ bias-disable;
+ output-high;
+ };
+
+ ext_mclk2_active: ext-mclk2-state {
+ pins = "gpio110";
+ function = "ext_mclk";
+ drive-strength = <8>;
+ bias-disable;
+ };
+
+ i2s0_default: i2s0-default-active-state {
+ pins = "gpio105", "gpio106", "gpio107", "gpio108", "gpio109";
+ function = "i2s0";
+ drive-strength = <8>;
+ bias-disable;
+ };
+
+ max98091_default: max98091-default-state {
+ pins = "gpio28";
+ function = "gpio";
+ bias-pull-up;
+ };
+};
+
+&vamacro {
+ clocks = <&q6prmcc LPASS_CLK_ID_TX_CORE_MCLK LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
+ <&q6prmcc LPASS_CLK_ID_TX_CORE_NPL_MCLK LPASS_CLK_ATTRIBUTE_COUPLE_NO>;
+ clock-names = "mclk",
+ "npl";
+
+ pinctrl-0 = <&dmic01_default>, <&dmic23_default>, <&dmic_eldo_en_default>;
+ pinctrl-names = "default";
+
+ qcom,dmic-sample-rate = <4800000>;
+
+ status = "okay";
+};
+
--
2.34.1
^ permalink raw reply [flat|nested] 12+ messages in thread* [PATCH v3 8/8] arm64: defconfig: Enable Qualcomm PM4125 and WSA885X drivers
2026-09-17 4:37 [PATCH v3 0/8] arm64: dts: qcom: shikra: Enable audio on EVK boards Mohammad Rafi Shaik
` (6 preceding siblings ...)
2026-09-17 4:37 ` [PATCH v3 7/8] arm64: dts: qcom: shikra-iqs-evk: " Mohammad Rafi Shaik
@ 2026-09-17 4:37 ` Mohammad Rafi Shaik
2026-09-29 3:15 ` (subset) [PATCH v3 0/8] arm64: dts: qcom: shikra: Enable audio on EVK boards Bjorn Andersson
8 siblings, 0 replies; 12+ messages in thread
From: Mohammad Rafi Shaik @ 2026-09-17 4:37 UTC (permalink / raw)
To: Srinivas Kandagatla, Bjorn Andersson, Konrad Dybcio, Abel Vesa,
Rob Herring, Krzysztof Kozlowski, Conor Dooley
Cc: Mohammad Rafi Shaik, linux-sound, linux-arm-msm, devicetree,
linux-kernel
Qualcomm Shikra CQM and CQS EVK boards use the PM4125 audio codec for
headphone playback and capture, and the WSA8855 amplifier for speaker
playback. Enable both drivers as modules in arm64_defconfig so that
audio functionality is available on these boards with the default arm64
configuration.
Signed-off-by: Mohammad Rafi Shaik <mohammad.rafi.shaik@oss.qualcomm.com>
---
arch/arm64/configs/defconfig | 2 ++
1 file changed, 2 insertions(+)
diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig
index 5217de386edc..0bb07c0f4451 100644
--- a/arch/arm64/configs/defconfig
+++ b/arch/arm64/configs/defconfig
@@ -1167,6 +1167,7 @@ CONFIG_SND_SOC_GTM601=m
CONFIG_SND_SOC_MAX98090=m
CONFIG_SND_SOC_MSM8916_WCD_ANALOG=m
CONFIG_SND_SOC_MSM8916_WCD_DIGITAL=m
+CONFIG_SND_SOC_PM4125_SDW=m
CONFIG_SND_SOC_RK3308=m
CONFIG_SND_SOC_RK817=m
CONFIG_SND_SOC_RT5640=m
@@ -1189,6 +1190,7 @@ CONFIG_SND_SOC_WM8978=m
CONFIG_SND_SOC_WSA881X=m
CONFIG_SND_SOC_WSA883X=m
CONFIG_SND_SOC_WSA884X=m
+CONFIG_SND_SOC_WSA885X=m
CONFIG_SND_SOC_NAU8822=m
CONFIG_SND_SOC_LPASS_WSA_MACRO=m
CONFIG_SND_SOC_LPASS_VA_MACRO=m
--
2.34.1
^ permalink raw reply [flat|nested] 12+ messages in thread* Re: (subset) [PATCH v3 0/8] arm64: dts: qcom: shikra: Enable audio on EVK boards
2026-09-17 4:37 [PATCH v3 0/8] arm64: dts: qcom: shikra: Enable audio on EVK boards Mohammad Rafi Shaik
` (7 preceding siblings ...)
2026-09-17 4:37 ` [PATCH v3 8/8] arm64: defconfig: Enable Qualcomm PM4125 and WSA885X drivers Mohammad Rafi Shaik
@ 2026-09-29 3:15 ` Bjorn Andersson
8 siblings, 0 replies; 12+ messages in thread
From: Bjorn Andersson @ 2026-09-29 3:15 UTC (permalink / raw)
To: Srinivas Kandagatla, Konrad Dybcio, Abel Vesa, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Mohammad Rafi Shaik
Cc: linux-sound, linux-arm-msm, devicetree, linux-kernel,
Krzysztof Kozlowski, Harendra Gautam, Ajay Kumar Nandam
On Thu, 17 Sep 2026 10:07:29 +0530, Mohammad Rafi Shaik wrote:
> This series enables the Shikra audio path on EVK targets by adding the QAIF
> CPU endpoint, GPR/APM/PRM services, SoundWire and LPASS macro nodes, and
> board-level sound card wiring for CQM, CQS and IQS variants.
>
> Shikra EVK variants use different audio components and processing
> architectures:
> - CQM/CQS use an I2S-based path with WSA885x amplifiers and
> PM4125 + Rouleur codec components.
> - CQS uses modem-DSP based audio processing.
> - IQS uses a third-party MAX98091 codec with modem-DSP support.
>
> [...]
Applied, thanks!
[1/8] ASoC: dt-bindings: qcom,apr: Add modem_apps GLINK channel for shikra
commit: d5a42f092babbd4af6c9b976581bb2993c9f0be1
Best regards,
--
Bjorn Andersson <andersson@kernel.org>
^ permalink raw reply [flat|nested] 12+ messages in thread