[PATCH 01/23] arm64: dts: qcom: x1e80100: move dsp audio nodes to dedicated dts

srinivas.kandagatla@oss.qualcomm.com posted 23 patches 2 months, 2 weeks ago
[PATCH 01/23] arm64: dts: qcom: x1e80100: move dsp audio nodes to dedicated dts
Posted by srinivas.kandagatla@oss.qualcomm.com 2 months, 2 weeks ago
From: Srinivas Kandagatla <srinivas.kandagatla@oss.qualcomm.com>

All the device tree nodes for audioreach dsp are duplicated across all
the SoC dtsi files, Move this to a dedicated dtsi file so to remove some
duplication, make it consistent across all device trees and also make it
easy for new SoC's to add audio support.

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@oss.qualcomm.com>
---
 .../arm64/boot/dts/qcom/audioreach-audio.dtsi | 45 +++++++++++++++++++
 .../boot/dts/qcom/x1-asus-zenbook-a14.dtsi    |  1 +
 arch/arm64/boot/dts/qcom/x1-crd.dtsi          |  1 +
 arch/arm64/boot/dts/qcom/x1e001de-devkit.dts  |  1 +
 .../qcom/x1e78100-lenovo-thinkpad-t14s.dtsi   |  1 +
 .../dts/qcom/x1e80100-asus-vivobook-s15.dts   |  1 +
 arch/arm64/boot/dts/qcom/x1e80100-audio.dtsi  |  6 +++
 .../dts/qcom/x1e80100-dell-xps13-9345.dts     |  1 +
 .../dts/qcom/x1e80100-hp-omnibook-x14.dts     |  1 +
 .../dts/qcom/x1e80100-lenovo-yoga-slim7x.dts  |  1 +
 .../dts/qcom/x1e80100-microsoft-romulus.dtsi  |  1 +
 arch/arm64/boot/dts/qcom/x1e80100-qcp.dts     |  1 +
 arch/arm64/boot/dts/qcom/x1e80100.dtsi        | 43 ++----------------
 13 files changed, 64 insertions(+), 40 deletions(-)
 create mode 100644 arch/arm64/boot/dts/qcom/audioreach-audio.dtsi
 create mode 100644 arch/arm64/boot/dts/qcom/x1e80100-audio.dtsi

diff --git a/arch/arm64/boot/dts/qcom/audioreach-audio.dtsi b/arch/arm64/boot/dts/qcom/audioreach-audio.dtsi
new file mode 100644
index 000000000000..fce722579155
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/audioreach-audio.dtsi
@@ -0,0 +1,45 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * Copyright (c) 2025 Qualcomm Innovation Center, Inc. All rights reserved.
+ */
+
+#include <dt-bindings/soc/qcom,gpr.h>
+#include <dt-bindings/sound/qcom,q6dsp-lpass-ports.h>
+
+&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";
+
+		q6apmbedai: bedais {
+			compatible = "qcom,q6apm-lpass-dais";
+			#sound-dai-cells = <1>;
+		};
+
+		q6apmdai: dais {
+			compatible = "qcom,q6apm-dais";
+		};
+	};
+
+	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/x1-asus-zenbook-a14.dtsi b/arch/arm64/boot/dts/qcom/x1-asus-zenbook-a14.dtsi
index c771fd1d8029..1d8a75fba301 100644
--- a/arch/arm64/boot/dts/qcom/x1-asus-zenbook-a14.dtsi
+++ b/arch/arm64/boot/dts/qcom/x1-asus-zenbook-a14.dtsi
@@ -11,6 +11,7 @@
 #include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
 #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
 
