]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
arm64: dts: qcom: qcs6490-audioreach: Add AudioReach support for QCS6490
authorMohammad Rafi Shaik <mohammad.rafi.shaik@oss.qualcomm.com>
Wed, 3 Sep 2025 15:13:31 +0000 (20:43 +0530)
committerBjorn Andersson <andersson@kernel.org>
Mon, 8 Sep 2025 14:58:35 +0000 (09:58 -0500)
Introduce qcs6490-audioreach.dtsi to support AudioReach architecture on
QCS6490 platforms. The existing ADSP Bypass DTSI files such as sc7280.dtsi,
which is tailored for ADSP Bypass architecture as they lack DSP-specific
nodes required for AudioReach. The new qcs6490-audioreach.dtsi file defines
nodes for AudioReach specific components such as APM (Audio Process
Manager), PRM (Proxy Resource Manager), and GPR (Generic Packet Router).
This change enable the audio from the legacy ADSP Bypass solution to
the AudioReach framework.

Co-developed-by: Prasad Kumpatla <quic_pkumpatl@quicinc.com>
Signed-off-by: Prasad Kumpatla <quic_pkumpatl@quicinc.com>
Signed-off-by: Mohammad Rafi Shaik <mohammad.rafi.shaik@oss.qualcomm.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20250903151337.1037246-3-mohammad.rafi.shaik@oss.qualcomm.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
arch/arm64/boot/dts/qcom/qcs6490-audioreach.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/qcom/sc7280.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 (file)
index 0000000..980499f
--- /dev/null
@@ -0,0 +1,52 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
+ *
+ * Common definitions for SC7280-based boards with AudioReach.
+ */
+
+#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>;
+                       };
+               };
+       };
+};
index 8561fc21722991860f59b5406ad084c2a30d3003..9fa294cc9a3e6ddcf0520c7e751c2036a56bf30b 100644 (file)
 
                        status = "disabled";
 
-                       glink-edge {
+                       remoteproc_adsp_glink: glink-edge {
                                interrupts-extended = <&ipcc IPCC_CLIENT_LPASS
                                                             IPCC_MPROC_SIGNAL_GLINK_QMP
                                                             IRQ_TYPE_EDGE_RISING>;