* [PATCH v8 0/9] Enable audio on qcs6490-RB3Gen2 and qcm6490-idp boards
@ 2025-08-21 4:49 Prasad Kumpatla
2025-08-21 4:49 ` [PATCH v8 1/9] arm64: dts: qcom: qcs6490-audioreach: Add gpr node Prasad Kumpatla
` (10 more replies)
0 siblings, 11 replies; 20+ messages in thread
From: Prasad Kumpatla @ 2025-08-21 4:49 UTC (permalink / raw)
To: Bjorn Andersson, Linus Walleij, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Srinivas Kandagatla, Liam Girdwood, Mark Brown,
Konrad Dybcio
Cc: cros-qcom-dts-watchers, linux-arm-msm, linux-gpio, devicetree,
linux-kernel, linux-sound, quic_pkumpatl, kernel,
Mohammad Rafi Shaik
From: Mohammad Rafi Shaik <mohammad.rafi.shaik@oss.qualcomm.com>
Audio support is now enabled on the qcs6490-RB3Gen2 and qcm6490-idp boards.
The updates include adding the necessary audio device tree support and the required
dependencies.
Both the qcs6490-RB3Gen2 and qcm6490-idp boards are derived from the same SoC
platform. Therefore, the audio support changes are included in a single patch
set for consistency and ease of maintenance.
changes in [v8]:
- Added drive strength for all lpass_dmic pinctrl nodes reported by Konrad Dybcio.
- Rebased changes on top of the latest kernel tree.
- Link to V7: https://lore.kernel.org/all/20250720173215.3075576-1-quic_pkumpatl@quicinc.com/
changes in [v7]:
- Addressed the review commnets in dt-binding patches from Krzysztof Kozlowski
- Rebased changes on top of dependent patches
- Link to V6: https://lore.kernel.org/linux-sound/20250715180050.3920019-1-quic_pkumpatl@quicinc.com/
changes in [v6]:
- Addressed the review commnets in dt-binding patches from Krzysztof Kozlowski
- Link to V5: https://lore.kernel.org/linux-arm-msm/20250625082927.31038-1-quic_pkumpatl@quicinc.com/
changes in [v5]:
- Added separate patch for QCS6490 pinctrl bindings.
- Updated commit message with more description.
- Addressed the review commnets.
- Link to V4: https://lore.kernel.org/linux-arm-msm/20250527111227.2318021-1-quic_pkumpatl@quicinc.com/
Changes in [v4]:
- Fix DT binding errors by adding dt-binding clock changes for ADSP base platform.
- Link to V3 : https://lore.kernel.org/linux-arm-msm/20250520062618.2765109-1-quic_pkumpatl@quicinc.com/
Changes in [v3]:
- Added protection-domain in gpr services.
- Addressed the review commnets from Konrad Dybcio.
- Fix DT binding errors reported by Rob Herring.
- Link to V2 : https://lore.kernel.org/linux-arm-msm/20250429092430.21477-1-quic_pkumpatl@quicinc.com/
Changes in [v2]:
- Created dtsi file to handle common audio nodes to support Audioreach.
- Addressed the review comments.
- Link to V1 : https://lore.kernel.org/linux-arm-msm/20250317054151.6095-2-quic_pkumpatl@quicinc.com/
Mohammad Rafi Shaik (9):
arm64: dts: qcom: qcs6490-audioreach: Add gpr node
dt-bindings: pinctrl: qcom,sc7280-lpass-lpi-pinctrl: Document the
clock property
ASoC: dt-bindings: qcom,lpass-va-macro: Update bindings for clocks to
support ADSP
arm64: dts: qcom: sc7280: Add WSA SoundWire and LPASS support
arm64: dts: qcom: qcs6490-audioreach: Modify LPASS macros clock
settings for audioreach
arm64: dts: qcom: qcs6490-rb3gen2: Add WSA8830 speakers amplifier
arm64: dts: qcom: qcs6490-rb3gen2: Add sound card
arm64: dts: qcom: qcm6490-idp: Add WSA8830 speakers and WCD9370
headset codec
arm64: dts: qcom: qcm6490-idp: Add sound card
.../qcom,sc7280-lpass-lpi-pinctrl.yaml | 16 ++
.../bindings/sound/qcom,lpass-va-macro.yaml | 23 +-
arch/arm64/boot/dts/qcom/qcm6490-idp.dts | 207 ++++++++++++++++++
.../boot/dts/qcom/qcs6490-audioreach.dtsi | 121 ++++++++++
arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts | 80 +++++++
arch/arm64/boot/dts/qcom/sc7280.dtsi | 99 ++++++++-
6 files changed, 540 insertions(+), 6 deletions(-)
create mode 100644 arch/arm64/boot/dts/qcom/qcs6490-audioreach.dtsi
base-commit: 5303936d609e09665deda94eaedf26a0e5c3a087
--
2.34.1
^ permalink raw reply [flat|nested] 20+ messages in thread
* [PATCH v8 1/9] arm64: dts: qcom: qcs6490-audioreach: Add gpr node
2025-08-21 4:49 [PATCH v8 0/9] Enable audio on qcs6490-RB3Gen2 and qcm6490-idp boards Prasad Kumpatla
@ 2025-08-21 4:49 ` Prasad Kumpatla
2025-09-02 14:43 ` Bjorn Andersson
2025-08-21 4:49 ` [PATCH v8 2/9] dt-bindings: pinctrl: qcom,sc7280-lpass-lpi-pinctrl: Document the clock property Prasad Kumpatla
` (9 subsequent siblings)
10 siblings, 1 reply; 20+ messages in thread
From: Prasad Kumpatla @ 2025-08-21 4:49 UTC (permalink / raw)
To: Bjorn Andersson, Linus Walleij, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Srinivas Kandagatla, Liam Girdwood, Mark Brown,
Konrad Dybcio
Cc: cros-qcom-dts-watchers, linux-arm-msm, linux-gpio, devicetree,
linux-kernel, linux-sound, quic_pkumpatl, kernel,
Mohammad Rafi Shaik, Konrad Dybcio
From: Mohammad Rafi Shaik <mohammad.rafi.shaik@oss.qualcomm.com>
Add GPR(Generic Pack router) node along with
APM(Audio Process Manager) and PRM(Proxy resource
Manager) audio services.
A new qcs6490-audioreach.dtsi file has been added to
update AudioReach specific device tree configurations.
The existing audio nodes in sc7280.dtsi, which were designed
for the ADSP Bypass solution. The audio nodes now being updated
in qcs6490-audioreach.dtsi to support the ADSP-based AudioReach
architecture.
Signed-off-by: Mohammad Rafi Shaik <mohammad.rafi.shaik@oss.qualcomm.com>
Co-developed-by: Prasad Kumpatla <quic_pkumpatl@quicinc.com>
Signed-off-by: Prasad Kumpatla <quic_pkumpatl@quicinc.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
---
.../boot/dts/qcom/qcs6490-audioreach.dtsi | 54 +++++++++++++++++++
arch/arm64/boot/dts/qcom/sc7280.dtsi | 2 +-
2 files changed, 55 insertions(+), 1 deletion(-)
create mode 100644 arch/arm64/boot/dts/qcom/qcs6490-audioreach.dtsi
diff --git a/arch/arm64/boot/dts/qcom/qcs6490-audioreach.dtsi b/arch/arm64/boot/dts/qcom/qcs6490-audioreach.dtsi
new file mode 100644
index 000000000000..282938c042f7
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/qcs6490-audioreach.dtsi
@@ -0,0 +1,54 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * qcs6490 device tree source for Audioreach Solution.
+ * This file will configure and manage nodes from sc7280.dtsi to
+ * support the AudioReach solution.
+ *
+ * Copyright (c) 2025 Qualcomm Innovation Center, Inc. All rights reserved.
+ */
+
+#include <dt-bindings/clock/qcom,lpass-sc7280.h>
+#include <dt-bindings/soc/qcom,gpr.h>
+#include <dt-bindings/sound/qcom,q6afe.h>
+#include <dt-bindings/sound/qcom,q6dsp-lpass-ports.h>
+
+&remoteproc_adsp_glink {
+ /delete-node/ apr;
+
+ gpr {
+ compatible = "qcom,gpr";
+ qcom,glink-channels = "adsp_apps";
+ qcom,domain = <GPR_DOMAIN_ID_ADSP>;
+ qcom,intents = <512 20>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ q6apm: service@1 {
+ compatible = "qcom,q6apm";
+ reg = <GPR_APM_MODULE_IID>;
+ #sound-dai-cells = <0>;
+ qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd";
+
+ q6apmdai: dais {
+ compatible = "qcom,q6apm-dais";
+ iommus = <&apps_smmu 0x1801 0x0>;
+ };
+
+ q6apmbedai: bedais {
+ compatible = "qcom,q6apm-lpass-dais";
+ #sound-dai-cells = <1>;
+ };
+ };
+
+ q6prm: service@2 {
+ compatible = "qcom,q6prm";
+ reg = <GPR_PRM_MODULE_IID>;
+ qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd";
+
+ q6prmcc: clock-controller {
+ compatible = "qcom,q6prm-lpass-clocks";
+ #clock-cells = <2>;
+ };
+ };
+ };
+};
diff --git a/arch/arm64/boot/dts/qcom/sc7280.dtsi b/arch/arm64/boot/dts/qcom/sc7280.dtsi
index 0dd6a5c91d10..18e959806a13 100644
--- a/arch/arm64/boot/dts/qcom/sc7280.dtsi
+++ b/arch/arm64/boot/dts/qcom/sc7280.dtsi
@@ -3944,7 +3944,7 @@ remoteproc_adsp: remoteproc@3700000 {
status = "disabled";
- glink-edge {
+ remoteproc_adsp_glink: glink-edge {
interrupts-extended = <&ipcc IPCC_CLIENT_LPASS
IPCC_MPROC_SIGNAL_GLINK_QMP
IRQ_TYPE_EDGE_RISING>;
--
2.34.1
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH v8 2/9] dt-bindings: pinctrl: qcom,sc7280-lpass-lpi-pinctrl: Document the clock property
2025-08-21 4:49 [PATCH v8 0/9] Enable audio on qcs6490-RB3Gen2 and qcm6490-idp boards Prasad Kumpatla
2025-08-21 4:49 ` [PATCH v8 1/9] arm64: dts: qcom: qcs6490-audioreach: Add gpr node Prasad Kumpatla
@ 2025-08-21 4:49 ` Prasad Kumpatla
2025-08-21 4:49 ` [PATCH v8 3/9] ASoC: dt-bindings: qcom,lpass-va-macro: Update bindings for clocks to support ADSP Prasad Kumpatla
` (8 subsequent siblings)
10 siblings, 0 replies; 20+ messages in thread
From: Prasad Kumpatla @ 2025-08-21 4:49 UTC (permalink / raw)
To: Bjorn Andersson, Linus Walleij, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Srinivas Kandagatla, Liam Girdwood, Mark Brown,
Konrad Dybcio
Cc: cros-qcom-dts-watchers, linux-arm-msm, linux-gpio, devicetree,
linux-kernel, linux-sound, quic_pkumpatl, kernel,
Mohammad Rafi Shaik, Krzysztof Kozlowski
From: Mohammad Rafi Shaik <mohammad.rafi.shaik@oss.qualcomm.com>
Document the clock property in sc7280 LPASS LPI pinctrl node.
Clock settings required for Audioreach solution.
The existing SC7280 platform only supports non-ADSP audio solutions.
To enable audio functionality on ADSP with the AudioReach solution.
additional core and audio hardware clocks must be configured.
Without these clocks, the ADSP will crash.
Signed-off-by: Mohammad Rafi Shaik <mohammad.rafi.shaik@oss.qualcomm.com>
Co-developed-by: Prasad Kumpatla <quic_pkumpatl@quicinc.com>
Signed-off-by: Prasad Kumpatla <quic_pkumpatl@quicinc.com>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
---
.../pinctrl/qcom,sc7280-lpass-lpi-pinctrl.yaml | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/Documentation/devicetree/bindings/pinctrl/qcom,sc7280-lpass-lpi-pinctrl.yaml b/Documentation/devicetree/bindings/pinctrl/qcom,sc7280-lpass-lpi-pinctrl.yaml
index 08801cc4e476..bc7b8dda8837 100644
--- a/Documentation/devicetree/bindings/pinctrl/qcom,sc7280-lpass-lpi-pinctrl.yaml
+++ b/Documentation/devicetree/bindings/pinctrl/qcom,sc7280-lpass-lpi-pinctrl.yaml
@@ -20,6 +20,16 @@ properties:
reg:
maxItems: 2
+ clocks:
+ items:
+ - description: LPASS Core voting clock
+ - description: LPASS Audio voting clock
+
+ clock-names:
+ items:
+ - const: core
+ - const: audio
+
patternProperties:
"-state$":
oneOf:
@@ -70,10 +80,16 @@ unevaluatedProperties: false
examples:
- |
+ #include <dt-bindings/sound/qcom,q6afe.h>
lpass_tlmm: pinctrl@33c0000 {
compatible = "qcom,sc7280-lpass-lpi-pinctrl";
reg = <0x33c0000 0x20000>,
<0x3550000 0x10000>;
+
+ clocks = <&q6prmcc LPASS_HW_MACRO_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
+ <&q6prmcc LPASS_HW_DCODEC_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>;
+ clock-names = "core", "audio";
+
gpio-controller;
#gpio-cells = <2>;
gpio-ranges = <&lpass_tlmm 0 0 15>;
--
2.34.1
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH v8 3/9] ASoC: dt-bindings: qcom,lpass-va-macro: Update bindings for clocks to support ADSP
2025-08-21 4:49 [PATCH v8 0/9] Enable audio on qcs6490-RB3Gen2 and qcm6490-idp boards Prasad Kumpatla
2025-08-21 4:49 ` [PATCH v8 1/9] arm64: dts: qcom: qcs6490-audioreach: Add gpr node Prasad Kumpatla
2025-08-21 4:49 ` [PATCH v8 2/9] dt-bindings: pinctrl: qcom,sc7280-lpass-lpi-pinctrl: Document the clock property Prasad Kumpatla
@ 2025-08-21 4:49 ` Prasad Kumpatla
2025-08-21 4:49 ` [PATCH v8 4/9] arm64: dts: qcom: sc7280: Add WSA SoundWire and LPASS support Prasad Kumpatla
` (7 subsequent siblings)
10 siblings, 0 replies; 20+ messages in thread
From: Prasad Kumpatla @ 2025-08-21 4:49 UTC (permalink / raw)
To: Bjorn Andersson, Linus Walleij, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Srinivas Kandagatla, Liam Girdwood, Mark Brown,
Konrad Dybcio
Cc: cros-qcom-dts-watchers, linux-arm-msm, linux-gpio, devicetree,
linux-kernel, linux-sound, quic_pkumpatl, kernel,
Mohammad Rafi Shaik, Krzysztof Kozlowski
From: Mohammad Rafi Shaik <mohammad.rafi.shaik@oss.qualcomm.com>
Manage clock settings for ADSP solution. On Existing ADSP bypass
solutions, the macro and dcodec GDSCs are enabled using power domains
in lpass-va-macro which is not applicable for ADSP based platform.
Signed-off-by: Mohammad Rafi Shaik <mohammad.rafi.shaik@oss.qualcomm.com>
Co-developed-by: Prasad Kumpatla <quic_pkumpatl@quicinc.com>
Signed-off-by: Prasad Kumpatla <quic_pkumpatl@quicinc.com>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
---
.../bindings/sound/qcom,lpass-va-macro.yaml | 23 +++++++++++++++----
1 file changed, 18 insertions(+), 5 deletions(-)
diff --git a/Documentation/devicetree/bindings/sound/qcom,lpass-va-macro.yaml b/Documentation/devicetree/bindings/sound/qcom,lpass-va-macro.yaml
index dd549db6c841..3bfb0538dba2 100644
--- a/Documentation/devicetree/bindings/sound/qcom,lpass-va-macro.yaml
+++ b/Documentation/devicetree/bindings/sound/qcom,lpass-va-macro.yaml
@@ -79,12 +79,25 @@ allOf:
compatible:
contains:
const: qcom,sc7280-lpass-va-macro
+
then:
- properties:
- clocks:
- maxItems: 1
- clock-names:
- maxItems: 1
+ if:
+ required:
+ - power-domains
+ then:
+ properties:
+ clocks:
+ maxItems: 1
+ clock-names:
+ maxItems: 1
+ else:
+ properties:
+ clocks:
+ minItems: 3
+ maxItems: 3
+ clock-names:
+ minItems: 3
+ maxItems: 3
- if:
properties:
--
2.34.1
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH v8 4/9] arm64: dts: qcom: sc7280: Add WSA SoundWire and LPASS support
2025-08-21 4:49 [PATCH v8 0/9] Enable audio on qcs6490-RB3Gen2 and qcm6490-idp boards Prasad Kumpatla
` (2 preceding siblings ...)
2025-08-21 4:49 ` [PATCH v8 3/9] ASoC: dt-bindings: qcom,lpass-va-macro: Update bindings for clocks to support ADSP Prasad Kumpatla
@ 2025-08-21 4:49 ` Prasad Kumpatla
2025-08-21 4:49 ` [PATCH v8 5/9] arm64: dts: qcom: qcs6490-audioreach: Modify LPASS macros clock settings for audioreach Prasad Kumpatla
` (6 subsequent siblings)
10 siblings, 0 replies; 20+ messages in thread
From: Prasad Kumpatla @ 2025-08-21 4:49 UTC (permalink / raw)
To: Bjorn Andersson, Linus Walleij, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Srinivas Kandagatla, Liam Girdwood, Mark Brown,
Konrad Dybcio
Cc: cros-qcom-dts-watchers, linux-arm-msm, linux-gpio, devicetree,
linux-kernel, linux-sound, quic_pkumpatl, kernel,
Mohammad Rafi Shaik, Konrad Dybcio
From: Mohammad Rafi Shaik <mohammad.rafi.shaik@oss.qualcomm.com>
Add WSA LPASS macro Codec along with SoundWire controller.
Signed-off-by: Mohammad Rafi Shaik <mohammad.rafi.shaik@oss.qualcomm.com>
Co-developed-by: Prasad Kumpatla <quic_pkumpatl@quicinc.com>
Signed-off-by: Prasad Kumpatla <quic_pkumpatl@quicinc.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/sc7280.dtsi | 77 ++++++++++++++++++++++++++++
1 file changed, 77 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/sc7280.dtsi b/arch/arm64/boot/dts/qcom/sc7280.dtsi
index 18e959806a13..c51c38cf147a 100644
--- a/arch/arm64/boot/dts/qcom/sc7280.dtsi
+++ b/arch/arm64/boot/dts/qcom/sc7280.dtsi
@@ -28,6 +28,7 @@
#include <dt-bindings/soc/qcom,apr.h>
#include <dt-bindings/soc/qcom,rpmh-rsc.h>
#include <dt-bindings/sound/qcom,lpass.h>
+#include <dt-bindings/sound/qcom,q6afe.h>
#include <dt-bindings/sound/qcom,q6asm.h>
#include <dt-bindings/thermal/thermal.h>
@@ -2773,6 +2774,66 @@ swr1: soundwire@3230000 {
status = "disabled";
};
+ lpass_wsa_macro: codec@3240000 {
+ compatible = "qcom,sc7280-lpass-wsa-macro";
+ reg = <0x0 0x03240000 0x0 0x1000>;
+
+ clocks = <&lpass_aon LPASS_AON_CC_TX_MCLK_CLK>,
+ <&lpass_aon LPASS_AON_CC_TX_MCLK_2X_CLK>,
+ <&q6afecc LPASS_HW_MACRO_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
+ <&q6afecc LPASS_HW_DCODEC_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
+ <&lpass_va_macro>;
+ clock-names = "mclk",
+ "npl",
+ "macro",
+ "dcodec",
+ "fsgen";
+
+ pinctrl-0 = <&lpass_wsa_swr_clk>, <&lpass_wsa_swr_data>;
+ pinctrl-names = "default";
+
+ #clock-cells = <0>;
+ clock-output-names = "mclk";
+ #sound-dai-cells = <1>;
+
+ status = "disabled";
+ };
+
+ swr2: soundwire@3250000 {
+ compatible = "qcom,soundwire-v1.6.0";
+ reg = <0x0 0x03250000 0x0 0x2000>;
+
+ interrupts = <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&lpass_wsa_macro>;
+ clock-names = "iface";
+
+ resets = <&lpass_audiocc LPASS_AUDIO_SWR_WSA_CGCR>;
+ reset-names = "swr_audio_cgcr";
+
+ qcom,din-ports = <2>;
+ qcom,dout-ports = <6>;
+
+ qcom,ports-sinterval-low = /bits/ 8 <0x07 0x1f 0x3f 0x07
+ 0x1f 0x3f 0x0f 0x0f>;
+ qcom,ports-offset1 = /bits/ 8 <0x01 0x02 0x0c 0x06 0x12 0x0d 0x07 0x0a>;
+ qcom,ports-offset2 = /bits/ 8 <0xff 0x00 0x1f 0xff 0x00 0x1f 0x00 0x00>;
+ qcom,ports-hstart = /bits/ 8 <0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff>;
+ qcom,ports-hstop = /bits/ 8 <0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff>;
+ qcom,ports-word-length = /bits/ 8 <0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff>;
+ qcom,ports-block-pack-mode = /bits/ 8 <0xff 0xff 0x01 0xff 0xff 0x01
+ 0xff 0xff>;
+ qcom,ports-block-group-count = /bits/ 8 <0xff 0xff 0xff 0xff 0xff 0xff
+ 0xff 0xff>;
+ qcom,ports-lane-control = /bits/ 8 <0xff 0xff 0xff 0xff 0xff 0xff
+ 0xff 0xff>;
+
+ #address-cells = <2>;
+ #size-cells = <0>;
+ #sound-dai-cells = <1>;
+
+ status = "disabled";
+ };
+
lpass_audiocc: clock-controller@3300000 {
compatible = "qcom,sc7280-lpassaudiocc";
reg = <0 0x03300000 0 0x30000>,
@@ -2976,6 +3037,22 @@ lpass_tx_swr_data: tx-swr-data-state {
pins = "gpio1", "gpio2", "gpio14";
function = "swr_tx_data";
};
+
+ lpass_wsa_swr_clk: wsa-swr-clk-state {
+ pins = "gpio10";
+ function = "wsa_swr_clk";
+ drive-strength = <2>;
+ slew-rate = <1>;
+ bias-disable;
+ };
+
+ lpass_wsa_swr_data: wsa-swr-data-state {
+ pins = "gpio11";
+ function = "wsa_swr_data";
+ drive-strength = <2>;
+ slew-rate = <1>;
+ bias-bus-hold;
+ };
};
gpu: gpu@3d00000 {
--
2.34.1
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH v8 5/9] arm64: dts: qcom: qcs6490-audioreach: Modify LPASS macros clock settings for audioreach
2025-08-21 4:49 [PATCH v8 0/9] Enable audio on qcs6490-RB3Gen2 and qcm6490-idp boards Prasad Kumpatla
` (3 preceding siblings ...)
2025-08-21 4:49 ` [PATCH v8 4/9] arm64: dts: qcom: sc7280: Add WSA SoundWire and LPASS support Prasad Kumpatla
@ 2025-08-21 4:49 ` Prasad Kumpatla
2025-09-02 14:47 ` Bjorn Andersson
2025-08-21 4:49 ` [PATCH v8 6/9] arm64: dts: qcom: qcs6490-rb3gen2: Add WSA8830 speakers amplifier Prasad Kumpatla
` (5 subsequent siblings)
10 siblings, 1 reply; 20+ messages in thread
From: Prasad Kumpatla @ 2025-08-21 4:49 UTC (permalink / raw)
To: Bjorn Andersson, Linus Walleij, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Srinivas Kandagatla, Liam Girdwood, Mark Brown,
Konrad Dybcio
Cc: cros-qcom-dts-watchers, linux-arm-msm, linux-gpio, devicetree,
linux-kernel, linux-sound, quic_pkumpatl, kernel,
Mohammad Rafi Shaik, Konrad Dybcio
From: Mohammad Rafi Shaik <mohammad.rafi.shaik@oss.qualcomm.com>
Modify and enable WSA, VA, RX and TX lpass macros and lpass_tlmm clock
settings. For audioreach solution mclk, npl and fsgen clocks are enabled
through the q6prm clock driver.
For qcs6490 RX drives clk from TX CORE which is mandated from DSP side,
Unlike dedicated core clocks. Core TX clk is used for both RX and
WSA as per DSP recommendations.
Signed-off-by: Mohammad Rafi Shaik <mohammad.rafi.shaik@oss.qualcomm.com>
Co-developed-by: Prasad Kumpatla <quic_pkumpatl@quicinc.com>
Signed-off-by: Prasad Kumpatla <quic_pkumpatl@quicinc.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
---
.../boot/dts/qcom/qcs6490-audioreach.dtsi | 61 +++++++++++++++++++
1 file changed, 61 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/qcs6490-audioreach.dtsi b/arch/arm64/boot/dts/qcom/qcs6490-audioreach.dtsi
index 282938c042f7..6d3a9e171066 100644
--- a/arch/arm64/boot/dts/qcom/qcs6490-audioreach.dtsi
+++ b/arch/arm64/boot/dts/qcom/qcs6490-audioreach.dtsi
@@ -12,6 +12,67 @@
#include <dt-bindings/sound/qcom,q6afe.h>
#include <dt-bindings/sound/qcom,q6dsp-lpass-ports.h>
+&lpass_rx_macro {
+ /delete-property/ power-domains;
+ /delete-property/ power-domain-names;
+ 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>,
+ <&q6prmcc LPASS_HW_MACRO_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
+ <&q6prmcc LPASS_HW_DCODEC_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
+ <&lpass_va_macro>;
+ clock-names = "mclk",
+ "npl",
+ "macro",
+ "dcodec",
+ "fsgen";
+};
+
+&lpass_tlmm {
+ clocks = <&q6prmcc LPASS_HW_MACRO_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
+ <&q6prmcc LPASS_HW_DCODEC_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>;
+ clock-names = "core",
+ "audio";
+};
+
+&lpass_tx_macro {
+ /delete-property/ power-domains;
+ /delete-property/ power-domain-names;
+ 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>,
+ <&q6prmcc LPASS_HW_MACRO_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
+ <&q6prmcc LPASS_HW_DCODEC_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
+ <&lpass_va_macro>;
+ clock-names = "mclk",
+ "npl",
+ "macro",
+ "dcodec",
+ "fsgen";
+};
+
+&lpass_va_macro {
+ /delete-property/ power-domains;
+ /delete-property/ power-domain-names;
+ clocks = <&q6prmcc LPASS_CLK_ID_VA_CORE_MCLK LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
+ <&q6prmcc LPASS_HW_MACRO_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
+ <&q6prmcc LPASS_HW_DCODEC_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>;
+ clock-names = "mclk",
+ "macro",
+ "dcodec";
+};
+
+&lpass_wsa_macro {
+ 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>,
+ <&q6prmcc LPASS_HW_MACRO_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
+ <&q6prmcc LPASS_HW_DCODEC_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
+ <&lpass_va_macro>;
+ clock-names = "mclk",
+ "npl",
+ "macro",
+ "dcodec",
+ "fsgen";
+};
+
&remoteproc_adsp_glink {
/delete-node/ apr;
--
2.34.1
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH v8 6/9] arm64: dts: qcom: qcs6490-rb3gen2: Add WSA8830 speakers amplifier
2025-08-21 4:49 [PATCH v8 0/9] Enable audio on qcs6490-RB3Gen2 and qcm6490-idp boards Prasad Kumpatla
` (4 preceding siblings ...)
2025-08-21 4:49 ` [PATCH v8 5/9] arm64: dts: qcom: qcs6490-audioreach: Modify LPASS macros clock settings for audioreach Prasad Kumpatla
@ 2025-08-21 4:49 ` Prasad Kumpatla
2025-09-02 14:51 ` Bjorn Andersson
2025-08-21 4:49 ` [PATCH v8 7/9] arm64: dts: qcom: qcs6490-rb3gen2: Add sound card Prasad Kumpatla
` (4 subsequent siblings)
10 siblings, 1 reply; 20+ messages in thread
From: Prasad Kumpatla @ 2025-08-21 4:49 UTC (permalink / raw)
To: Bjorn Andersson, Linus Walleij, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Srinivas Kandagatla, Liam Girdwood, Mark Brown,
Konrad Dybcio
Cc: cros-qcom-dts-watchers, linux-arm-msm, linux-gpio, devicetree,
linux-kernel, linux-sound, quic_pkumpatl, kernel,
Mohammad Rafi Shaik
From: Mohammad Rafi Shaik <mohammad.rafi.shaik@oss.qualcomm.com>
Add nodes for WSA8830 speakers amplifier on qcs6490-rb3gen2 board.
Enable lpass_wsa and lpass_va macros along with pinctrl settings
for audio.
Signed-off-by: Mohammad Rafi Shaik <mohammad.rafi.shaik@oss.qualcomm.com>
Co-developed-by: Prasad Kumpatla <quic_pkumpatl@quicinc.com>
Signed-off-by: Prasad Kumpatla <quic_pkumpatl@quicinc.com>
---
.../boot/dts/qcom/qcs6490-audioreach.dtsi | 6 ++++
arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts | 35 +++++++++++++++++++
arch/arm64/boot/dts/qcom/sc7280.dtsi | 8 +++++
3 files changed, 49 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/qcs6490-audioreach.dtsi b/arch/arm64/boot/dts/qcom/qcs6490-audioreach.dtsi
index 6d3a9e171066..078936237e20 100644
--- a/arch/arm64/boot/dts/qcom/qcs6490-audioreach.dtsi
+++ b/arch/arm64/boot/dts/qcom/qcs6490-audioreach.dtsi
@@ -58,6 +58,12 @@ &lpass_va_macro {
clock-names = "mclk",
"macro",
"dcodec";
+
+ pinctrl-0 = <&lpass_dmic01_clk>, <&lpass_dmic01_data>,
+ <&lpass_dmic23_clk>, <&lpass_dmic23_data>;
+ pinctrl-names = "default";
+
+ qcom,dmic-sample-rate = <4800000>;
};
&lpass_wsa_macro {
diff --git a/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts b/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts
index 7509c27bd3f8..09e2cb9053a6 100644
--- a/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts
+++ b/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts
@@ -19,6 +19,7 @@
#include "pm7325.dtsi"
#include "pm8350c.dtsi"
#include "pmk8350.dtsi"
+#include "qcs6490-audioreach.dtsi"
/delete-node/ &ipa_fw_mem;
/delete-node/ &rmtfs_mem;
@@ -765,6 +766,14 @@ redriver_usb_con_sbu: endpoint {
};
};
+&lpass_va_macro {
+ status = "okay";
+};
+
+&lpass_wsa_macro {
+ status = "okay";
+};
+
&mdss {
status = "okay";
};
@@ -1039,6 +1048,32 @@ &sdhc_2 {
status = "okay";
};
+&swr2 {
+ status = "okay";
+
+ left_spkr: speaker@0,1 {
+ compatible = "sdw10217020200";
+ reg = <0 1>;
+ reset-gpios = <&tlmm 158 GPIO_ACTIVE_LOW>;
+ #sound-dai-cells = <0>;
+ sound-name-prefix = "SpkrLeft";
+ #thermal-sensor-cells = <0>;
+ vdd-supply = <&vreg_l18b_1p8>;
+ qcom,port-mapping = <1 2 3 7>;
+ };
+
+ right_spkr: speaker@0,2 {
+ compatible = "sdw10217020200";
+ reg = <0 2>;
+ reset-gpios = <&tlmm 158 GPIO_ACTIVE_LOW>;
+ #sound-dai-cells = <0>;
+ sound-name-prefix = "SpkrRight";
+ #thermal-sensor-cells = <0>;
+ vdd-supply = <&vreg_l18b_1p8>;
+ qcom,port-mapping = <4 5 6 8>;
+ };
+};
+
&tlmm {
gpio-reserved-ranges = <32 2>, /* ADSP */
<48 4>; /* NFC */
diff --git a/arch/arm64/boot/dts/qcom/sc7280.dtsi b/arch/arm64/boot/dts/qcom/sc7280.dtsi
index c51c38cf147a..d472de18296b 100644
--- a/arch/arm64/boot/dts/qcom/sc7280.dtsi
+++ b/arch/arm64/boot/dts/qcom/sc7280.dtsi
@@ -3001,21 +3001,29 @@ lpass_tlmm: pinctrl@33c0000 {
lpass_dmic01_clk: dmic01-clk-state {
pins = "gpio6";
function = "dmic1_clk";
+ drive-strength = <8>;
+ bias-disable;
};
lpass_dmic01_data: dmic01-data-state {
pins = "gpio7";
function = "dmic1_data";
+ drive-strength = <8>;
+ bias-pull-down;
};
lpass_dmic23_clk: dmic23-clk-state {
pins = "gpio8";
function = "dmic2_clk";
+ drive-strength = <8>;
+ bias-disable;
};
lpass_dmic23_data: dmic23-data-state {
pins = "gpio9";
function = "dmic2_data";
+ drive-strength = <8>;
+ bias-pull-down;
};
lpass_rx_swr_clk: rx-swr-clk-state {
--
2.34.1
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH v8 7/9] arm64: dts: qcom: qcs6490-rb3gen2: Add sound card
2025-08-21 4:49 [PATCH v8 0/9] Enable audio on qcs6490-RB3Gen2 and qcm6490-idp boards Prasad Kumpatla
` (5 preceding siblings ...)
2025-08-21 4:49 ` [PATCH v8 6/9] arm64: dts: qcom: qcs6490-rb3gen2: Add WSA8830 speakers amplifier Prasad Kumpatla
@ 2025-08-21 4:49 ` Prasad Kumpatla
2025-08-21 4:49 ` [PATCH v8 8/9] arm64: dts: qcom: qcm6490-idp: Add WSA8830 speakers and WCD9370 headset codec Prasad Kumpatla
` (3 subsequent siblings)
10 siblings, 0 replies; 20+ messages in thread
From: Prasad Kumpatla @ 2025-08-21 4:49 UTC (permalink / raw)
To: Bjorn Andersson, Linus Walleij, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Srinivas Kandagatla, Liam Girdwood, Mark Brown,
Konrad Dybcio
Cc: cros-qcom-dts-watchers, linux-arm-msm, linux-gpio, devicetree,
linux-kernel, linux-sound, quic_pkumpatl, kernel,
Mohammad Rafi Shaik, Konrad Dybcio, Dmitry Baryshkov
From: Mohammad Rafi Shaik <mohammad.rafi.shaik@oss.qualcomm.com>
Add the sound card node with tested playback over WSA8835 speakers
and digital on-board mics.
Signed-off-by: Mohammad Rafi Shaik <mohammad.rafi.shaik@oss.qualcomm.com>
Co-developed-by: Prasad Kumpatla <quic_pkumpatl@quicinc.com>
Signed-off-by: Prasad Kumpatla <quic_pkumpatl@quicinc.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts | 45 ++++++++++++++++++++
1 file changed, 45 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts b/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts
index 09e2cb9053a6..18cea8812001 100644
--- a/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts
+++ b/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts
@@ -1048,6 +1048,51 @@ &sdhc_2 {
status = "okay";
};
+&sound {
+ compatible = "qcom,qcs6490-rb3gen2-sndcard";
+ model = "QCS6490-RB3Gen2";
+
+ audio-routing = "SpkrLeft IN", "WSA_SPK1 OUT",
+ "SpkrRight IN", "WSA_SPK2 OUT",
+ "VA DMIC0", "vdd-micb",
+ "VA DMIC1", "vdd-micb",
+ "VA DMIC2", "vdd-micb",
+ "VA DMIC3", "vdd-micb";
+
+ wsa-dai-link {
+ link-name = "WSA Playback";
+
+ codec {
+ sound-dai = <&left_spkr>, <&right_spkr>,
+ <&swr2 0>, <&lpass_wsa_macro 0>;
+ };
+
+ cpu {
+ sound-dai = <&q6apmbedai WSA_CODEC_DMA_RX_0>;
+ };
+
+ platform {
+ sound-dai = <&q6apm>;
+ };
+ };
+
+ va-dai-link {
+ link-name = "VA Capture";
+
+ codec {
+ sound-dai = <&lpass_va_macro 0>;
+ };
+
+ cpu {
+ sound-dai = <&q6apmbedai VA_CODEC_DMA_TX_0>;
+ };
+
+ platform {
+ sound-dai = <&q6apm>;
+ };
+ };
+};
+
&swr2 {
status = "okay";
--
2.34.1
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH v8 8/9] arm64: dts: qcom: qcm6490-idp: Add WSA8830 speakers and WCD9370 headset codec
2025-08-21 4:49 [PATCH v8 0/9] Enable audio on qcs6490-RB3Gen2 and qcm6490-idp boards Prasad Kumpatla
` (6 preceding siblings ...)
2025-08-21 4:49 ` [PATCH v8 7/9] arm64: dts: qcom: qcs6490-rb3gen2: Add sound card Prasad Kumpatla
@ 2025-08-21 4:49 ` Prasad Kumpatla
2025-08-21 4:49 ` [PATCH v8 9/9] arm64: dts: qcom: qcm6490-idp: Add sound card Prasad Kumpatla
` (2 subsequent siblings)
10 siblings, 0 replies; 20+ messages in thread
From: Prasad Kumpatla @ 2025-08-21 4:49 UTC (permalink / raw)
To: Bjorn Andersson, Linus Walleij, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Srinivas Kandagatla, Liam Girdwood, Mark Brown,
Konrad Dybcio
Cc: cros-qcom-dts-watchers, linux-arm-msm, linux-gpio, devicetree,
linux-kernel, linux-sound, quic_pkumpatl, kernel,
Mohammad Rafi Shaik
From: Mohammad Rafi Shaik <mohammad.rafi.shaik@oss.qualcomm.com>
Add nodes for WSA8830 speakers and WCD9370 headset codec
on qcm6490-idp board.
Enable lpass macros along with audio support pin controls.
Signed-off-by: Mohammad Rafi Shaik <mohammad.rafi.shaik@oss.qualcomm.com>
Co-developed-by: Prasad Kumpatla <quic_pkumpatl@quicinc.com>
Signed-off-by: Prasad Kumpatla <quic_pkumpatl@quicinc.com>
---
arch/arm64/boot/dts/qcom/qcm6490-idp.dts | 123 +++++++++++++++++++++++
arch/arm64/boot/dts/qcom/sc7280.dtsi | 12 +++
2 files changed, 135 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/qcm6490-idp.dts b/arch/arm64/boot/dts/qcom/qcm6490-idp.dts
index 8ed6e28b0c29..379ee346a33a 100644
--- a/arch/arm64/boot/dts/qcom/qcm6490-idp.dts
+++ b/arch/arm64/boot/dts/qcom/qcm6490-idp.dts
@@ -18,6 +18,7 @@
#include "pm7325.dtsi"
#include "pm8350c.dtsi"
#include "pmk8350.dtsi"
+#include "qcs6490-audioreach.dtsi"
/delete-node/ &ipa_fw_mem;
/delete-node/ &rmtfs_mem;
@@ -169,6 +170,30 @@ vph_pwr: vph-pwr-regulator {
regulator-min-microvolt = <3700000>;
regulator-max-microvolt = <3700000>;
};
+
+ wcd9370: audio-codec-0 {
+ compatible = "qcom,wcd9370-codec";
+
+ pinctrl-0 = <&wcd_default>;
+ pinctrl-names = "default";
+
+ reset-gpios = <&tlmm 83 GPIO_ACTIVE_HIGH>;
+
+ vdd-buck-supply = <&vreg_l17b_1p7>;
+ vdd-rxtx-supply = <&vreg_l18b_1p8>;
+ vdd-px-supply = <&vreg_l18b_1p8>;
+ vdd-mic-bias-supply = <&vreg_bob_3p296>;
+
+ qcom,micbias1-microvolt = <1800000>;
+ qcom,micbias2-microvolt = <1800000>;
+ qcom,micbias3-microvolt = <1800000>;
+ qcom,micbias4-microvolt = <1800000>;
+
+ qcom,rx-device = <&wcd937x_rx>;
+ qcom,tx-device = <&wcd937x_tx>;
+
+ #sound-dai-cells = <1>;
+ };
};
&apps_rsc {
@@ -536,6 +561,22 @@ &gpu_zap_shader {
firmware-name = "qcom/qcm6490/a660_zap.mbn";
};
+&lpass_rx_macro {
+ status = "okay";
+};
+
+&lpass_tx_macro {
+ status = "okay";
+};
+
+&lpass_va_macro {
+ status = "okay";
+};
+
+&lpass_wsa_macro {
+ status = "okay";
+};
+
&mdss {
status = "okay";
};
@@ -716,6 +757,81 @@ &sdhc_2 {
cd-gpios = <&tlmm 91 GPIO_ACTIVE_LOW>;
};
+&swr0 {
+ status = "okay";
+
+ wcd937x_rx: codec@0,4 {
+ compatible = "sdw20217010a00";
+ reg = <0 4>;
+
+ /*
+ * WCD9370 RX Port 1 (HPH_L/R) <==> SWR1 Port 1 (HPH_L/R)
+ * WCD9370 RX Port 2 (CLSH) <==> SWR1 Port 2 (CLSH)
+ * WCD9370 RX Port 3 (COMP_L/R) <==> SWR1 Port 3 (COMP_L/R)
+ * WCD9370 RX Port 4 (LO) <==> SWR1 Port 4 (LO)
+ * WCD9370 RX Port 5 (DSD_L/R) <==> SWR1 Port 5 (DSD)
+ */
+ qcom,rx-port-mapping = <1 2 3 4 5>;
+
+ /*
+ * Static channels mapping between slave and master rx port channels.
+ * In the order of slave port channels, which is
+ * hph_l, hph_r, clsh, comp_l, comp_r, lo, dsd_r, dsd_l.
+ */
+ qcom,rx-channel-mapping = /bits/ 8 <1 2 1 1 2 1 1 2>;
+ };
+};
+
+&swr1 {
+ status = "okay";
+
+ wcd937x_tx: codec@0,3 {
+ compatible = "sdw20217010a00";
+ reg = <0 3>;
+
+ /*
+ * WCD9370 TX Port 1 (ADC1) <=> SWR2 Port 2
+ * WCD9370 TX Port 2 (ADC2, 3) <=> SWR2 Port 2
+ * WCD9370 TX Port 3 (DMIC0,1,2,3 & MBHC) <=> SWR2 Port 3
+ * WCD9370 TX Port 4 (DMIC4,5,6,7) <=> SWR2 Port 4
+ */
+ qcom,tx-port-mapping = <1 1 2 3>;
+
+ /*
+ * Static channel mapping between slave and master tx port channels.
+ * In the order of slave port channels which is adc1, adc2, adc3,
+ * mic0, dmic1, mbhc, dmic2, dmic3, dmci4, dmic5, dmic6, dmic7.
+ */
+ qcom,tx-channel-mapping = /bits/ 8 <1 2 1 1 2 3 3 4 1 2 3 4>;
+ };
+};
+
+&swr2 {
+ status = "okay";
+
+ left_spkr: speaker@0,1 {
+ compatible = "sdw10217020200";
+ reg = <0 1>;
+ powerdown-gpios = <&tlmm 63 GPIO_ACTIVE_LOW>;
+ #sound-dai-cells = <0>;
+ sound-name-prefix = "SpkrLeft";
+ #thermal-sensor-cells = <0>;
+ vdd-supply = <&vreg_l18b_1p8>;
+ qcom,port-mapping = <1 2 3 7>;
+ };
+
+ right_spkr: speaker@0,2 {
+ compatible = "sdw10217020200";
+ reg = <0 2>;
+ powerdown-gpios = <&tlmm 62 GPIO_ACTIVE_LOW>;
+ #sound-dai-cells = <0>;
+ sound-name-prefix = "SpkrRight";
+ #thermal-sensor-cells = <0>;
+ vdd-supply = <&vreg_l18b_1p8>;
+ qcom,port-mapping = <4 5 6 8>;
+ };
+};
+
&tlmm {
gpio-reserved-ranges = <32 2>, /* ADSP */
<48 4>; /* NFC */
@@ -725,6 +841,13 @@ sd_cd: sd-cd-state {
function = "gpio";
bias-pull-up;
};
+
+ wcd_default: wcd-reset-n-active-state {
+ pins = "gpio83";
+ function = "gpio";
+ drive-strength = <16>;
+ bias-disable;
+ };
};
&uart5 {
diff --git a/arch/arm64/boot/dts/qcom/sc7280.dtsi b/arch/arm64/boot/dts/qcom/sc7280.dtsi
index d472de18296b..1b942e15377d 100644
--- a/arch/arm64/boot/dts/qcom/sc7280.dtsi
+++ b/arch/arm64/boot/dts/qcom/sc7280.dtsi
@@ -3029,21 +3029,33 @@ lpass_dmic23_data: dmic23-data-state {
lpass_rx_swr_clk: rx-swr-clk-state {
pins = "gpio3";
function = "swr_rx_clk";
+ drive-strength = <2>;
+ slew-rate = <1>;
+ bias-disable;
};
lpass_rx_swr_data: rx-swr-data-state {
pins = "gpio4", "gpio5";
function = "swr_rx_data";
+ drive-strength = <2>;
+ slew-rate = <1>;
+ bias-bus-hold;
};
lpass_tx_swr_clk: tx-swr-clk-state {
pins = "gpio0";
function = "swr_tx_clk";
+ drive-strength = <2>;
+ slew-rate = <1>;
+ bias-disable;
};
lpass_tx_swr_data: tx-swr-data-state {
pins = "gpio1", "gpio2", "gpio14";
function = "swr_tx_data";
+ drive-strength = <2>;
+ slew-rate = <1>;
+ bias-bus-hold;
};
lpass_wsa_swr_clk: wsa-swr-clk-state {
--
2.34.1
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH v8 9/9] arm64: dts: qcom: qcm6490-idp: Add sound card
2025-08-21 4:49 [PATCH v8 0/9] Enable audio on qcs6490-RB3Gen2 and qcm6490-idp boards Prasad Kumpatla
` (7 preceding siblings ...)
2025-08-21 4:49 ` [PATCH v8 8/9] arm64: dts: qcom: qcm6490-idp: Add WSA8830 speakers and WCD9370 headset codec Prasad Kumpatla
@ 2025-08-21 4:49 ` Prasad Kumpatla
2025-08-21 13:34 ` [PATCH v8 0/9] Enable audio on qcs6490-RB3Gen2 and qcm6490-idp boards Linus Walleij
2025-08-21 17:19 ` Rob Herring (Arm)
10 siblings, 0 replies; 20+ messages in thread
From: Prasad Kumpatla @ 2025-08-21 4:49 UTC (permalink / raw)
To: Bjorn Andersson, Linus Walleij, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Srinivas Kandagatla, Liam Girdwood, Mark Brown,
Konrad Dybcio
Cc: cros-qcom-dts-watchers, linux-arm-msm, linux-gpio, devicetree,
linux-kernel, linux-sound, quic_pkumpatl, kernel,
Mohammad Rafi Shaik, Konrad Dybcio
From: Mohammad Rafi Shaik <mohammad.rafi.shaik@oss.qualcomm.com>
Add the sound card node with tested playback over WSA8835 speakers,
digital on-board mics along with wcd9370 headset playabck and record.
Signed-off-by: Mohammad Rafi Shaik <mohammad.rafi.shaik@oss.qualcomm.com>
Co-developed-by: Prasad Kumpatla <quic_pkumpatl@quicinc.com>
Signed-off-by: Prasad Kumpatla <quic_pkumpatl@quicinc.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/qcm6490-idp.dts | 84 ++++++++++++++++++++++++
1 file changed, 84 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/qcm6490-idp.dts b/arch/arm64/boot/dts/qcom/qcm6490-idp.dts
index 379ee346a33a..73fce639370c 100644
--- a/arch/arm64/boot/dts/qcom/qcm6490-idp.dts
+++ b/arch/arm64/boot/dts/qcom/qcm6490-idp.dts
@@ -757,6 +757,90 @@ &sdhc_2 {
cd-gpios = <&tlmm 91 GPIO_ACTIVE_LOW>;
};
+&sound {
+ compatible = "qcom,qcm6490-idp-sndcard";
+ model = "QCM6490-IDP";
+
+ audio-routing = "SpkrLeft IN", "WSA_SPK1 OUT",
+ "SpkrRight IN", "WSA_SPK2 OUT",
+ "IN1_HPHL", "HPHL_OUT",
+ "IN2_HPHR", "HPHR_OUT",
+ "AMIC2", "MIC BIAS2",
+ "TX DMIC0", "MIC BIAS1",
+ "TX DMIC1", "MIC BIAS2",
+ "TX DMIC2", "MIC BIAS3",
+ "TX SWR_ADC1", "ADC2_OUTPUT",
+ "VA DMIC0", "VA MIC BIAS3",
+ "VA DMIC1", "VA MIC BIAS3",
+ "VA DMIC2", "VA MIC BIAS1",
+ "VA DMIC3", "VA MIC BIAS1";
+
+ wsa-dai-link {
+ link-name = "WSA Playback";
+
+ codec {
+ sound-dai = <&left_spkr>, <&right_spkr>,
+ <&swr2 0>, <&lpass_wsa_macro 0>;
+ };
+
+ cpu {
+ sound-dai = <&q6apmbedai WSA_CODEC_DMA_RX_0>;
+ };
+
+ platform {
+ sound-dai = <&q6apm>;
+ };
+ };
+
+ wcd-playback-dai-link {
+ link-name = "WCD Playback";
+
+ codec {
+ sound-dai = <&wcd9370 0>, <&swr0 0>, <&lpass_rx_macro 0>;
+ };
+
+ cpu {
+ sound-dai = <&q6apmbedai RX_CODEC_DMA_RX_0>;
+ };
+
+ platform {
+ sound-dai = <&q6apm>;
+ };
+ };
+
+ wcd-capture-dai-link {
+ link-name = "WCD Capture";
+
+ codec {
+ sound-dai = <&wcd9370 1>, <&swr1 0>, <&lpass_tx_macro 0>;
+ };
+
+ cpu {
+ sound-dai = <&q6apmbedai TX_CODEC_DMA_TX_3>;
+ };
+
+ platform {
+ sound-dai = <&q6apm>;
+ };
+ };
+
+ va-dai-link {
+ link-name = "VA Capture";
+
+ codec {
+ sound-dai = <&lpass_va_macro 0>;
+ };
+
+ cpu {
+ sound-dai = <&q6apmbedai VA_CODEC_DMA_TX_0>;
+ };
+
+ platform {
+ sound-dai = <&q6apm>;
+ };
+ };
+};
+
&swr0 {
status = "okay";
--
2.34.1
^ permalink raw reply related [flat|nested] 20+ messages in thread
* Re: [PATCH v8 0/9] Enable audio on qcs6490-RB3Gen2 and qcm6490-idp boards
2025-08-21 4:49 [PATCH v8 0/9] Enable audio on qcs6490-RB3Gen2 and qcm6490-idp boards Prasad Kumpatla
` (8 preceding siblings ...)
2025-08-21 4:49 ` [PATCH v8 9/9] arm64: dts: qcom: qcm6490-idp: Add sound card Prasad Kumpatla
@ 2025-08-21 13:34 ` Linus Walleij
2025-08-22 17:33 ` Prasad Kumpatla
2025-08-21 17:19 ` Rob Herring (Arm)
10 siblings, 1 reply; 20+ messages in thread
From: Linus Walleij @ 2025-08-21 13:34 UTC (permalink / raw)
To: Prasad Kumpatla
Cc: Bjorn Andersson, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Srinivas Kandagatla, Liam Girdwood, Mark Brown, Konrad Dybcio,
cros-qcom-dts-watchers, linux-arm-msm, linux-gpio, devicetree,
linux-kernel, linux-sound, kernel, Mohammad Rafi Shaik
On Thu, Aug 21, 2025 at 6:49 AM Prasad Kumpatla
<quic_pkumpatl@quicinc.com> wrote:
> Mohammad Rafi Shaik (9):
> dt-bindings: pinctrl: qcom,sc7280-lpass-lpi-pinctrl: Document the
> clock property
Can I just apply this one patch to the pinctrl tree?
Yours,
Linus Walleij
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH v8 0/9] Enable audio on qcs6490-RB3Gen2 and qcm6490-idp boards
2025-08-21 4:49 [PATCH v8 0/9] Enable audio on qcs6490-RB3Gen2 and qcm6490-idp boards Prasad Kumpatla
` (9 preceding siblings ...)
2025-08-21 13:34 ` [PATCH v8 0/9] Enable audio on qcs6490-RB3Gen2 and qcm6490-idp boards Linus Walleij
@ 2025-08-21 17:19 ` Rob Herring (Arm)
10 siblings, 0 replies; 20+ messages in thread
From: Rob Herring (Arm) @ 2025-08-21 17:19 UTC (permalink / raw)
To: Prasad Kumpatla
Cc: Srinivas Kandagatla, devicetree, Mark Brown, linux-kernel,
Krzysztof Kozlowski, Mohammad Rafi Shaik, linux-sound,
Konrad Dybcio, linux-arm-msm, Bjorn Andersson,
cros-qcom-dts-watchers, linux-gpio, Liam Girdwood, kernel,
Linus Walleij, Conor Dooley
On Thu, 21 Aug 2025 10:19:05 +0530, Prasad Kumpatla wrote:
> From: Mohammad Rafi Shaik <mohammad.rafi.shaik@oss.qualcomm.com>
>
> Audio support is now enabled on the qcs6490-RB3Gen2 and qcm6490-idp boards.
> The updates include adding the necessary audio device tree support and the required
> dependencies.
>
> Both the qcs6490-RB3Gen2 and qcm6490-idp boards are derived from the same SoC
> platform. Therefore, the audio support changes are included in a single patch
> set for consistency and ease of maintenance.
>
> changes in [v8]:
> - Added drive strength for all lpass_dmic pinctrl nodes reported by Konrad Dybcio.
> - Rebased changes on top of the latest kernel tree.
> - Link to V7: https://lore.kernel.org/all/20250720173215.3075576-1-quic_pkumpatl@quicinc.com/
>
> changes in [v7]:
> - Addressed the review commnets in dt-binding patches from Krzysztof Kozlowski
> - Rebased changes on top of dependent patches
> - Link to V6: https://lore.kernel.org/linux-sound/20250715180050.3920019-1-quic_pkumpatl@quicinc.com/
>
> changes in [v6]:
> - Addressed the review commnets in dt-binding patches from Krzysztof Kozlowski
> - Link to V5: https://lore.kernel.org/linux-arm-msm/20250625082927.31038-1-quic_pkumpatl@quicinc.com/
>
> changes in [v5]:
> - Added separate patch for QCS6490 pinctrl bindings.
> - Updated commit message with more description.
> - Addressed the review commnets.
> - Link to V4: https://lore.kernel.org/linux-arm-msm/20250527111227.2318021-1-quic_pkumpatl@quicinc.com/
>
> Changes in [v4]:
> - Fix DT binding errors by adding dt-binding clock changes for ADSP base platform.
> - Link to V3 : https://lore.kernel.org/linux-arm-msm/20250520062618.2765109-1-quic_pkumpatl@quicinc.com/
>
> Changes in [v3]:
> - Added protection-domain in gpr services.
> - Addressed the review commnets from Konrad Dybcio.
> - Fix DT binding errors reported by Rob Herring.
> - Link to V2 : https://lore.kernel.org/linux-arm-msm/20250429092430.21477-1-quic_pkumpatl@quicinc.com/
>
> Changes in [v2]:
> - Created dtsi file to handle common audio nodes to support Audioreach.
> - Addressed the review comments.
> - Link to V1 : https://lore.kernel.org/linux-arm-msm/20250317054151.6095-2-quic_pkumpatl@quicinc.com/
>
> Mohammad Rafi Shaik (9):
> arm64: dts: qcom: qcs6490-audioreach: Add gpr node
> dt-bindings: pinctrl: qcom,sc7280-lpass-lpi-pinctrl: Document the
> clock property
> ASoC: dt-bindings: qcom,lpass-va-macro: Update bindings for clocks to
> support ADSP
> arm64: dts: qcom: sc7280: Add WSA SoundWire and LPASS support
> arm64: dts: qcom: qcs6490-audioreach: Modify LPASS macros clock
> settings for audioreach
> arm64: dts: qcom: qcs6490-rb3gen2: Add WSA8830 speakers amplifier
> arm64: dts: qcom: qcs6490-rb3gen2: Add sound card
> arm64: dts: qcom: qcm6490-idp: Add WSA8830 speakers and WCD9370
> headset codec
> arm64: dts: qcom: qcm6490-idp: Add sound card
>
> .../qcom,sc7280-lpass-lpi-pinctrl.yaml | 16 ++
> .../bindings/sound/qcom,lpass-va-macro.yaml | 23 +-
> arch/arm64/boot/dts/qcom/qcm6490-idp.dts | 207 ++++++++++++++++++
> .../boot/dts/qcom/qcs6490-audioreach.dtsi | 121 ++++++++++
> arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts | 80 +++++++
> arch/arm64/boot/dts/qcom/sc7280.dtsi | 99 ++++++++-
> 6 files changed, 540 insertions(+), 6 deletions(-)
> create mode 100644 arch/arm64/boot/dts/qcom/qcs6490-audioreach.dtsi
>
>
> base-commit: 5303936d609e09665deda94eaedf26a0e5c3a087
> --
> 2.34.1
>
>
>
My bot found new DTB warnings on the .dts files added or changed in this
series.
Some warnings may be from an existing SoC .dtsi. Or perhaps the warnings
are fixed by another series. Ultimately, it is up to the platform
maintainer whether these warnings are acceptable or not. No need to reply
unless the platform maintainer has comments.
If you already ran DT checks and didn't see these error(s), then
make sure dt-schema is up to date:
pip3 install dtschema --upgrade
This patch series was applied (using b4) to base:
Base: using specified base-commit 5303936d609e09665deda94eaedf26a0e5c3a087
If this is not the correct base, please add 'base-commit' tag
(or use b4 which does this automatically)
New warnings running 'make CHECK_DTBS=y for arch/arm64/boot/dts/qcom/' for 20250821044914.710044-1-quic_pkumpatl@quicinc.com:
arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dtb: pmic@2 (qcom,pm8350c): pwm:nvmem: [[366, 367]] is too short
from schema $id: http://devicetree.org/schemas/mfd/qcom,spmi-pmic.yaml#
arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dtb: pwm (qcom,pm8350c-pwm): nvmem: [[366, 367]] is too short
from schema $id: http://devicetree.org/schemas/leds/leds-qcom-lpg.yaml#
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH v8 0/9] Enable audio on qcs6490-RB3Gen2 and qcm6490-idp boards
2025-08-21 13:34 ` [PATCH v8 0/9] Enable audio on qcs6490-RB3Gen2 and qcm6490-idp boards Linus Walleij
@ 2025-08-22 17:33 ` Prasad Kumpatla
2025-08-25 9:10 ` Linus Walleij
0 siblings, 1 reply; 20+ messages in thread
From: Prasad Kumpatla @ 2025-08-22 17:33 UTC (permalink / raw)
To: Linus Walleij
Cc: Bjorn Andersson, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Srinivas Kandagatla, Liam Girdwood, Mark Brown, Konrad Dybcio,
cros-qcom-dts-watchers, linux-arm-msm, linux-gpio, devicetree,
linux-kernel, linux-sound, kernel, Mohammad Rafi Shaik
On 8/21/2025 7:04 PM, Linus Walleij wrote:
> On Thu, Aug 21, 2025 at 6:49 AM Prasad Kumpatla
> <quic_pkumpatl@quicinc.com> wrote:
>
>> Mohammad Rafi Shaik (9):
>> dt-bindings: pinctrl: qcom,sc7280-lpass-lpi-pinctrl: Document the
>> clock property
>
> Can I just apply this one patch to the pinctrl tree?
yes, please go ahead.
Thanks,
Prasad>
> Yours,
> Linus Walleij
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH v8 0/9] Enable audio on qcs6490-RB3Gen2 and qcm6490-idp boards
2025-08-22 17:33 ` Prasad Kumpatla
@ 2025-08-25 9:10 ` Linus Walleij
0 siblings, 0 replies; 20+ messages in thread
From: Linus Walleij @ 2025-08-25 9:10 UTC (permalink / raw)
To: Prasad Kumpatla
Cc: Bjorn Andersson, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Srinivas Kandagatla, Liam Girdwood, Mark Brown, Konrad Dybcio,
cros-qcom-dts-watchers, linux-arm-msm, linux-gpio, devicetree,
linux-kernel, linux-sound, kernel, Mohammad Rafi Shaik
On Fri, Aug 22, 2025 at 7:33 PM Prasad Kumpatla
<quic_pkumpatl@quicinc.com> wrote:
> On 8/21/2025 7:04 PM, Linus Walleij wrote:
> > On Thu, Aug 21, 2025 at 6:49 AM Prasad Kumpatla
> > <quic_pkumpatl@quicinc.com> wrote:
> >
> >> Mohammad Rafi Shaik (9):
> >> dt-bindings: pinctrl: qcom,sc7280-lpass-lpi-pinctrl: Document the
> >> clock property
> >
> > Can I just apply this one patch to the pinctrl tree?
>
> yes, please go ahead.
Patch 2 applied!
Yours,
Linus Walleij
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH v8 1/9] arm64: dts: qcom: qcs6490-audioreach: Add gpr node
2025-08-21 4:49 ` [PATCH v8 1/9] arm64: dts: qcom: qcs6490-audioreach: Add gpr node Prasad Kumpatla
@ 2025-09-02 14:43 ` Bjorn Andersson
2025-09-03 9:31 ` Prasad Kumpatla
0 siblings, 1 reply; 20+ messages in thread
From: Bjorn Andersson @ 2025-09-02 14:43 UTC (permalink / raw)
To: Prasad Kumpatla
Cc: Linus Walleij, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Srinivas Kandagatla, Liam Girdwood, Mark Brown, Konrad Dybcio,
cros-qcom-dts-watchers, linux-arm-msm, linux-gpio, devicetree,
linux-kernel, linux-sound, kernel, Mohammad Rafi Shaik,
Konrad Dybcio
On Thu, Aug 21, 2025 at 10:19:06AM +0530, Prasad Kumpatla wrote:
> From: Mohammad Rafi Shaik <mohammad.rafi.shaik@oss.qualcomm.com>
Subject says "add gpr node", that sounds insignificant, but the patch
actually introduces the structure for how to model audioreach - and will
set a precedence that others will follow.
It must be clear from the commit message why this is a separate file, so
that others will understand, now and in the future.
>
> Add GPR(Generic Pack router) node along with
> APM(Audio Process Manager) and PRM(Proxy resource
> Manager) audio services.
https://docs.kernel.org/process/submitting-patches.html#describe-your-changes
says to start your commit message with a problem statement, that makes
the reviewer understand which problem you're trying to solve. "Adding
GPR node" is not the problem, that is part of the solution, it should
come last.
>
> A new qcs6490-audioreach.dtsi file has been added to
> update AudioReach specific device tree configurations.
"Has been added"? When?
> The existing audio nodes in sc7280.dtsi, which were designed
> for the ADSP Bypass solution.
Please complete this sentence.
> The audio nodes now being updated
> in qcs6490-audioreach.dtsi to support the ADSP-based AudioReach
> architecture.
No, you're not updating qcs6490-audioreach.dtsi, you're adding that
file.
Please start your commit message with a description of what exists
today and why that doesn't fit your need, explain why we need a separate
file to carry these things. Make it clear why the bypass solution should
be kept in sc7280.dtsi (isn't that design only used in
sc7280-herobrine?).
Also, is qcs6490 the only variant of this SoC that comes with
AudioReach, what about QCM6490 and SM7325 devices?
>
> Signed-off-by: Mohammad Rafi Shaik <mohammad.rafi.shaik@oss.qualcomm.com>
> Co-developed-by: Prasad Kumpatla <quic_pkumpatl@quicinc.com>
> Signed-off-by: Prasad Kumpatla <quic_pkumpatl@quicinc.com>
> Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
> ---
> .../boot/dts/qcom/qcs6490-audioreach.dtsi | 54 +++++++++++++++++++
> arch/arm64/boot/dts/qcom/sc7280.dtsi | 2 +-
> 2 files changed, 55 insertions(+), 1 deletion(-)
> create mode 100644 arch/arm64/boot/dts/qcom/qcs6490-audioreach.dtsi
>
> diff --git a/arch/arm64/boot/dts/qcom/qcs6490-audioreach.dtsi b/arch/arm64/boot/dts/qcom/qcs6490-audioreach.dtsi
> new file mode 100644
> index 000000000000..282938c042f7
> --- /dev/null
> +++ b/arch/arm64/boot/dts/qcom/qcs6490-audioreach.dtsi
> @@ -0,0 +1,54 @@
> +// SPDX-License-Identifier: BSD-3-Clause
> +/*
> + * qcs6490 device tree source for Audioreach Solution.
That's pretty much what the file name says as well. It might make sense
to leave a comment here, but if so make it useful.
> + * This file will configure and manage nodes from sc7280.dtsi to
> + * support the AudioReach solution.
So far it's only adding things, not configuring and managing (which
isn't something DT does anyways).
Also "This file will" implies that in the future something will be added
here to deliver something. We don't communicate intent like this, and
once you add that thing you intend to add in the future this comment
won't be useful.
Something like this would be better:
"Common definitions for SC7280-based boards with AudioReach"
But I think that too can be derived from the file name. So, let's make
sure the commit message for the change that introduces the file has a
good explanation.
> + *
> + * Copyright (c) 2025 Qualcomm Innovation Center, Inc. All rights reserved.
I think this would look better above the comment. But please use the
right copyright statement.
Regards,
Bjorn
> + */
> +
> +#include <dt-bindings/clock/qcom,lpass-sc7280.h>
> +#include <dt-bindings/soc/qcom,gpr.h>
> +#include <dt-bindings/sound/qcom,q6afe.h>
> +#include <dt-bindings/sound/qcom,q6dsp-lpass-ports.h>
> +
> +&remoteproc_adsp_glink {
> + /delete-node/ apr;
> +
> + gpr {
> + compatible = "qcom,gpr";
> + qcom,glink-channels = "adsp_apps";
> + qcom,domain = <GPR_DOMAIN_ID_ADSP>;
> + qcom,intents = <512 20>;
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + q6apm: service@1 {
> + compatible = "qcom,q6apm";
> + reg = <GPR_APM_MODULE_IID>;
> + #sound-dai-cells = <0>;
> + qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd";
> +
> + q6apmdai: dais {
> + compatible = "qcom,q6apm-dais";
> + iommus = <&apps_smmu 0x1801 0x0>;
> + };
> +
> + q6apmbedai: bedais {
> + compatible = "qcom,q6apm-lpass-dais";
> + #sound-dai-cells = <1>;
> + };
> + };
> +
> + q6prm: service@2 {
> + compatible = "qcom,q6prm";
> + reg = <GPR_PRM_MODULE_IID>;
> + qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd";
> +
> + q6prmcc: clock-controller {
> + compatible = "qcom,q6prm-lpass-clocks";
> + #clock-cells = <2>;
> + };
> + };
> + };
> +};
> diff --git a/arch/arm64/boot/dts/qcom/sc7280.dtsi b/arch/arm64/boot/dts/qcom/sc7280.dtsi
> index 0dd6a5c91d10..18e959806a13 100644
> --- a/arch/arm64/boot/dts/qcom/sc7280.dtsi
> +++ b/arch/arm64/boot/dts/qcom/sc7280.dtsi
> @@ -3944,7 +3944,7 @@ remoteproc_adsp: remoteproc@3700000 {
>
> status = "disabled";
>
> - glink-edge {
> + remoteproc_adsp_glink: glink-edge {
> interrupts-extended = <&ipcc IPCC_CLIENT_LPASS
> IPCC_MPROC_SIGNAL_GLINK_QMP
> IRQ_TYPE_EDGE_RISING>;
> --
> 2.34.1
>
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH v8 5/9] arm64: dts: qcom: qcs6490-audioreach: Modify LPASS macros clock settings for audioreach
2025-08-21 4:49 ` [PATCH v8 5/9] arm64: dts: qcom: qcs6490-audioreach: Modify LPASS macros clock settings for audioreach Prasad Kumpatla
@ 2025-09-02 14:47 ` Bjorn Andersson
2025-09-03 9:35 ` Prasad Kumpatla
0 siblings, 1 reply; 20+ messages in thread
From: Bjorn Andersson @ 2025-09-02 14:47 UTC (permalink / raw)
To: Prasad Kumpatla
Cc: Linus Walleij, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Srinivas Kandagatla, Liam Girdwood, Mark Brown, Konrad Dybcio,
cros-qcom-dts-watchers, linux-arm-msm, linux-gpio, devicetree,
linux-kernel, linux-sound, kernel, Mohammad Rafi Shaik,
Konrad Dybcio
On Thu, Aug 21, 2025 at 10:19:10AM +0530, Prasad Kumpatla wrote:
> From: Mohammad Rafi Shaik <mohammad.rafi.shaik@oss.qualcomm.com>
>
> Modify and enable WSA, VA, RX and TX lpass macros and lpass_tlmm clock
> settings. For audioreach solution mclk, npl and fsgen clocks are enabled
> through the q6prm clock driver.
>
> For qcs6490 RX drives clk from TX CORE which is mandated from DSP side,
> Unlike dedicated core clocks. Core TX clk is used for both RX and
> WSA as per DSP recommendations.
>
This differs from all other platforms, so please make sure the commit
message explains why.
As with patch 1, is this specific to qcs6490?
Regards,
Bjorn
> Signed-off-by: Mohammad Rafi Shaik <mohammad.rafi.shaik@oss.qualcomm.com>
> Co-developed-by: Prasad Kumpatla <quic_pkumpatl@quicinc.com>
> Signed-off-by: Prasad Kumpatla <quic_pkumpatl@quicinc.com>
> Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
> ---
> .../boot/dts/qcom/qcs6490-audioreach.dtsi | 61 +++++++++++++++++++
> 1 file changed, 61 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/qcom/qcs6490-audioreach.dtsi b/arch/arm64/boot/dts/qcom/qcs6490-audioreach.dtsi
> index 282938c042f7..6d3a9e171066 100644
> --- a/arch/arm64/boot/dts/qcom/qcs6490-audioreach.dtsi
> +++ b/arch/arm64/boot/dts/qcom/qcs6490-audioreach.dtsi
> @@ -12,6 +12,67 @@
> #include <dt-bindings/sound/qcom,q6afe.h>
> #include <dt-bindings/sound/qcom,q6dsp-lpass-ports.h>
>
> +&lpass_rx_macro {
> + /delete-property/ power-domains;
> + /delete-property/ power-domain-names;
> + 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>,
> + <&q6prmcc LPASS_HW_MACRO_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
> + <&q6prmcc LPASS_HW_DCODEC_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
> + <&lpass_va_macro>;
> + clock-names = "mclk",
> + "npl",
> + "macro",
> + "dcodec",
> + "fsgen";
> +};
> +
> +&lpass_tlmm {
> + clocks = <&q6prmcc LPASS_HW_MACRO_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
> + <&q6prmcc LPASS_HW_DCODEC_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>;
> + clock-names = "core",
> + "audio";
> +};
> +
> +&lpass_tx_macro {
> + /delete-property/ power-domains;
> + /delete-property/ power-domain-names;
> + 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>,
> + <&q6prmcc LPASS_HW_MACRO_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
> + <&q6prmcc LPASS_HW_DCODEC_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
> + <&lpass_va_macro>;
> + clock-names = "mclk",
> + "npl",
> + "macro",
> + "dcodec",
> + "fsgen";
> +};
> +
> +&lpass_va_macro {
> + /delete-property/ power-domains;
> + /delete-property/ power-domain-names;
> + clocks = <&q6prmcc LPASS_CLK_ID_VA_CORE_MCLK LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
> + <&q6prmcc LPASS_HW_MACRO_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
> + <&q6prmcc LPASS_HW_DCODEC_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>;
> + clock-names = "mclk",
> + "macro",
> + "dcodec";
> +};
> +
> +&lpass_wsa_macro {
> + 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>,
> + <&q6prmcc LPASS_HW_MACRO_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
> + <&q6prmcc LPASS_HW_DCODEC_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
> + <&lpass_va_macro>;
> + clock-names = "mclk",
> + "npl",
> + "macro",
> + "dcodec",
> + "fsgen";
> +};
> +
> &remoteproc_adsp_glink {
> /delete-node/ apr;
>
> --
> 2.34.1
>
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH v8 6/9] arm64: dts: qcom: qcs6490-rb3gen2: Add WSA8830 speakers amplifier
2025-08-21 4:49 ` [PATCH v8 6/9] arm64: dts: qcom: qcs6490-rb3gen2: Add WSA8830 speakers amplifier Prasad Kumpatla
@ 2025-09-02 14:51 ` Bjorn Andersson
2025-09-03 9:38 ` Prasad Kumpatla
0 siblings, 1 reply; 20+ messages in thread
From: Bjorn Andersson @ 2025-09-02 14:51 UTC (permalink / raw)
To: Prasad Kumpatla
Cc: Linus Walleij, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Srinivas Kandagatla, Liam Girdwood, Mark Brown, Konrad Dybcio,
cros-qcom-dts-watchers, linux-arm-msm, linux-gpio, devicetree,
linux-kernel, linux-sound, kernel, Mohammad Rafi Shaik
On Thu, Aug 21, 2025 at 10:19:11AM +0530, Prasad Kumpatla wrote:
> From: Mohammad Rafi Shaik <mohammad.rafi.shaik@oss.qualcomm.com>
>
> Add nodes for WSA8830 speakers amplifier on qcs6490-rb3gen2 board.
>
> Enable lpass_wsa and lpass_va macros along with pinctrl settings
> for audio.
>
> Signed-off-by: Mohammad Rafi Shaik <mohammad.rafi.shaik@oss.qualcomm.com>
> Co-developed-by: Prasad Kumpatla <quic_pkumpatl@quicinc.com>
> Signed-off-by: Prasad Kumpatla <quic_pkumpatl@quicinc.com>
> ---
> .../boot/dts/qcom/qcs6490-audioreach.dtsi | 6 ++++
> arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts | 35 +++++++++++++++++++
> arch/arm64/boot/dts/qcom/sc7280.dtsi | 8 +++++
> 3 files changed, 49 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/qcom/qcs6490-audioreach.dtsi b/arch/arm64/boot/dts/qcom/qcs6490-audioreach.dtsi
> index 6d3a9e171066..078936237e20 100644
> --- a/arch/arm64/boot/dts/qcom/qcs6490-audioreach.dtsi
> +++ b/arch/arm64/boot/dts/qcom/qcs6490-audioreach.dtsi
> @@ -58,6 +58,12 @@ &lpass_va_macro {
> clock-names = "mclk",
> "macro",
> "dcodec";
> +
> + pinctrl-0 = <&lpass_dmic01_clk>, <&lpass_dmic01_data>,
> + <&lpass_dmic23_clk>, <&lpass_dmic23_data>;
Does all QCS6490 boards with AudioReach have these two (4?) DMICs? Is
this board-specific or generic?
> + pinctrl-names = "default";
> +
> + qcom,dmic-sample-rate = <4800000>;
> };
>
> &lpass_wsa_macro {
> diff --git a/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts b/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts
> index 7509c27bd3f8..09e2cb9053a6 100644
> --- a/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts
> +++ b/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts
> @@ -19,6 +19,7 @@
> #include "pm7325.dtsi"
> #include "pm8350c.dtsi"
> #include "pmk8350.dtsi"
> +#include "qcs6490-audioreach.dtsi"
>
> /delete-node/ &ipa_fw_mem;
> /delete-node/ &rmtfs_mem;
> @@ -765,6 +766,14 @@ redriver_usb_con_sbu: endpoint {
> };
> };
>
> +&lpass_va_macro {
> + status = "okay";
> +};
> +
> +&lpass_wsa_macro {
> + status = "okay";
> +};
> +
> &mdss {
> status = "okay";
> };
> @@ -1039,6 +1048,32 @@ &sdhc_2 {
> status = "okay";
> };
>
> +&swr2 {
> + status = "okay";
> +
> + left_spkr: speaker@0,1 {
> + compatible = "sdw10217020200";
> + reg = <0 1>;
> + reset-gpios = <&tlmm 158 GPIO_ACTIVE_LOW>;
> + #sound-dai-cells = <0>;
> + sound-name-prefix = "SpkrLeft";
> + #thermal-sensor-cells = <0>;
> + vdd-supply = <&vreg_l18b_1p8>;
> + qcom,port-mapping = <1 2 3 7>;
> + };
> +
> + right_spkr: speaker@0,2 {
> + compatible = "sdw10217020200";
> + reg = <0 2>;
> + reset-gpios = <&tlmm 158 GPIO_ACTIVE_LOW>;
> + #sound-dai-cells = <0>;
> + sound-name-prefix = "SpkrRight";
> + #thermal-sensor-cells = <0>;
> + vdd-supply = <&vreg_l18b_1p8>;
> + qcom,port-mapping = <4 5 6 8>;
> + };
> +};
> +
> &tlmm {
> gpio-reserved-ranges = <32 2>, /* ADSP */
> <48 4>; /* NFC */
> diff --git a/arch/arm64/boot/dts/qcom/sc7280.dtsi b/arch/arm64/boot/dts/qcom/sc7280.dtsi
> index c51c38cf147a..d472de18296b 100644
> --- a/arch/arm64/boot/dts/qcom/sc7280.dtsi
> +++ b/arch/arm64/boot/dts/qcom/sc7280.dtsi
> @@ -3001,21 +3001,29 @@ lpass_tlmm: pinctrl@33c0000 {
> lpass_dmic01_clk: dmic01-clk-state {
> pins = "gpio6";
> function = "dmic1_clk";
> + drive-strength = <8>;
> + bias-disable;
Does these settings belong in the SoC description? Are they fixed for
all targets of sc7280, or are there any board-specific variations? Any
variations based on which audio solution the board implements?
Regards,
Bjorn
> };
>
> lpass_dmic01_data: dmic01-data-state {
> pins = "gpio7";
> function = "dmic1_data";
> + drive-strength = <8>;
> + bias-pull-down;
> };
>
> lpass_dmic23_clk: dmic23-clk-state {
> pins = "gpio8";
> function = "dmic2_clk";
> + drive-strength = <8>;
> + bias-disable;
> };
>
> lpass_dmic23_data: dmic23-data-state {
> pins = "gpio9";
> function = "dmic2_data";
> + drive-strength = <8>;
> + bias-pull-down;
> };
>
> lpass_rx_swr_clk: rx-swr-clk-state {
> --
> 2.34.1
>
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH v8 1/9] arm64: dts: qcom: qcs6490-audioreach: Add gpr node
2025-09-02 14:43 ` Bjorn Andersson
@ 2025-09-03 9:31 ` Prasad Kumpatla
0 siblings, 0 replies; 20+ messages in thread
From: Prasad Kumpatla @ 2025-09-03 9:31 UTC (permalink / raw)
To: Bjorn Andersson
Cc: Linus Walleij, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Srinivas Kandagatla, Liam Girdwood, Mark Brown, Konrad Dybcio,
cros-qcom-dts-watchers, linux-arm-msm, linux-gpio, devicetree,
linux-kernel, linux-sound, kernel, Mohammad Rafi Shaik,
Konrad Dybcio
On 9/2/2025 8:13 PM, Bjorn Andersson wrote:
> On Thu, Aug 21, 2025 at 10:19:06AM +0530, Prasad Kumpatla wrote:
>> From: Mohammad Rafi Shaik <mohammad.rafi.shaik@oss.qualcomm.com>
>
> Subject says "add gpr node", that sounds insignificant, but the patch
> actually introduces the structure for how to model audioreach - and will
> set a precedence that others will follow.
>
> It must be clear from the commit message why this is a separate file, so
> that others will understand, now and in the future.
>
>>
>> Add GPR(Generic Pack router) node along with
>> APM(Audio Process Manager) and PRM(Proxy resource
>> Manager) audio services.
>
> https://docs.kernel.org/process/submitting-patches.html#describe-your-changes
> says to start your commit message with a problem statement, that makes
> the reviewer understand which problem you're trying to solve. "Adding
> GPR node" is not the problem, that is part of the solution, it should
> come last.
>
>>
>> A new qcs6490-audioreach.dtsi file has been added to
>> update AudioReach specific device tree configurations.
>
> "Has been added"? When?
>
>> The existing audio nodes in sc7280.dtsi, which were designed
>> for the ADSP Bypass solution.
>
> Please complete this sentence.
>
>> The audio nodes now being updated
>> in qcs6490-audioreach.dtsi to support the ADSP-based AudioReach
>> architecture.
>
> No, you're not updating qcs6490-audioreach.dtsi, you're adding that
> file.
>
> Please start your commit message with a description of what exists
> today and why that doesn't fit your need, explain why we need a separate
> file to carry these things. Make it clear why the bypass solution should
> be kept in sc7280.dtsi (isn't that design only used in
> sc7280-herobrine?).
>
> Also, is qcs6490 the only variant of this SoC that comes with
> AudioReach, what about QCM6490 and SM7325 devices?
Sure, will update the commit text as per your recommendations.
Thanks,
Prasad
>
>>
>> Signed-off-by: Mohammad Rafi Shaik <mohammad.rafi.shaik@oss.qualcomm.com>
>> Co-developed-by: Prasad Kumpatla <quic_pkumpatl@quicinc.com>
>> Signed-off-by: Prasad Kumpatla <quic_pkumpatl@quicinc.com>
>> Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
>> ---
>> .../boot/dts/qcom/qcs6490-audioreach.dtsi | 54 +++++++++++++++++++
>> arch/arm64/boot/dts/qcom/sc7280.dtsi | 2 +-
>> 2 files changed, 55 insertions(+), 1 deletion(-)
>> create mode 100644 arch/arm64/boot/dts/qcom/qcs6490-audioreach.dtsi
>>
>> diff --git a/arch/arm64/boot/dts/qcom/qcs6490-audioreach.dtsi b/arch/arm64/boot/dts/qcom/qcs6490-audioreach.dtsi
>> new file mode 100644
>> index 000000000000..282938c042f7
>> --- /dev/null
>> +++ b/arch/arm64/boot/dts/qcom/qcs6490-audioreach.dtsi
>> @@ -0,0 +1,54 @@
>> +// SPDX-License-Identifier: BSD-3-Clause
>> +/*
>> + * qcs6490 device tree source for Audioreach Solution.
>
> That's pretty much what the file name says as well. It might make sense
> to leave a comment here, but if so make it useful.
>
>> + * This file will configure and manage nodes from sc7280.dtsi to
>> + * support the AudioReach solution.
>
> So far it's only adding things, not configuring and managing (which
> isn't something DT does anyways).
>
> Also "This file will" implies that in the future something will be added
> here to deliver something. We don't communicate intent like this, and
> once you add that thing you intend to add in the future this comment
> won't be useful.
>
> Something like this would be better:
> "Common definitions for SC7280-based boards with AudioReach"
>
> But I think that too can be derived from the file name. So, let's make
> sure the commit message for the change that introduces the file has a
> good explanation.
>
>> + *
>> + * Copyright (c) 2025 Qualcomm Innovation Center, Inc. All rights reserved.
>
> I think this would look better above the comment. But please use the
> right copyright statement.
>
> Regards,
> Bjorn
>
>> + */
>> +
>> +#include <dt-bindings/clock/qcom,lpass-sc7280.h>
>> +#include <dt-bindings/soc/qcom,gpr.h>
>> +#include <dt-bindings/sound/qcom,q6afe.h>
>> +#include <dt-bindings/sound/qcom,q6dsp-lpass-ports.h>
>> +
>> +&remoteproc_adsp_glink {
>> + /delete-node/ apr;
>> +
>> + gpr {
>> + compatible = "qcom,gpr";
>> + qcom,glink-channels = "adsp_apps";
>> + qcom,domain = <GPR_DOMAIN_ID_ADSP>;
>> + qcom,intents = <512 20>;
>> + #address-cells = <1>;
>> + #size-cells = <0>;
>> +
>> + q6apm: service@1 {
>> + compatible = "qcom,q6apm";
>> + reg = <GPR_APM_MODULE_IID>;
>> + #sound-dai-cells = <0>;
>> + qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd";
>> +
>> + q6apmdai: dais {
>> + compatible = "qcom,q6apm-dais";
>> + iommus = <&apps_smmu 0x1801 0x0>;
>> + };
>> +
>> + q6apmbedai: bedais {
>> + compatible = "qcom,q6apm-lpass-dais";
>> + #sound-dai-cells = <1>;
>> + };
>> + };
>> +
>> + q6prm: service@2 {
>> + compatible = "qcom,q6prm";
>> + reg = <GPR_PRM_MODULE_IID>;
>> + qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd";
>> +
>> + q6prmcc: clock-controller {
>> + compatible = "qcom,q6prm-lpass-clocks";
>> + #clock-cells = <2>;
>> + };
>> + };
>> + };
>> +};
>> diff --git a/arch/arm64/boot/dts/qcom/sc7280.dtsi b/arch/arm64/boot/dts/qcom/sc7280.dtsi
>> index 0dd6a5c91d10..18e959806a13 100644
>> --- a/arch/arm64/boot/dts/qcom/sc7280.dtsi
>> +++ b/arch/arm64/boot/dts/qcom/sc7280.dtsi
>> @@ -3944,7 +3944,7 @@ remoteproc_adsp: remoteproc@3700000 {
>>
>> status = "disabled";
>>
>> - glink-edge {
>> + remoteproc_adsp_glink: glink-edge {
>> interrupts-extended = <&ipcc IPCC_CLIENT_LPASS
>> IPCC_MPROC_SIGNAL_GLINK_QMP
>> IRQ_TYPE_EDGE_RISING>;
>> --
>> 2.34.1
>>
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH v8 5/9] arm64: dts: qcom: qcs6490-audioreach: Modify LPASS macros clock settings for audioreach
2025-09-02 14:47 ` Bjorn Andersson
@ 2025-09-03 9:35 ` Prasad Kumpatla
0 siblings, 0 replies; 20+ messages in thread
From: Prasad Kumpatla @ 2025-09-03 9:35 UTC (permalink / raw)
To: Bjorn Andersson
Cc: Linus Walleij, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Srinivas Kandagatla, Liam Girdwood, Mark Brown, Konrad Dybcio,
cros-qcom-dts-watchers, linux-arm-msm, linux-gpio, devicetree,
linux-kernel, linux-sound, kernel, Mohammad Rafi Shaik,
Konrad Dybcio
On 9/2/2025 8:17 PM, Bjorn Andersson wrote:
> On Thu, Aug 21, 2025 at 10:19:10AM +0530, Prasad Kumpatla wrote:
>> From: Mohammad Rafi Shaik <mohammad.rafi.shaik@oss.qualcomm.com>
>>
>> Modify and enable WSA, VA, RX and TX lpass macros and lpass_tlmm clock
>> settings. For audioreach solution mclk, npl and fsgen clocks are enabled
>> through the q6prm clock driver.
>>
>> For qcs6490 RX drives clk from TX CORE which is mandated from DSP side,
>> Unlike dedicated core clocks. Core TX clk is used for both RX and
>> WSA as per DSP recommendations.
>>
>
> This differs from all other platforms, so please make sure the commit
> message explains why.
>
> As with patch 1, is this specific to qcs6490?
Sure, will update the commit text as per your recommendations.
Thanks,
Prasad
>
> Regards,
> Bjorn
>
>> Signed-off-by: Mohammad Rafi Shaik <mohammad.rafi.shaik@oss.qualcomm.com>
>> Co-developed-by: Prasad Kumpatla <quic_pkumpatl@quicinc.com>
>> Signed-off-by: Prasad Kumpatla <quic_pkumpatl@quicinc.com>
>> Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
>> ---
>> .../boot/dts/qcom/qcs6490-audioreach.dtsi | 61 +++++++++++++++++++
>> 1 file changed, 61 insertions(+)
>>
>> diff --git a/arch/arm64/boot/dts/qcom/qcs6490-audioreach.dtsi b/arch/arm64/boot/dts/qcom/qcs6490-audioreach.dtsi
>> index 282938c042f7..6d3a9e171066 100644
>> --- a/arch/arm64/boot/dts/qcom/qcs6490-audioreach.dtsi
>> +++ b/arch/arm64/boot/dts/qcom/qcs6490-audioreach.dtsi
>> @@ -12,6 +12,67 @@
>> #include <dt-bindings/sound/qcom,q6afe.h>
>> #include <dt-bindings/sound/qcom,q6dsp-lpass-ports.h>
>>
>> +&lpass_rx_macro {
>> + /delete-property/ power-domains;
>> + /delete-property/ power-domain-names;
>> + 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>,
>> + <&q6prmcc LPASS_HW_MACRO_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
>> + <&q6prmcc LPASS_HW_DCODEC_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
>> + <&lpass_va_macro>;
>> + clock-names = "mclk",
>> + "npl",
>> + "macro",
>> + "dcodec",
>> + "fsgen";
>> +};
>> +
>> +&lpass_tlmm {
>> + clocks = <&q6prmcc LPASS_HW_MACRO_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
>> + <&q6prmcc LPASS_HW_DCODEC_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>;
>> + clock-names = "core",
>> + "audio";
>> +};
>> +
>> +&lpass_tx_macro {
>> + /delete-property/ power-domains;
>> + /delete-property/ power-domain-names;
>> + 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>,
>> + <&q6prmcc LPASS_HW_MACRO_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
>> + <&q6prmcc LPASS_HW_DCODEC_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
>> + <&lpass_va_macro>;
>> + clock-names = "mclk",
>> + "npl",
>> + "macro",
>> + "dcodec",
>> + "fsgen";
>> +};
>> +
>> +&lpass_va_macro {
>> + /delete-property/ power-domains;
>> + /delete-property/ power-domain-names;
>> + clocks = <&q6prmcc LPASS_CLK_ID_VA_CORE_MCLK LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
>> + <&q6prmcc LPASS_HW_MACRO_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
>> + <&q6prmcc LPASS_HW_DCODEC_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>;
>> + clock-names = "mclk",
>> + "macro",
>> + "dcodec";
>> +};
>> +
>> +&lpass_wsa_macro {
>> + 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>,
>> + <&q6prmcc LPASS_HW_MACRO_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
>> + <&q6prmcc LPASS_HW_DCODEC_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
>> + <&lpass_va_macro>;
>> + clock-names = "mclk",
>> + "npl",
>> + "macro",
>> + "dcodec",
>> + "fsgen";
>> +};
>> +
>> &remoteproc_adsp_glink {
>> /delete-node/ apr;
>>
>> --
>> 2.34.1
>>
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH v8 6/9] arm64: dts: qcom: qcs6490-rb3gen2: Add WSA8830 speakers amplifier
2025-09-02 14:51 ` Bjorn Andersson
@ 2025-09-03 9:38 ` Prasad Kumpatla
0 siblings, 0 replies; 20+ messages in thread
From: Prasad Kumpatla @ 2025-09-03 9:38 UTC (permalink / raw)
To: Bjorn Andersson
Cc: Linus Walleij, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Srinivas Kandagatla, Liam Girdwood, Mark Brown, Konrad Dybcio,
cros-qcom-dts-watchers, linux-arm-msm, linux-gpio, devicetree,
linux-kernel, linux-sound, kernel, Mohammad Rafi Shaik
On 9/2/2025 8:21 PM, Bjorn Andersson wrote:
> On Thu, Aug 21, 2025 at 10:19:11AM +0530, Prasad Kumpatla wrote:
>> From: Mohammad Rafi Shaik <mohammad.rafi.shaik@oss.qualcomm.com>
>>
>> Add nodes for WSA8830 speakers amplifier on qcs6490-rb3gen2 board.
>>
>> Enable lpass_wsa and lpass_va macros along with pinctrl settings
>> for audio.
>>
>> Signed-off-by: Mohammad Rafi Shaik <mohammad.rafi.shaik@oss.qualcomm.com>
>> Co-developed-by: Prasad Kumpatla <quic_pkumpatl@quicinc.com>
>> Signed-off-by: Prasad Kumpatla <quic_pkumpatl@quicinc.com>
>> ---
>> .../boot/dts/qcom/qcs6490-audioreach.dtsi | 6 ++++
>> arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts | 35 +++++++++++++++++++
>> arch/arm64/boot/dts/qcom/sc7280.dtsi | 8 +++++
>> 3 files changed, 49 insertions(+)
>>
>> diff --git a/arch/arm64/boot/dts/qcom/qcs6490-audioreach.dtsi b/arch/arm64/boot/dts/qcom/qcs6490-audioreach.dtsi
>> index 6d3a9e171066..078936237e20 100644
>> --- a/arch/arm64/boot/dts/qcom/qcs6490-audioreach.dtsi
>> +++ b/arch/arm64/boot/dts/qcom/qcs6490-audioreach.dtsi
>> @@ -58,6 +58,12 @@ &lpass_va_macro {
>> clock-names = "mclk",
>> "macro",
>> "dcodec";
>> +
>> + pinctrl-0 = <&lpass_dmic01_clk>, <&lpass_dmic01_data>,
>> + <&lpass_dmic23_clk>, <&lpass_dmic23_data>;
>
> Does all QCS6490 boards with AudioReach have these two (4?) DMICs? Is
> this board-specific or generic?
yes, all QCS6490 boards are with default 4-DMICs.
>
>> + pinctrl-names = "default";
>> +
>> + qcom,dmic-sample-rate = <4800000>;
>> };
>>
>> &lpass_wsa_macro {
>> diff --git a/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts b/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts
>> index 7509c27bd3f8..09e2cb9053a6 100644
>> --- a/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts
>> +++ b/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts
>> @@ -19,6 +19,7 @@
>> #include "pm7325.dtsi"
>> #include "pm8350c.dtsi"
>> #include "pmk8350.dtsi"
>> +#include "qcs6490-audioreach.dtsi"
>>
>> /delete-node/ &ipa_fw_mem;
>> /delete-node/ &rmtfs_mem;
>> @@ -765,6 +766,14 @@ redriver_usb_con_sbu: endpoint {
>> };
>> };
>>
>> +&lpass_va_macro {
>> + status = "okay";
>> +};
>> +
>> +&lpass_wsa_macro {
>> + status = "okay";
>> +};
>> +
>> &mdss {
>> status = "okay";
>> };
>> @@ -1039,6 +1048,32 @@ &sdhc_2 {
>> status = "okay";
>> };
>>
>> +&swr2 {
>> + status = "okay";
>> +
>> + left_spkr: speaker@0,1 {
>> + compatible = "sdw10217020200";
>> + reg = <0 1>;
>> + reset-gpios = <&tlmm 158 GPIO_ACTIVE_LOW>;
>> + #sound-dai-cells = <0>;
>> + sound-name-prefix = "SpkrLeft";
>> + #thermal-sensor-cells = <0>;
>> + vdd-supply = <&vreg_l18b_1p8>;
>> + qcom,port-mapping = <1 2 3 7>;
>> + };
>> +
>> + right_spkr: speaker@0,2 {
>> + compatible = "sdw10217020200";
>> + reg = <0 2>;
>> + reset-gpios = <&tlmm 158 GPIO_ACTIVE_LOW>;
>> + #sound-dai-cells = <0>;
>> + sound-name-prefix = "SpkrRight";
>> + #thermal-sensor-cells = <0>;
>> + vdd-supply = <&vreg_l18b_1p8>;
>> + qcom,port-mapping = <4 5 6 8>;
>> + };
>> +};
>> +
>> &tlmm {
>> gpio-reserved-ranges = <32 2>, /* ADSP */
>> <48 4>; /* NFC */
>> diff --git a/arch/arm64/boot/dts/qcom/sc7280.dtsi b/arch/arm64/boot/dts/qcom/sc7280.dtsi
>> index c51c38cf147a..d472de18296b 100644
>> --- a/arch/arm64/boot/dts/qcom/sc7280.dtsi
>> +++ b/arch/arm64/boot/dts/qcom/sc7280.dtsi
>> @@ -3001,21 +3001,29 @@ lpass_tlmm: pinctrl@33c0000 {
>> lpass_dmic01_clk: dmic01-clk-state {
>> pins = "gpio6";
>> function = "dmic1_clk";
>> + drive-strength = <8>;
>> + bias-disable;
>
> Does these settings belong in the SoC description? Are they fixed for
> all targets of sc7280, or are there any board-specific variations? Any
> variations based on which audio solution the board implements?
yes, these configs are fixed for all the variants of sc7280. These are
on-SoC configs and don't change with variants.
Thanks,
Prasad
>
> Regards,
> Bjorn
>
>> };
>>
>> lpass_dmic01_data: dmic01-data-state {
>> pins = "gpio7";
>> function = "dmic1_data";
>> + drive-strength = <8>;
>> + bias-pull-down;
>> };
>>
>> lpass_dmic23_clk: dmic23-clk-state {
>> pins = "gpio8";
>> function = "dmic2_clk";
>> + drive-strength = <8>;
>> + bias-disable;
>> };
>>
>> lpass_dmic23_data: dmic23-data-state {
>> pins = "gpio9";
>> function = "dmic2_data";
>> + drive-strength = <8>;
>> + bias-pull-down;
>> };
>>
>> lpass_rx_swr_clk: rx-swr-clk-state {
>> --
>> 2.34.1
>>
^ permalink raw reply [flat|nested] 20+ messages in thread
end of thread, other threads:[~2025-09-03 9:39 UTC | newest]
Thread overview: 20+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-08-21 4:49 [PATCH v8 0/9] Enable audio on qcs6490-RB3Gen2 and qcm6490-idp boards Prasad Kumpatla
2025-08-21 4:49 ` [PATCH v8 1/9] arm64: dts: qcom: qcs6490-audioreach: Add gpr node Prasad Kumpatla
2025-09-02 14:43 ` Bjorn Andersson
2025-09-03 9:31 ` Prasad Kumpatla
2025-08-21 4:49 ` [PATCH v8 2/9] dt-bindings: pinctrl: qcom,sc7280-lpass-lpi-pinctrl: Document the clock property Prasad Kumpatla
2025-08-21 4:49 ` [PATCH v8 3/9] ASoC: dt-bindings: qcom,lpass-va-macro: Update bindings for clocks to support ADSP Prasad Kumpatla
2025-08-21 4:49 ` [PATCH v8 4/9] arm64: dts: qcom: sc7280: Add WSA SoundWire and LPASS support Prasad Kumpatla
2025-08-21 4:49 ` [PATCH v8 5/9] arm64: dts: qcom: qcs6490-audioreach: Modify LPASS macros clock settings for audioreach Prasad Kumpatla
2025-09-02 14:47 ` Bjorn Andersson
2025-09-03 9:35 ` Prasad Kumpatla
2025-08-21 4:49 ` [PATCH v8 6/9] arm64: dts: qcom: qcs6490-rb3gen2: Add WSA8830 speakers amplifier Prasad Kumpatla
2025-09-02 14:51 ` Bjorn Andersson
2025-09-03 9:38 ` Prasad Kumpatla
2025-08-21 4:49 ` [PATCH v8 7/9] arm64: dts: qcom: qcs6490-rb3gen2: Add sound card Prasad Kumpatla
2025-08-21 4:49 ` [PATCH v8 8/9] arm64: dts: qcom: qcm6490-idp: Add WSA8830 speakers and WCD9370 headset codec Prasad Kumpatla
2025-08-21 4:49 ` [PATCH v8 9/9] arm64: dts: qcom: qcm6490-idp: Add sound card Prasad Kumpatla
2025-08-21 13:34 ` [PATCH v8 0/9] Enable audio on qcs6490-RB3Gen2 and qcm6490-idp boards Linus Walleij
2025-08-22 17:33 ` Prasad Kumpatla
2025-08-25 9:10 ` Linus Walleij
2025-08-21 17:19 ` Rob Herring (Arm)
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).