+#include "x1e80100-audio.dtsi"
 #include "x1e80100-pmics.dtsi"
 
 / {
diff --git a/arch/arm64/boot/dts/qcom/x1-crd.dtsi b/arch/arm64/boot/dts/qcom/x1-crd.dtsi
index c9f0d5052670..19b993fdd17f 100644
--- a/arch/arm64/boot/dts/qcom/x1-crd.dtsi
+++ b/arch/arm64/boot/dts/qcom/x1-crd.dtsi
@@ -9,6 +9,7 @@
 #include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
 #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
 
+#include "x1e80100-audio.dtsi"
 #include "x1e80100-pmics.dtsi"
 
 / {
diff --git a/arch/arm64/boot/dts/qcom/x1e001de-devkit.dts b/arch/arm64/boot/dts/qcom/x1e001de-devkit.dts
index 2d9627e6c798..6df3ee553bc7 100644
--- a/arch/arm64/boot/dts/qcom/x1e001de-devkit.dts
+++ b/arch/arm64/boot/dts/qcom/x1e001de-devkit.dts
@@ -10,6 +10,7 @@
 
 #include "x1e80100.dtsi"
 #include "x1e80100-pmics.dtsi"
+#include "x1e80100-audio.dtsi"
 
 / {
 	model = "Qualcomm Technologies, Inc. X1E001DE Snapdragon Devkit for Windows";
diff --git a/arch/arm64/boot/dts/qcom/x1e78100-lenovo-thinkpad-t14s.dtsi b/arch/arm64/boot/dts/qcom/x1e78100-lenovo-thinkpad-t14s.dtsi
index ac1dddf27da3..cf2cf3e520fa 100644
--- a/arch/arm64/boot/dts/qcom/x1e78100-lenovo-thinkpad-t14s.dtsi
+++ b/arch/arm64/boot/dts/qcom/x1e78100-lenovo-thinkpad-t14s.dtsi
@@ -13,6 +13,7 @@
 #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
 
 #include "x1e80100.dtsi"
+#include "x1e80100-audio.dtsi"
 #include "x1e80100-pmics.dtsi"
 
 / {
diff --git a/arch/arm64/boot/dts/qcom/x1e80100-asus-vivobook-s15.dts b/arch/arm64/boot/dts/qcom/x1e80100-asus-vivobook-s15.dts
index 71b2cc6c392f..82b08350da17 100644
--- a/arch/arm64/boot/dts/qcom/x1e80100-asus-vivobook-s15.dts
+++ b/arch/arm64/boot/dts/qcom/x1e80100-asus-vivobook-s15.dts
@@ -13,6 +13,7 @@
 
 #include "x1e80100.dtsi"
 #include "x1e80100-pmics.dtsi"
+#include "x1e80100-audio.dtsi"
 
 / {
 	model = "ASUS Vivobook S 15";
diff --git a/arch/arm64/boot/dts/qcom/x1e80100-audio.dtsi b/arch/arm64/boot/dts/qcom/x1e80100-audio.dtsi
new file mode 100644
index 000000000000..e03441bb2a79
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/x1e80100-audio.dtsi
@@ -0,0 +1,6 @@
+#include "audioreach-audio.dtsi"
+
+&q6apmdai{
+	iommus = <&apps_smmu 0x1001 0x80>,
+		 <&apps_smmu 0x1061 0x0>;
+};
diff --git a/arch/arm64/boot/dts/qcom/x1e80100-dell-xps13-9345.dts b/arch/arm64/boot/dts/qcom/x1e80100-dell-xps13-9345.dts
index fd00d1bf12e1..fb98fdc53594 100644
--- a/arch/arm64/boot/dts/qcom/x1e80100-dell-xps13-9345.dts
+++ b/arch/arm64/boot/dts/qcom/x1e80100-dell-xps13-9345.dts
@@ -14,6 +14,7 @@
 
 #include "x1e80100.dtsi"
 #include "x1e80100-pmics.dtsi"
+#include "x1e80100-audio.dtsi"
 
 / {
 	model = "Dell XPS 13 9345";
diff --git a/arch/arm64/boot/dts/qcom/x1e80100-hp-omnibook-x14.dts b/arch/arm64/boot/dts/qcom/x1e80100-hp-omnibook-x14.dts
index 8d2a9b7f4730..8206b6f2cf30 100644
--- a/arch/arm64/boot/dts/qcom/x1e80100-hp-omnibook-x14.dts
+++ b/arch/arm64/boot/dts/qcom/x1e80100-hp-omnibook-x14.dts
@@ -14,6 +14,7 @@
 
 #include "x1e80100.dtsi"
 #include "x1e80100-pmics.dtsi"
+#include "x1e80100-audio.dtsi"
 
 / {
 	model = "HP Omnibook X 14";
diff --git a/arch/arm64/boot/dts/qcom/x1e80100-lenovo-yoga-slim7x.dts b/arch/arm64/boot/dts/qcom/x1e80100-lenovo-yoga-slim7x.dts
index d02f8d4f7baf..aed5554c6646 100644
--- a/arch/arm64/boot/dts/qcom/x1e80100-lenovo-yoga-slim7x.dts
+++ b/arch/arm64/boot/dts/qcom/x1e80100-lenovo-yoga-slim7x.dts
@@ -11,6 +11,7 @@
 
 #include "x1e80100.dtsi"
 #include "x1e80100-pmics.dtsi"
+#include "x1e80100-audio.dtsi"
 
 / {
 	model = "Lenovo Yoga Slim 7x";
diff --git a/arch/arm64/boot/dts/qcom/x1e80100-microsoft-romulus.dtsi b/arch/arm64/boot/dts/qcom/x1e80100-microsoft-romulus.dtsi
index 0fd8516580b2..669b95dc1666 100644
--- a/arch/arm64/boot/dts/qcom/x1e80100-microsoft-romulus.dtsi
+++ b/arch/arm64/boot/dts/qcom/x1e80100-microsoft-romulus.dtsi
@@ -11,6 +11,7 @@
 
 #include "x1e80100.dtsi"
 #include "x1e80100-pmics.dtsi"
+#include "x1e80100-audio.dtsi"
 
 / {
 	aliases {
diff --git a/arch/arm64/boot/dts/qcom/x1e80100-qcp.dts b/arch/arm64/boot/dts/qcom/x1e80100-qcp.dts
index 4dfba835af6a..9e464d001343 100644
--- a/arch/arm64/boot/dts/qcom/x1e80100-qcp.dts
+++ b/arch/arm64/boot/dts/qcom/x1e80100-qcp.dts
@@ -10,6 +10,7 @@
 
 #include "x1e80100.dtsi"
 #include "x1e80100-pmics.dtsi"
+#include "x1e80100-audio.dtsi"
 
 / {
 	model = "Qualcomm Technologies, Inc. X1E80100 QCP";
diff --git a/arch/arm64/boot/dts/qcom/x1e80100.dtsi b/arch/arm64/boot/dts/qcom/x1e80100.dtsi
index 5e9a8fa3cf96..f3216a84137e 100644
--- a/arch/arm64/boot/dts/qcom/x1e80100.dtsi
+++ b/arch/arm64/boot/dts/qcom/x1e80100.dtsi
@@ -17,7 +17,6 @@
 #include <dt-bindings/phy/phy-qcom-qmp.h>
 #include <dt-bindings/power/qcom,rpmhpd.h>
 #include <dt-bindings/power/qcom-rpmpd.h>
-#include <dt-bindings/soc/qcom,gpr.h>
 #include <dt-bindings/soc/qcom,rpmh-rsc.h>
 #include <dt-bindings/sound/qcom,q6dsp-lpass-ports.h>
 #include <dt-bindings/thermal/thermal.h>
@@ -4041,6 +4040,9 @@ IPCC_MPROC_SIGNAL_GLINK_QMP
 				label = "lpass";
 				qcom,remote-pid = <2>;
 
+				gpr: gpr {
+				};
+
 				fastrpc {
 					compatible = "qcom,fastrpc";
 					qcom,glink-channels = "fastrpcglink-apps-dsp";
@@ -4090,45 +4092,6 @@ compute-cb@7 {
 					};
 				};
 
-				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";
-
-						q6apmbedai: bedais {
-							compatible = "qcom,q6apm-lpass-dais";
-							#sound-dai-cells = <1>;
-						};
-
-						q6apmdai: dais {
-							compatible = "qcom,q6apm-dais";
-							iommus = <&apps_smmu 0x1001 0x80>,
-								 <&apps_smmu 0x1061 0x0>;
-						};
-					};
-
-					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>;
-						};
-					};
-				};
 			};
 		};
 
-- 
2.50.0
Re: [PATCH 01/23] arm64: dts: qcom: x1e80100: move dsp audio nodes to dedicated dts
Posted by Konrad Dybcio 2 months, 1 week ago
On 7/24/25 12:27 AM, srinivas.kandagatla@oss.qualcomm.com wrote:
> From: Srinivas Kandagatla <srinivas.kandagatla@oss.qualcomm.com>
> 
> All the device tree nodes for audioreach dsp are duplicated across all
> the SoC dtsi files, Move this to a dedicated dtsi file so to remove some
> duplication, make it consistent across all device trees and also make it
> easy for new SoC's to add audio support.
> 
> Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@oss.qualcomm.com>
> ---

[...]

> -				gpr {
> -					compatible = "qcom,gpr";
> -					qcom,glink-channels = "adsp_apps";

This seems to never change, maybe we can add some internal bus-like
matching to glink that we could put a cookie in the GPR driver for?

> -					qcom,domain = <GPR_DOMAIN_ID_ADSP>;

Similarly, this never changes (unless call audio would go through
modem and require a similar structure or something, I really don't
know)

> -					qcom,intents = <512 20>;

This is also always the very same

> -					#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";

These never change either

Konrad
Re: [PATCH 01/23] arm64: dts: qcom: x1e80100: move dsp audio nodes to dedicated dts
Posted by Stephan Gerhold 2 months, 1 week ago
On Wed, Jul 23, 2025 at 11:27:15PM +0100,
srinivas.kandagatla@oss.qualcomm.com wrote:
> From: Srinivas Kandagatla <srinivas.kandagatla@oss.qualcomm.com>
> 
> All the device tree nodes for audioreach dsp are duplicated across all
> the SoC dtsi files, Move this to a dedicated dtsi file so to remove some
> duplication, make it consistent across all device trees and also make it
> easy for new SoC's to add audio support.
> 
> Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@oss.qualcomm.com>
> ---
>  .../arm64/boot/dts/qcom/audioreach-audio.dtsi | 45 +++++++++++++++++++
>  .../boot/dts/qcom/x1-asus-zenbook-a14.dtsi    |  1 +
>  arch/arm64/boot/dts/qcom/x1-crd.dtsi          |  1 +
>  arch/arm64/boot/dts/qcom/x1e001de-devkit.dts  |  1 +
>  .../qcom/x1e78100-lenovo-thinkpad-t14s.dtsi   |  1 +
>  .../dts/qcom/x1e80100-asus-vivobook-s15.dts   |  1 +
>  arch/arm64/boot/dts/qcom/x1e80100-audio.dtsi  |  6 +++
>  .../dts/qcom/x1e80100-dell-xps13-9345.dts     |  1 +
>  .../dts/qcom/x1e80100-hp-omnibook-x14.dts     |  1 +
>  .../dts/qcom/x1e80100-lenovo-yoga-slim7x.dts  |  1 +
>  .../dts/qcom/x1e80100-microsoft-romulus.dtsi  |  1 +
>  arch/arm64/boot/dts/qcom/x1e80100-qcp.dts     |  1 +
>  arch/arm64/boot/dts/qcom/x1e80100.dtsi        | 43 ++----------------
>  13 files changed, 64 insertions(+), 40 deletions(-)
>  create mode 100644 arch/arm64/boot/dts/qcom/audioreach-audio.dtsi
>  create mode 100644 arch/arm64/boot/dts/qcom/x1e80100-audio.dtsi
> 
> [...]
> diff --git a/arch/arm64/boot/dts/qcom/x1-asus-zenbook-a14.dtsi b/arch/arm64/boot/dts/qcom/x1-asus-zenbook-a14.dtsi
> index c771fd1d8029..1d8a75fba301 100644
> --- a/arch/arm64/boot/dts/qcom/x1-asus-zenbook-a14.dtsi
> +++ b/arch/arm64/boot/dts/qcom/x1-asus-zenbook-a14.dtsi
> @@ -11,6 +11,7 @@
>  #include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
>  #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
>  
> +#include "x1e80100-audio.dtsi"
>  #include "x1e80100-pmics.dtsi"
>  
>  / {
> diff --git a/arch/arm64/boot/dts/qcom/x1-crd.dtsi b/arch/arm64/boot/dts/qcom/x1-crd.dtsi
> index c9f0d5052670..19b993fdd17f 100644
> --- a/arch/arm64/boot/dts/qcom/x1-crd.dtsi
> +++ b/arch/arm64/boot/dts/qcom/x1-crd.dtsi
> @@ -9,6 +9,7 @@
>  #include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
>  #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
>  
> +#include "x1e80100-audio.dtsi"
>  #include "x1e80100-pmics.dtsi"
>  
>  / {
> diff --git a/arch/arm64/boot/dts/qcom/x1e001de-devkit.dts b/arch/arm64/boot/dts/qcom/x1e001de-devkit.dts
> index 2d9627e6c798..6df3ee553bc7 100644
> --- a/arch/arm64/boot/dts/qcom/x1e001de-devkit.dts
> +++ b/arch/arm64/boot/dts/qcom/x1e001de-devkit.dts
> @@ -10,6 +10,7 @@
>  
>  #include "x1e80100.dtsi"
>  #include "x1e80100-pmics.dtsi"
> +#include "x1e80100-audio.dtsi"
>  
>  / {
>  	model = "Qualcomm Technologies, Inc. X1E001DE Snapdragon Devkit for Windows";
> diff --git a/arch/arm64/boot/dts/qcom/x1e78100-lenovo-thinkpad-t14s.dtsi b/arch/arm64/boot/dts/qcom/x1e78100-lenovo-thinkpad-t14s.dtsi
> index ac1dddf27da3..cf2cf3e520fa 100644
> --- a/arch/arm64/boot/dts/qcom/x1e78100-lenovo-thinkpad-t14s.dtsi
> +++ b/arch/arm64/boot/dts/qcom/x1e78100-lenovo-thinkpad-t14s.dtsi
> @@ -13,6 +13,7 @@
>  #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
>  
>  #include "x1e80100.dtsi"
> +#include "x1e80100-audio.dtsi"
>  #include "x1e80100-pmics.dtsi"
>  
>  / {
> diff --git a/arch/arm64/boot/dts/qcom/x1e80100-asus-vivobook-s15.dts b/arch/arm64/boot/dts/qcom/x1e80100-asus-vivobook-s15.dts
> index 71b2cc6c392f..82b08350da17 100644
> --- a/arch/arm64/boot/dts/qcom/x1e80100-asus-vivobook-s15.dts
> +++ b/arch/arm64/boot/dts/qcom/x1e80100-asus-vivobook-s15.dts
> @@ -13,6 +13,7 @@
>  
>  #include "x1e80100.dtsi"
>  #include "x1e80100-pmics.dtsi"
> +#include "x1e80100-audio.dtsi"
>  
>  / {
>  	model = "ASUS Vivobook S 15";
> diff --git a/arch/arm64/boot/dts/qcom/x1e80100-audio.dtsi b/arch/arm64/boot/dts/qcom/x1e80100-audio.dtsi
> new file mode 100644
> index 000000000000..e03441bb2a79
> --- /dev/null
> +++ b/arch/arm64/boot/dts/qcom/x1e80100-audio.dtsi
> @@ -0,0 +1,6 @@
> +#include "audioreach-audio.dtsi"
> +
> +&q6apmdai{
> +	iommus = <&apps_smmu 0x1001 0x80>,
> +		 <&apps_smmu 0x1061 0x0>;
> +};

I think you should inline this into x1e80100.dtsi and drop the extra
#include from all the device DTs. x1e80100.dtsi already references
audioreach nodes, so it's not possible to build without including
x1e80100-audio.dtsi anyway:

../arch/arm64/boot/dts/qcom/x1e80100.dtsi:4098.34-4114.5: ERROR (phandle_references): /soc@0/codec@6aa0000: Reference to non-existent node or label "q6prmcc"
../arch/arm64/boot/dts/qcom/x1e80100.dtsi:4320.31-4436.5: ERROR (phandle_references): /soc@0/pinctrl@6e80000: Reference to non-existent node or label "q6prmcc"

Thanks,
Stephan
Re: [PATCH 01/23] arm64: dts: qcom: x1e80100: move dsp audio nodes to dedicated dts
Posted by Srinivas Kandagatla 2 months, 1 week ago
On 7/24/25 8:23 AM, Stephan Gerhold wrote:
> On Wed, Jul 23, 2025 at 11:27:15PM +0100,
> srinivas.kandagatla@oss.qualcomm.com wrote:
>> From: Srinivas Kandagatla <srinivas.kandagatla@oss.qualcomm.com>
>>
>> All the device tree nodes for audioreach dsp are duplicated across all
>> the SoC dtsi files, Move this to a dedicated dtsi file so to remove some
>> duplication, make it consistent across all device trees and also make it
>> easy for new SoC's to add audio support.
>>
>> Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@oss.qualcomm.com>
>> ---
>>  .../arm64/boot/dts/qcom/audioreach-audio.dtsi | 45 +++++++++++++++++++
>>  .../boot/dts/qcom/x1-asus-zenbook-a14.dtsi    |  1 +
>>  arch/arm64/boot/dts/qcom/x1-crd.dtsi          |  1 +
>>  arch/arm64/boot/dts/qcom/x1e001de-devkit.dts  |  1 +
>>  .../qcom/x1e78100-lenovo-thinkpad-t14s.dtsi   |  1 +
>>  .../dts/qcom/x1e80100-asus-vivobook-s15.dts   |  1 +
>>  arch/arm64/boot/dts/qcom/x1e80100-audio.dtsi  |  6 +++
>>  .../dts/qcom/x1e80100-dell-xps13-9345.dts     |  1 +
>>  .../dts/qcom/x1e80100-hp-omnibook-x14.dts     |  1 +
>>  .../dts/qcom/x1e80100-lenovo-yoga-slim7x.dts  |  1 +
>>  .../dts/qcom/x1e80100-microsoft-romulus.dtsi  |  1 +
>>  arch/arm64/boot/dts/qcom/x1e80100-qcp.dts     |  1 +
>>  arch/arm64/boot/dts/qcom/x1e80100.dtsi        | 43 ++----------------
>>  13 files changed, 64 insertions(+), 40 deletions(-)
>>  create mode 100644 arch/arm64/boot/dts/qcom/audioreach-audio.dtsi
>>  create mode 100644 arch/arm64/boot/dts/qcom/x1e80100-audio.dtsi
>>
>> [...]
>> diff --git a/arch/arm64/boot/dts/qcom/x1-asus-zenbook-a14.dtsi b/arch/arm64/boot/dts/qcom/x1-asus-zenbook-a14.dtsi
>> index c771fd1d8029..1d8a75fba301 100644
>> --- a/arch/arm64/boot/dts/qcom/x1-asus-zenbook-a14.dtsi
>> +++ b/arch/arm64/boot/dts/qcom/x1-asus-zenbook-a14.dtsi
>> @@ -11,6 +11,7 @@
>>  #include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
>>  #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
>>  
>> +#include "x1e80100-audio.dtsi"
>>  #include "x1e80100-pmics.dtsi"
>>  
>>  / {
>> diff --git a/arch/arm64/boot/dts/qcom/x1-crd.dtsi b/arch/arm64/boot/dts/qcom/x1-crd.dtsi
>> index c9f0d5052670..19b993fdd17f 100644
>> --- a/arch/arm64/boot/dts/qcom/x1-crd.dtsi
>> +++ b/arch/arm64/boot/dts/qcom/x1-crd.dtsi
>> @@ -9,6 +9,7 @@
>>  #include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
>>  #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
>>  
>> +#include "x1e80100-audio.dtsi"
>>  #include "x1e80100-pmics.dtsi"
>>  
>>  / {
>> diff --git a/arch/arm64/boot/dts/qcom/x1e001de-devkit.dts b/arch/arm64/boot/dts/qcom/x1e001de-devkit.dts
>> index 2d9627e6c798..6df3ee553bc7 100644
>> --- a/arch/arm64/boot/dts/qcom/x1e001de-devkit.dts
>> +++ b/arch/arm64/boot/dts/qcom/x1e001de-devkit.dts
>> @@ -10,6 +10,7 @@
>>  
>>  #include "x1e80100.dtsi"
>>  #include "x1e80100-pmics.dtsi"
>> +#include "x1e80100-audio.dtsi"
>>  
>>  / {
>>  	model = "Qualcomm Technologies, Inc. X1E001DE Snapdragon Devkit for Windows";
>> diff --git a/arch/arm64/boot/dts/qcom/x1e78100-lenovo-thinkpad-t14s.dtsi b/arch/arm64/boot/dts/qcom/x1e78100-lenovo-thinkpad-t14s.dtsi
>> index ac1dddf27da3..cf2cf3e520fa 100644
>> --- a/arch/arm64/boot/dts/qcom/x1e78100-lenovo-thinkpad-t14s.dtsi
>> +++ b/arch/arm64/boot/dts/qcom/x1e78100-lenovo-thinkpad-t14s.dtsi
>> @@ -13,6 +13,7 @@
>>  #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
>>  
>>  #include "x1e80100.dtsi"
>> +#include "x1e80100-audio.dtsi"
>>  #include "x1e80100-pmics.dtsi"
>>  
>>  / {
>> diff --git a/arch/arm64/boot/dts/qcom/x1e80100-asus-vivobook-s15.dts b/arch/arm64/boot/dts/qcom/x1e80100-asus-vivobook-s15.dts
>> index 71b2cc6c392f..82b08350da17 100644
>> --- a/arch/arm64/boot/dts/qcom/x1e80100-asus-vivobook-s15.dts
>> +++ b/arch/arm64/boot/dts/qcom/x1e80100-asus-vivobook-s15.dts
>> @@ -13,6 +13,7 @@
>>  
>>  #include "x1e80100.dtsi"
>>  #include "x1e80100-pmics.dtsi"
>> +#include "x1e80100-audio.dtsi"
>>  
>>  / {
>>  	model = "ASUS Vivobook S 15";
>> diff --git a/arch/arm64/boot/dts/qcom/x1e80100-audio.dtsi b/arch/arm64/boot/dts/qcom/x1e80100-audio.dtsi
>> new file mode 100644
>> index 000000000000..e03441bb2a79
>> --- /dev/null
>> +++ b/arch/arm64/boot/dts/qcom/x1e80100-audio.dtsi
>> @@ -0,0 +1,6 @@
>> +#include "audioreach-audio.dtsi"
>> +
>> +&q6apmdai{
>> +	iommus = <&apps_smmu 0x1001 0x80>,
>> +		 <&apps_smmu 0x1061 0x0>;
>> +};
> 
> I think you should inline this into x1e80100.dtsi and drop the extra
> #include from all the device DTs. x1e80100.dtsi already references
> audioreach nodes, so it's not possible to build without including
> x1e80100-audio.dtsi anyway:
thanks Stephan,

Yes, we can not build it without audio.dtsi, as suggested inlining this
in to end of SoC dtsi should help.

--srini

> 
> ../arch/arm64/boot/dts/qcom/x1e80100.dtsi:4098.34-4114.5: ERROR (phandle_references): /soc@0/codec@6aa0000: Reference to non-existent node or label "q6prmcc"
> ../arch/arm64/boot/dts/qcom/x1e80100.dtsi:4320.31-4436.5: ERROR (phandle_references): /soc@0/pinctrl@6e80000: Reference to non-existent node or label "q6prmcc"
> 
> Thanks,
> Stephan