* [PATCH v2 00/11] ADSP for SDM670 and sound on Google Pixel 3a
@ 2026-10-03 17:56 Richard Acayan
2026-10-03 17:56 ` [PATCH v2 01/11] dt-bindings: soc: qcom,smp2p: add sleepstate support Richard Acayan
` (11 more replies)
0 siblings, 12 replies; 20+ messages in thread
From: Richard Acayan @ 2026-10-03 17:56 UTC (permalink / raw)
To: Jassi Brar, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Bjorn Andersson, Mathieu Poirier, Konrad Dybcio, Abel Vesa,
Srinivas Kandagatla, Liam Girdwood, Mark Brown,
Manivannan Sadhasivam, Andy Gross, linux-arm-msm, devicetree,
linux-remoteproc, linux-sound
Cc: Richard Acayan
This series adds a user for the SDM660 sound support code [1]. It also
adds the ADSP remoteproc for SDM670.
[1] https://lore.kernel.org/r/20260730174353.108023-1-mailingradian@gmail.com
Changes since v1 (https://lore.kernel.org/r/20260922015801.32373-1-mailingradian@gmail.com):
- squashed sound card and device-specific codec config (11/11)
- converted to fallback compatible (4/11)
- added compatible for WCD digital codec (5/11, 10/11)
- removed sleepstate comment (7/11)
- sorted subnodes of dai link (11/11)
- add review tags (1-3/11)
Richard Acayan (11):
dt-bindings: soc: qcom,smp2p: add sleepstate support
dt-bindings: mailbox: qcom: Add SDM670 APCS compatible
dt-bindings: soc: qcom: aoss: Add compatible for SDM670
dt-bindings: remoteproc: qcom: adsp: Add SDM670 ADSP compatible
ASoC: dt-bindings: msm8916-digital-codec: Add SDM670 compatible
remoteproc: qcom: pas: Add SDM670 ADSP support
arm64: dts: qcom: sdm670: add adsp
arm64: dts: qcom: sdm670-google: enable adsp
arm64: dts: qcom: pm660l: add analog audio codec
arm64: dts: qcom: sdm670: add digital audio codec
arm64: dts: qcom: sdm670-google: add sound card
.../mailbox/qcom,apcs-kpss-global.yaml | 1 +
.../bindings/remoteproc/qcom,adsp.yaml | 33 ++--
.../bindings/soc/qcom/qcom,aoss-qmp.yaml | 1 +
.../bindings/soc/qcom/qcom,smp2p.yaml | 2 +-
.../sound/qcom,msm8916-wcd-digital-codec.yaml | 1 +
arch/arm64/boot/dts/qcom/pm660l.dtsi | 40 ++++
.../boot/dts/qcom/sdm670-google-common.dtsi | 150 ++++++++++++++
arch/arm64/boot/dts/qcom/sdm670.dtsi | 183 ++++++++++++++++++
drivers/remoteproc/qcom_q6v5_pas.c | 1 +
9 files changed, 398 insertions(+), 14 deletions(-)
--
2.56.0
^ permalink raw reply [flat|nested] 20+ messages in thread
* [PATCH v2 01/11] dt-bindings: soc: qcom,smp2p: add sleepstate support
2026-10-03 17:56 [PATCH v2 00/11] ADSP for SDM670 and sound on Google Pixel 3a Richard Acayan
@ 2026-10-03 17:56 ` Richard Acayan
2026-10-03 17:56 ` [PATCH v2 02/11] dt-bindings: mailbox: qcom: Add SDM670 APCS compatible Richard Acayan
` (10 subsequent siblings)
11 siblings, 0 replies; 20+ messages in thread
From: Richard Acayan @ 2026-10-03 17:56 UTC (permalink / raw)
To: Jassi Brar, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Bjorn Andersson, Mathieu Poirier, Konrad Dybcio, Abel Vesa,
Srinivas Kandagatla, Liam Girdwood, Mark Brown,
Manivannan Sadhasivam, Andy Gross, linux-arm-msm, devicetree,
linux-remoteproc, linux-sound
Cc: Richard Acayan
The sleepstate entry is used by Qualcomm sensor DSPs to control
suspend/resume operations. Even though there is no full support for
sleep states, initialization of the entry is still necessary for some
DSPs, notably the sensors-bearing ADSP on the Pixel 3a (SDM670 SoC).
Allow sleepstates to be declared in the device tree so they can be
initialized.
Link: https://android.googlesource.com/kernel/msm/+/91edfe5385f2640a338e2ad230d0fc03c73b77f8/drivers/soc/qcom/smp2p_sleepstate.c
Signed-off-by: Richard Acayan <mailingradian@gmail.com>
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
---
Documentation/devicetree/bindings/soc/qcom/qcom,smp2p.yaml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom,smp2p.yaml b/Documentation/devicetree/bindings/soc/qcom/qcom,smp2p.yaml
index f91276822858..7862d68c9678 100644
--- a/Documentation/devicetree/bindings/soc/qcom/qcom,smp2p.yaml
+++ b/Documentation/devicetree/bindings/soc/qcom/qcom,smp2p.yaml
@@ -60,7 +60,7 @@ properties:
Two identifiers of the inbound and outbound smem items used for this edge.
patternProperties:
- "^master-kernel|slave-kernel|ipa-ap-to-modem|ipa-modem-to-ap|wlan-ap-to-wpss|wlan-wpss-to-ap$":
+ "^master-kernel|slave-kernel|ipa-ap-to-modem|ipa-modem-to-ap|sleepstate|wlan-ap-to-wpss|wlan-wpss-to-ap$":
type: object
description:
Each SMP2P pair contain a set of inbound and outbound entries, these are
--
2.56.0
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH v2 02/11] dt-bindings: mailbox: qcom: Add SDM670 APCS compatible
2026-10-03 17:56 [PATCH v2 00/11] ADSP for SDM670 and sound on Google Pixel 3a Richard Acayan
2026-10-03 17:56 ` [PATCH v2 01/11] dt-bindings: soc: qcom,smp2p: add sleepstate support Richard Acayan
@ 2026-10-03 17:56 ` Richard Acayan
2026-10-03 17:56 ` [PATCH v2 03/11] dt-bindings: soc: qcom: aoss: Add compatible for SDM670 Richard Acayan
` (9 subsequent siblings)
11 siblings, 0 replies; 20+ messages in thread
From: Richard Acayan @ 2026-10-03 17:56 UTC (permalink / raw)
To: Jassi Brar, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Bjorn Andersson, Mathieu Poirier, Konrad Dybcio, Abel Vesa,
Srinivas Kandagatla, Liam Girdwood, Mark Brown,
Manivannan Sadhasivam, Andy Gross, linux-arm-msm, devicetree,
linux-remoteproc, linux-sound
Cc: Richard Acayan
Add the compatible for the APCS in the SDM670 SoC.
Signed-off-by: Richard Acayan <mailingradian@gmail.com>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
---
.../devicetree/bindings/mailbox/qcom,apcs-kpss-global.yaml | 1 +
1 file changed, 1 insertion(+)
diff --git a/Documentation/devicetree/bindings/mailbox/qcom,apcs-kpss-global.yaml b/Documentation/devicetree/bindings/mailbox/qcom,apcs-kpss-global.yaml
index 39bc374300c3..74f24e07abc3 100644
--- a/Documentation/devicetree/bindings/mailbox/qcom,apcs-kpss-global.yaml
+++ b/Documentation/devicetree/bindings/mailbox/qcom,apcs-kpss-global.yaml
@@ -50,6 +50,7 @@ properties:
- qcom,qcs615-apss-shared
- qcom,sc7180-apss-shared
- qcom,sc8180x-apss-shared
+ - qcom,sdm670-apss-shared
- qcom,shikra-apss-shared
- qcom,sm7150-apss-shared
- qcom,sm8150-apss-shared
--
2.56.0
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH v2 03/11] dt-bindings: soc: qcom: aoss: Add compatible for SDM670
2026-10-03 17:56 [PATCH v2 00/11] ADSP for SDM670 and sound on Google Pixel 3a Richard Acayan
2026-10-03 17:56 ` [PATCH v2 01/11] dt-bindings: soc: qcom,smp2p: add sleepstate support Richard Acayan
2026-10-03 17:56 ` [PATCH v2 02/11] dt-bindings: mailbox: qcom: Add SDM670 APCS compatible Richard Acayan
@ 2026-10-03 17:56 ` Richard Acayan
2026-10-03 17:56 ` [PATCH v2 04/11] dt-bindings: remoteproc: qcom: adsp: Add SDM670 ADSP compatible Richard Acayan
` (8 subsequent siblings)
11 siblings, 0 replies; 20+ messages in thread
From: Richard Acayan @ 2026-10-03 17:56 UTC (permalink / raw)
To: Jassi Brar, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Bjorn Andersson, Mathieu Poirier, Konrad Dybcio, Abel Vesa,
Srinivas Kandagatla, Liam Girdwood, Mark Brown,
Manivannan Sadhasivam, Andy Gross, linux-arm-msm, devicetree,
linux-remoteproc, linux-sound
Cc: Richard Acayan
Document the compatible for SDM670.
Signed-off-by: Richard Acayan <mailingradian@gmail.com>
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
---
Documentation/devicetree/bindings/soc/qcom/qcom,aoss-qmp.yaml | 1 +
1 file changed, 1 insertion(+)
diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom,aoss-qmp.yaml b/Documentation/devicetree/bindings/soc/qcom/qcom,aoss-qmp.yaml
index d2ae2ae87a95..6672f441c20a 100644
--- a/Documentation/devicetree/bindings/soc/qcom/qcom,aoss-qmp.yaml
+++ b/Documentation/devicetree/bindings/soc/qcom/qcom,aoss-qmp.yaml
@@ -43,6 +43,7 @@ properties:
- qcom,sc8180x-aoss-qmp
- qcom,sc8280xp-aoss-qmp
- qcom,sdx75-aoss-qmp
+ - qcom,sdm670-aoss-qmp
- qcom,sdm845-aoss-qmp
- qcom,sm6350-aoss-qmp
- qcom,sm7150-aoss-qmp
--
2.56.0
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH v2 04/11] dt-bindings: remoteproc: qcom: adsp: Add SDM670 ADSP compatible
2026-10-03 17:56 [PATCH v2 00/11] ADSP for SDM670 and sound on Google Pixel 3a Richard Acayan
` (2 preceding siblings ...)
2026-10-03 17:56 ` [PATCH v2 03/11] dt-bindings: soc: qcom: aoss: Add compatible for SDM670 Richard Acayan
@ 2026-10-03 17:56 ` Richard Acayan
2026-10-03 18:05 ` sashiko-bot
2026-10-09 6:52 ` Krzysztof Kozlowski
2026-10-03 17:56 ` [PATCH v2 05/11] ASoC: dt-bindings: msm8916-digital-codec: Add SDM670 compatible Richard Acayan
` (7 subsequent siblings)
11 siblings, 2 replies; 20+ messages in thread
From: Richard Acayan @ 2026-10-03 17:56 UTC (permalink / raw)
To: Jassi Brar, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Bjorn Andersson, Mathieu Poirier, Konrad Dybcio, Abel Vesa,
Srinivas Kandagatla, Liam Girdwood, Mark Brown,
Manivannan Sadhasivam, Andy Gross, linux-arm-msm, devicetree,
linux-remoteproc, linux-sound
Cc: Richard Acayan
The SDM670 ADSP is like the SDM845 ADSP. Add the compatible for the
Audio DSP on SDM670, with the fallback as SDM845.
Signed-off-by: Richard Acayan <mailingradian@gmail.com>
---
.../bindings/remoteproc/qcom,adsp.yaml | 33 +++++++++++--------
1 file changed, 20 insertions(+), 13 deletions(-)
diff --git a/Documentation/devicetree/bindings/remoteproc/qcom,adsp.yaml b/Documentation/devicetree/bindings/remoteproc/qcom,adsp.yaml
index 7e8ecae8e6cb..6cf1f11efe04 100644
--- a/Documentation/devicetree/bindings/remoteproc/qcom,adsp.yaml
+++ b/Documentation/devicetree/bindings/remoteproc/qcom,adsp.yaml
@@ -15,19 +15,26 @@ description:
properties:
compatible:
- enum:
- - qcom,msm8226-adsp-pil
- - qcom,msm8953-adsp-pil
- - qcom,msm8974-adsp-pil
- - qcom,msm8996-adsp-pil
- - qcom,msm8996-slpi-pil
- - qcom,msm8998-adsp-pas
- - qcom,msm8998-slpi-pas
- - qcom,sdm660-adsp-pas
- - qcom,sdm660-cdsp-pas
- - qcom,sdm845-adsp-pas
- - qcom,sdm845-cdsp-pas
- - qcom,sdm845-slpi-pas
+ oneOf:
+ - enum:
+ - qcom,msm8226-adsp-pil
+ - qcom,msm8953-adsp-pil
+ - qcom,msm8974-adsp-pil
+ - qcom,msm8996-adsp-pil
+ - qcom,msm8996-slpi-pil
+ - qcom,msm8998-adsp-pas
+ - qcom,msm8998-slpi-pas
+ - qcom,sdm660-adsp-pas
+ - qcom,sdm660-cdsp-pas
+ - qcom,sdm670-adsp-pas
+ - qcom,sdm845-adsp-pas
+ - qcom,sdm845-cdsp-pas
+ - qcom,sdm845-slpi-pas
+
+ - items:
+ - enum:
+ - qcom,sdm670-adsp-pas
+ - const: qcom,sdm845-adsp-pas
reg:
maxItems: 1
--
2.56.0
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH v2 05/11] ASoC: dt-bindings: msm8916-digital-codec: Add SDM670 compatible
2026-10-03 17:56 [PATCH v2 00/11] ADSP for SDM670 and sound on Google Pixel 3a Richard Acayan
` (3 preceding siblings ...)
2026-10-03 17:56 ` [PATCH v2 04/11] dt-bindings: remoteproc: qcom: adsp: Add SDM670 ADSP compatible Richard Acayan
@ 2026-10-03 17:56 ` Richard Acayan
2026-10-04 7:55 ` Krzysztof Kozlowski
2026-10-03 17:56 ` [PATCH v2 06/11] remoteproc: qcom: pas: Add SDM670 ADSP support Richard Acayan
` (6 subsequent siblings)
11 siblings, 1 reply; 20+ messages in thread
From: Richard Acayan @ 2026-10-03 17:56 UTC (permalink / raw)
To: Jassi Brar, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Bjorn Andersson, Mathieu Poirier, Konrad Dybcio, Abel Vesa,
Srinivas Kandagatla, Liam Girdwood, Mark Brown,
Manivannan Sadhasivam, Andy Gross, linux-arm-msm, devicetree,
linux-remoteproc, linux-sound
Cc: Richard Acayan
The MSM8916 digital codec is also found on SDM670, typically connected
to the sound card. Add the compatible for SDM670.
Signed-off-by: Richard Acayan <mailingradian@gmail.com>
---
.../bindings/sound/qcom,msm8916-wcd-digital-codec.yaml | 1 +
1 file changed, 1 insertion(+)
diff --git a/Documentation/devicetree/bindings/sound/qcom,msm8916-wcd-digital-codec.yaml b/Documentation/devicetree/bindings/sound/qcom,msm8916-wcd-digital-codec.yaml
index 33bc23b6176a..b603bb6eb9b7 100644
--- a/Documentation/devicetree/bindings/sound/qcom,msm8916-wcd-digital-codec.yaml
+++ b/Documentation/devicetree/bindings/sound/qcom,msm8916-wcd-digital-codec.yaml
@@ -18,6 +18,7 @@ properties:
- items:
- enum:
- qcom,sdm660-wcd-digital-codec
+ - qcom,sdm670-wcd-digital-codec
- const: qcom,msm8916-wcd-digital-codec
- const: qcom,msm8916-wcd-digital-codec
--
2.56.0
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH v2 06/11] remoteproc: qcom: pas: Add SDM670 ADSP support
2026-10-03 17:56 [PATCH v2 00/11] ADSP for SDM670 and sound on Google Pixel 3a Richard Acayan
` (4 preceding siblings ...)
2026-10-03 17:56 ` [PATCH v2 05/11] ASoC: dt-bindings: msm8916-digital-codec: Add SDM670 compatible Richard Acayan
@ 2026-10-03 17:56 ` Richard Acayan
2026-10-09 8:41 ` Dmitry Baryshkov
2026-10-03 17:56 ` [PATCH v2 07/11] arm64: dts: qcom: sdm670: add adsp Richard Acayan
` (5 subsequent siblings)
11 siblings, 1 reply; 20+ messages in thread
From: Richard Acayan @ 2026-10-03 17:56 UTC (permalink / raw)
To: Jassi Brar, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Bjorn Andersson, Mathieu Poirier, Konrad Dybcio, Abel Vesa,
Srinivas Kandagatla, Liam Girdwood, Mark Brown,
Manivannan Sadhasivam, Andy Gross, linux-arm-msm, devicetree,
linux-remoteproc, linux-sound
Cc: Richard Acayan
The ADSP is used to control audio and sensors on the SDM670 SoC. Add the
compatible for it, with the same data as SDM845 since the driver
requires the load_state.
Signed-off-by: Richard Acayan <mailingradian@gmail.com>
---
drivers/remoteproc/qcom_q6v5_pas.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/remoteproc/qcom_q6v5_pas.c b/drivers/remoteproc/qcom_q6v5_pas.c
index ca8e61254c44..5272a462fc49 100644
--- a/drivers/remoteproc/qcom_q6v5_pas.c
+++ b/drivers/remoteproc/qcom_q6v5_pas.c
@@ -1865,6 +1865,7 @@ static const struct of_device_id qcom_pas_of_match[] = {
{ .compatible = "qcom,sc8280xp-nsp1-pas", .data = &sc8280xp_nsp1_resource },
{ .compatible = "qcom,sdm660-adsp-pas", .data = &adsp_resource_init },
{ .compatible = "qcom,sdm660-cdsp-pas", .data = &cdsp_resource_init },
+ { .compatible = "qcom,sdm670-adsp-pas", .data = &sdm845_adsp_resource_init },
{ .compatible = "qcom,sdm845-adsp-pas", .data = &sdm845_adsp_resource_init },
{ .compatible = "qcom,sdm845-cdsp-pas", .data = &sdm845_cdsp_resource_init },
{ .compatible = "qcom,sdm845-slpi-pas", .data = &sdm845_slpi_resource_init },
--
2.56.0
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH v2 07/11] arm64: dts: qcom: sdm670: add adsp
2026-10-03 17:56 [PATCH v2 00/11] ADSP for SDM670 and sound on Google Pixel 3a Richard Acayan
` (5 preceding siblings ...)
2026-10-03 17:56 ` [PATCH v2 06/11] remoteproc: qcom: pas: Add SDM670 ADSP support Richard Acayan
@ 2026-10-03 17:56 ` Richard Acayan
2026-10-03 18:08 ` sashiko-bot
2026-10-03 17:56 ` [PATCH v2 08/11] arm64: dts: qcom: sdm670-google: enable adsp Richard Acayan
` (4 subsequent siblings)
11 siblings, 1 reply; 20+ messages in thread
From: Richard Acayan @ 2026-10-03 17:56 UTC (permalink / raw)
To: Jassi Brar, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Bjorn Andersson, Mathieu Poirier, Konrad Dybcio, Abel Vesa,
Srinivas Kandagatla, Liam Girdwood, Mark Brown,
Manivannan Sadhasivam, Andy Gross, linux-arm-msm, devicetree,
linux-remoteproc, linux-sound
Cc: Richard Acayan
The Audio DSP (Digital Signal Processor) is responsible for audio and
sensors on SDM670. Add this, along with the SMP2P nodes used to
communicate with it.
The sleep state is included to prevent the following crash:
qcom_q6v5_pas remoteproc-adsp: fatal error received: err_qdi.c:450:EF:sensor_process:1:sar.cc:27:chre_utils fatal
Otherwise, it is unused.
Signed-off-by: Richard Acayan <mailingradian@gmail.com>
---
arch/arm64/boot/dts/qcom/sdm670.dtsi | 168 +++++++++++++++++++++++++++
1 file changed, 168 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/sdm670.dtsi b/arch/arm64/boot/dts/qcom/sdm670.dtsi
index 5c60ea36f04a..038ef0f73ea9 100644
--- a/arch/arm64/boot/dts/qcom/sdm670.dtsi
+++ b/arch/arm64/boot/dts/qcom/sdm670.dtsi
@@ -19,6 +19,7 @@
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/phy/phy-qcom-qusb2.h>
#include <dt-bindings/power/qcom-rpmpd.h>
+#include <dt-bindings/soc/qcom,apr.h>
#include <dt-bindings/soc/qcom,rpmh-rsc.h>
/ {
@@ -500,6 +501,34 @@ cluster_pd: power-domain-cluster {
};
};
+ smp2p-lpass {
+ compatible = "qcom,smp2p";
+ qcom,smem = <443>, <429>;
+
+ interrupts = <GIC_SPI 172 IRQ_TYPE_EDGE_RISING>;
+
+ mboxes = <&apss_shared 26>;
+
+ qcom,local-pid = <0>;
+ qcom,remote-pid = <2>;
+
+ adsp_smp2p_out: master-kernel {
+ qcom,entry-name = "master-kernel";
+ #qcom,smem-state-cells = <1>;
+ };
+
+ adsp_smp2p_in: slave-kernel {
+ qcom,entry-name = "slave-kernel";
+ interrupt-controller;
+ #interrupt-cells = <2>;
+ };
+
+ adsp_smp2p_sleepstate: sleepstate {
+ qcom,entry-name = "sleepstate";
+ #qcom,smem-state-cells = <1>;
+ };
+ };
+
reserved-memory {
#address-cells = <2>;
#size-cells = <2>;
@@ -2111,6 +2140,19 @@ dispcc: clock-controller@af00000 {
#power-domain-cells = <1>;
};
+ aoss_qmp: power-management@c300000 {
+ compatible = "qcom,sdm670-aoss-qmp", "qcom,aoss-qmp";
+ reg = <0 0x0c300000 0 0x100000>;
+ interrupts = <GIC_SPI 389 IRQ_TYPE_EDGE_RISING>;
+ mboxes = <&apss_shared 0>;
+
+ #clock-cells = <0>;
+
+ cx_cdev: cx {
+ #cooling-cells = <2>;
+ };
+ };
+
apps_smmu: iommu@15000000 {
compatible = "qcom,sdm670-smmu-500", "qcom,smmu-500", "arm,mmu-500";
reg = <0 0x15000000 0 0x80000>;
@@ -2191,6 +2233,12 @@ gladiator_noc: interconnect@17900000 {
qcom,bcm-voters = <&apps_bcm_voter>;
};
+ apss_shared: mailbox@17990000 {
+ compatible = "qcom,sdm670-apss-shared", "qcom,sdm845-apss-shared";
+ reg = <0 0x17990000 0 0x1000>;
+ #mbox-cells = <1>;
+ };
+
apps_rsc: rsc@179c0000 {
compatible = "qcom,rpmh-rsc";
reg = <0 0x179c0000 0 0x10000>,
@@ -2301,6 +2349,126 @@ cpufreq_hw: cpufreq@17d43000 {
#freq-domain-cells = <1>;
};
+ adsp_pas: remoteproc@62400000 {
+ compatible = "qcom,sdm670-adsp-pas";
+ reg = <0 0x62400000 0 0x4040>;
+
+ interrupts-extended = <&intc GIC_SPI 162 IRQ_TYPE_EDGE_RISING>,
+ <&adsp_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
+ <&adsp_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
+ <&adsp_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
+ <&adsp_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
+ interrupt-names = "wdog", "fatal", "ready",
+ "handover", "stop-ack";
+
+ clocks = <&rpmhcc RPMH_CXO_CLK>;
+ clock-names = "xo";
+
+ memory-region = <&adsp_mem>;
+
+ qcom,qmp = <&aoss_qmp>;
+
+ qcom,smem-states = <&adsp_smp2p_out 0>;
+ qcom,smem-state-names = "stop";
+
+ status = "disabled";
+
+ glink-edge {
+ interrupts = <GIC_SPI 170 IRQ_TYPE_EDGE_RISING>;
+ label = "lpass";
+ qcom,remote-pid = <2>;
+ mboxes = <&apss_shared 24>;
+
+ apr {
+ compatible = "qcom,apr-v2";
+ qcom,glink-channels = "apr_audio_svc";
+ qcom,domain = <APR_DOMAIN_ADSP>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ qcom,intents = <512 20>;
+
+ q6core: service@3 {
+ reg = <APR_SVC_ADSP_CORE>;
+ compatible = "qcom,q6core";
+ qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd";
+ };
+
+ q6afe: service@4 {
+ compatible = "qcom,q6afe";
+ reg = <APR_SVC_AFE>;
+ qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd";
+
+ q6afecc: clock-controller {
+ compatible = "qcom,q6afe-clocks";
+ #clock-cells = <2>;
+ };
+
+ q6afedai: dais {
+ compatible = "qcom,q6afe-dais";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ #sound-dai-cells = <1>;
+ };
+ };
+
+ q6asm: service@7 {
+ compatible = "qcom,q6asm";
+ reg = <APR_SVC_ASM>;
+ qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd";
+ q6asmdai: dais {
+ compatible = "qcom,q6asm-dais";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ #sound-dai-cells = <1>;
+ iommus = <&apps_smmu 0x1801 0x0>;
+ };
+ };
+
+ q6adm: service@8 {
+ compatible = "qcom,q6adm";
+ reg = <APR_SVC_ADM>;
+ qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd";
+ q6routing: routing {
+ compatible = "qcom,q6adm-routing";
+ #sound-dai-cells = <0>;
+ };
+ };
+ };
+
+ fastrpc {
+ compatible = "qcom,fastrpc";
+ qcom,glink-channels = "fastrpcglink-apps-dsp";
+ label = "adsp";
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ compute-cb@3 {
+ compatible = "qcom,fastrpc-compute-cb";
+ reg = <3>;
+ iommus = <&apps_smmu 0x1803 0x0>;
+ };
+
+ compute-cb@4 {
+ compatible = "qcom,fastrpc-compute-cb";
+ reg = <4>;
+ iommus = <&apps_smmu 0x1804 0x0>;
+ };
+
+ compute-cb@5 {
+ compatible = "qcom,fastrpc-compute-cb";
+ reg = <5>;
+ iommus = <&apps_smmu 0x1805 0x0>;
+ };
+
+ compute-cb@6 {
+ compatible = "qcom,fastrpc-compute-cb";
+ reg = <6>;
+ iommus = <&apps_smmu 0x1806 0x0>;
+ };
+ };
+ };
+ };
+
lpi_tlmm: pinctrl@62b40000 {
compatible = "qcom,sdm670-lpass-lpi-pinctrl";
reg = <0 0x62b40000 0 0x20000>;
--
2.56.0
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH v2 08/11] arm64: dts: qcom: sdm670-google: enable adsp
2026-10-03 17:56 [PATCH v2 00/11] ADSP for SDM670 and sound on Google Pixel 3a Richard Acayan
` (6 preceding siblings ...)
2026-10-03 17:56 ` [PATCH v2 07/11] arm64: dts: qcom: sdm670: add adsp Richard Acayan
@ 2026-10-03 17:56 ` Richard Acayan
2026-10-03 17:56 ` [PATCH v2 09/11] arm64: dts: qcom: pm660l: add analog audio codec Richard Acayan
` (3 subsequent siblings)
11 siblings, 0 replies; 20+ messages in thread
From: Richard Acayan @ 2026-10-03 17:56 UTC (permalink / raw)
To: Jassi Brar, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Bjorn Andersson, Mathieu Poirier, Konrad Dybcio, Abel Vesa,
Srinivas Kandagatla, Liam Girdwood, Mark Brown,
Manivannan Sadhasivam, Andy Gross, linux-arm-msm, devicetree,
linux-remoteproc, linux-sound
Cc: Richard Acayan
Enable the ADSP on the Pixel 3a in anticipation of audio support.
Signed-off-by: Richard Acayan <mailingradian@gmail.com>
---
arch/arm64/boot/dts/qcom/sdm670-google-common.dtsi | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/sdm670-google-common.dtsi b/arch/arm64/boot/dts/qcom/sdm670-google-common.dtsi
index b4854801a5f5..73639b0271e9 100644
--- a/arch/arm64/boot/dts/qcom/sdm670-google-common.dtsi
+++ b/arch/arm64/boot/dts/qcom/sdm670-google-common.dtsi
@@ -196,6 +196,12 @@ cam_vio_ldo: cam-vio-ldo-regulator {
};
};
+&adsp_pas {
+ firmware-name = "qcom/sdm670/sargo/adsp.mbn";
+
+ status = "okay";
+};
+
&apps_rsc {
regulators-0 {
compatible = "qcom,pm660-rpmh-regulators";
--
2.56.0
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH v2 09/11] arm64: dts: qcom: pm660l: add analog audio codec
2026-10-03 17:56 [PATCH v2 00/11] ADSP for SDM670 and sound on Google Pixel 3a Richard Acayan
` (7 preceding siblings ...)
2026-10-03 17:56 ` [PATCH v2 08/11] arm64: dts: qcom: sdm670-google: enable adsp Richard Acayan
@ 2026-10-03 17:56 ` Richard Acayan
2026-10-03 18:06 ` sashiko-bot
2026-10-03 17:56 ` [PATCH v2 10/11] arm64: dts: qcom: sdm670: add digital " Richard Acayan
` (2 subsequent siblings)
11 siblings, 1 reply; 20+ messages in thread
From: Richard Acayan @ 2026-10-03 17:56 UTC (permalink / raw)
To: Jassi Brar, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Bjorn Andersson, Mathieu Poirier, Konrad Dybcio, Abel Vesa,
Srinivas Kandagatla, Liam Girdwood, Mark Brown,
Manivannan Sadhasivam, Andy Gross, linux-arm-msm, devicetree,
linux-remoteproc, linux-sound
Cc: Richard Acayan
The PM660L analog audio codec (PMIC revision 4) controls the headphone
jack, and optionally the earpiece and speaker, at the vendor's decision.
Add the analog audio codec.
Signed-off-by: Richard Acayan <mailingradian@gmail.com>
---
arch/arm64/boot/dts/qcom/pm660l.dtsi | 40 ++++++++++++++++++++++++++++
1 file changed, 40 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/pm660l.dtsi b/arch/arm64/boot/dts/qcom/pm660l.dtsi
index 3f8b9eafe164..5b406b83043c 100644
--- a/arch/arm64/boot/dts/qcom/pm660l.dtsi
+++ b/arch/arm64/boot/dts/qcom/pm660l.dtsi
@@ -87,6 +87,46 @@ pm660l_wled: leds@d800 {
status = "disabled";
};
+ pm660l_codec: audio-codec@f000 {
+ compatible = "qcom,pm660l-wcd-analog-codec",
+ "qcom,pm8953-wcd-analog-codec";
+ reg = <0xf000>;
+ interrupts = <0x3 0xf0 0x0 IRQ_TYPE_NONE>,
+ <0x3 0xf0 0x1 IRQ_TYPE_NONE>,
+ <0x3 0xf0 0x2 IRQ_TYPE_NONE>,
+ <0x3 0xf0 0x3 IRQ_TYPE_NONE>,
+ <0x3 0xf0 0x4 IRQ_TYPE_NONE>,
+ <0x3 0xf0 0x5 IRQ_TYPE_NONE>,
+ <0x3 0xf0 0x6 IRQ_TYPE_NONE>,
+ <0x3 0xf0 0x7 IRQ_TYPE_NONE>,
+ <0x3 0xf1 0x0 IRQ_TYPE_NONE>,
+ <0x3 0xf1 0x1 IRQ_TYPE_NONE>,
+ <0x3 0xf1 0x2 IRQ_TYPE_NONE>,
+ <0x3 0xf1 0x3 IRQ_TYPE_NONE>,
+ <0x3 0xf1 0x4 IRQ_TYPE_NONE>,
+ <0x3 0xf1 0x5 IRQ_TYPE_NONE>;
+ interrupt-names = "cdc_spk_cnp_int",
+ "cdc_spk_clip_int",
+ "cdc_spk_ocp_int",
+ "mbhc_ins_rem_det1",
+ "mbhc_but_rel_det",
+ "mbhc_but_press_det",
+ "mbhc_ins_rem_det",
+ "mbhc_switch_int",
+ "cdc_ear_ocp_int",
+ "cdc_hphr_ocp_int",
+ "cdc_hphl_ocp_det",
+ "cdc_ear_cnp_int",
+ "cdc_hphr_cnp_int",
+ "cdc_hphl_cnp_int";
+ qcom,hphl-jack-type-normally-open;
+ qcom,gnd-jack-type-normally-open;
+ qcom,micbias2-ext-cap;
+ sound-name-prefix = "Analog";
+ #sound-dai-cells = <1>;
+ status = "disabled";
+ };
+
pm660l_spmi_regulators: regulators {
compatible = "qcom,pm660l-regulators";
};
--
2.56.0
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH v2 10/11] arm64: dts: qcom: sdm670: add digital audio codec
2026-10-03 17:56 [PATCH v2 00/11] ADSP for SDM670 and sound on Google Pixel 3a Richard Acayan
` (8 preceding siblings ...)
2026-10-03 17:56 ` [PATCH v2 09/11] arm64: dts: qcom: pm660l: add analog audio codec Richard Acayan
@ 2026-10-03 17:56 ` Richard Acayan
2026-10-03 17:56 ` [PATCH v2 11/11] arm64: dts: qcom: sdm670-google: add sound card Richard Acayan
2026-10-07 11:05 ` (subset) [PATCH v2 00/11] ADSP for SDM670 and sound on Google Pixel 3a Mark Brown
11 siblings, 0 replies; 20+ messages in thread
From: Richard Acayan @ 2026-10-03 17:56 UTC (permalink / raw)
To: Jassi Brar, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Bjorn Andersson, Mathieu Poirier, Konrad Dybcio, Abel Vesa,
Srinivas Kandagatla, Liam Girdwood, Mark Brown,
Manivannan Sadhasivam, Andy Gross, linux-arm-msm, devicetree,
linux-remoteproc, linux-sound
Cc: Richard Acayan
Add the digital WCD audio codec to the SDM670 device tree.
Signed-off-by: Richard Acayan <mailingradian@gmail.com>
---
arch/arm64/boot/dts/qcom/sdm670.dtsi | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/sdm670.dtsi b/arch/arm64/boot/dts/qcom/sdm670.dtsi
index 038ef0f73ea9..91188acd16b1 100644
--- a/arch/arm64/boot/dts/qcom/sdm670.dtsi
+++ b/arch/arm64/boot/dts/qcom/sdm670.dtsi
@@ -21,6 +21,7 @@
#include <dt-bindings/power/qcom-rpmpd.h>
#include <dt-bindings/soc/qcom,apr.h>
#include <dt-bindings/soc/qcom,rpmh-rsc.h>
+#include <dt-bindings/sound/qcom,q6dsp-lpass-ports.h>
/ {
interrupt-parent = <&intc>;
@@ -2541,5 +2542,19 @@ data2-pins {
};
};
};
+
+ lpass_codec: audio-codec@62ec0000 {
+ compatible = "qcom,sdm670-wcd-digital-codec",
+ "qcom,msm8916-wcd-digital-codec";
+ reg = <0 0x62ec0000 0 0x400>;
+
+ clocks = <&q6afecc LPASS_CLK_ID_INT_MCLK_0 LPASS_CLK_ATTRIBUTE_COUPLE_NO>;
+ clock-names = "mclk";
+
+ sound-name-prefix = "Digital";
+ #sound-dai-cells = <1>;
+
+ status = "disabled";
+ };
};
};
--
2.56.0
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH v2 11/11] arm64: dts: qcom: sdm670-google: add sound card
2026-10-03 17:56 [PATCH v2 00/11] ADSP for SDM670 and sound on Google Pixel 3a Richard Acayan
` (9 preceding siblings ...)
2026-10-03 17:56 ` [PATCH v2 10/11] arm64: dts: qcom: sdm670: add digital " Richard Acayan
@ 2026-10-03 17:56 ` Richard Acayan
2026-10-03 18:11 ` sashiko-bot
2026-10-07 11:05 ` (subset) [PATCH v2 00/11] ADSP for SDM670 and sound on Google Pixel 3a Mark Brown
11 siblings, 1 reply; 20+ messages in thread
From: Richard Acayan @ 2026-10-03 17:56 UTC (permalink / raw)
To: Jassi Brar, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Bjorn Andersson, Mathieu Poirier, Konrad Dybcio, Abel Vesa,
Srinivas Kandagatla, Liam Girdwood, Mark Brown,
Manivannan Sadhasivam, Andy Gross, linux-arm-msm, devicetree,
linux-remoteproc, linux-sound
Cc: Richard Acayan
The Pixel 3a has a sound card for built-in audio (RT5514 and CS35L36
codecs) and for the headphone jack (WCD codec). Add the sound card,
q6asm frontends, and WCD codec for headset audio.
Signed-off-by: Richard Acayan <mailingradian@gmail.com>
---
.../boot/dts/qcom/sdm670-google-common.dtsi | 144 ++++++++++++++++++
1 file changed, 144 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/sdm670-google-common.dtsi b/arch/arm64/boot/dts/qcom/sdm670-google-common.dtsi
index 73639b0271e9..fadd3b5eca42 100644
--- a/arch/arm64/boot/dts/qcom/sdm670-google-common.dtsi
+++ b/arch/arm64/boot/dts/qcom/sdm670-google-common.dtsi
@@ -11,6 +11,7 @@
#include <dt-bindings/leds/common.h>
#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
#include <dt-bindings/power/qcom-rpmpd.h>
+#include <dt-bindings/sound/qcom,q6asm.h>
#include "sdm670.dtsi"
#include "pm660.dtsi"
#include "pm660l.dtsi"
@@ -52,6 +53,14 @@ framebuffer: framebuffer@9c000000 {
};
};
+ clocks {
+ int_cdc_bclk: int-cdc-bclk {
+ compatible = "fixed-clock";
+ #clock-cells = <0>;
+ clock-frequency = <1536000>;
+ };
+ };
+
gpio-keys {
compatible = "gpio-keys";
autorepeat;
@@ -127,6 +136,87 @@ debug_info_mem: debug-info@a1800000 {
};
};
+ sound {
+ compatible = "qcom,sdm660-sndcard";
+ model = "Google Pixel 3a";
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&cdc_pdm_default>,
+ <&cdc_dmic_default>;
+
+ audio-routing = "Analog PDM_RX1", "Digital PDM_RX1",
+ "Analog PDM_RX2", "Digital PDM_RX2",
+ "Analog PDM_RX3", "Digital PDM_RX3",
+ "Digital LPASS_PDM_TX", "Analog PDM_TX",
+ "Analog AMIC2", "Analog MIC BIAS External2";
+
+ mm1-dai-link {
+ link-name = "MultiMedia1";
+
+ cpu {
+ sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA1>;
+ };
+ };
+
+ mm2-dai-link {
+ link-name = "MultiMedia2";
+
+ cpu {
+ sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA2>;
+ };
+ };
+
+ mm3-dai-link {
+ link-name = "MultiMedia3";
+
+ cpu {
+ sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA3>;
+ };
+ };
+
+ mm4-dai-link {
+ link-name = "MultiMedia4";
+
+ cpu {
+ sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA4>;
+ };
+ };
+
+ lpi-mi2s-rx-dai-link {
+ link-name = "LPI MI2S Playback";
+
+ codec {
+ sound-dai = <&pm660l_codec 0>,
+ <&lpass_codec 0>;
+ };
+
+ cpu {
+ sound-dai = <&q6afedai LPI_MI2S_RX_0>;
+ };
+
+ platform {
+ sound-dai = <&q6routing>;
+ };
+ };
+
+ lpi-mi2s-tx-dai-link {
+ link-name = "LPI MI2S Capture";
+
+ codec {
+ sound-dai = <&pm660l_codec 1>,
+ <&lpass_codec 1>;
+ };
+
+ cpu {
+ sound-dai = <&q6afedai LPI_MI2S_TX_3>;
+ };
+
+ platform {
+ sound-dai = <&q6routing>;
+ };
+ };
+ };
+
/*
* The touchscreen regulator seems to be controlled somehow by a gpio.
* Model it as a fixed regulator and keep it on. Without schematics we
@@ -528,6 +618,17 @@ rmi4_f12: rmi4-f12@12 {
};
};
+&lpass_codec {
+ clocks = <&int_cdc_bclk>,
+ <&q6afecc LPASS_CLK_ID_INT_MCLK_0 LPASS_CLK_ATTRIBUTE_COUPLE_NO>;
+ clock-names = "ahbix-clk", "mclk";
+
+ assigned-clocks = <&q6afecc LPASS_CLK_ID_INT_MCLK_0 LPASS_CLK_ATTRIBUTE_COUPLE_NO>;
+ assigned-clock-rates = <9600000>;
+
+ status = "okay";
+};
+
&lpi_tlmm {
/* sensor gpios are protected */
gpio-reserved-ranges = <0 8>, <12 6>;
@@ -591,6 +692,19 @@ &pm660_rradc {
status = "okay";
};
+&pm660l_codec {
+ vdd-cdc-io-supply = <&vreg_l10a_1p8>;
+ vdd-cdc-tx-rx-cx-supply = <&vreg_l1b_0p925>;
+ vdd-micbias-supply = <&vreg_l7b_3p125>;
+
+ qcom,mbhc-vthreshold-low = <75 150 237 437 437>;
+ qcom,mbhc-vthreshold-high = <75 150 237 437 437>;
+
+ qcom,micbias-lvl = <2500>;
+
+ status = "okay";
+};
+
&pm660l_flash {
status = "okay";
@@ -633,6 +747,36 @@ &qupv3_id_1 {
status = "okay";
};
+&q6afedai {
+ dai@89 {
+ reg = <LPI_MI2S_RX_0>;
+ qcom,sd-lines = <0 1>;
+ };
+
+ dai@90 {
+ reg = <LPI_MI2S_TX_3>;
+ qcom,sd-lines = <0 1>;
+ };
+};
+
+&q6asmdai {
+ dai@0 {
+ reg = <MSM_FRONTEND_DAI_MULTIMEDIA1>;
+ };
+
+ dai@1 {
+ reg = <MSM_FRONTEND_DAI_MULTIMEDIA2>;
+ };
+
+ dai@2 {
+ reg = <MSM_FRONTEND_DAI_MULTIMEDIA3>;
+ };
+
+ dai@3 {
+ reg = <MSM_FRONTEND_DAI_MULTIMEDIA4>;
+ };
+};
+
&sdhc_1 {
supports-cqe;
mmc-hs200-1_8v;
--
2.56.0
^ permalink raw reply related [flat|nested] 20+ messages in thread
* Re: [PATCH v2 04/11] dt-bindings: remoteproc: qcom: adsp: Add SDM670 ADSP compatible
2026-10-03 17:56 ` [PATCH v2 04/11] dt-bindings: remoteproc: qcom: adsp: Add SDM670 ADSP compatible Richard Acayan
@ 2026-10-03 18:05 ` sashiko-bot
2026-10-09 6:52 ` Krzysztof Kozlowski
1 sibling, 0 replies; 20+ messages in thread
From: sashiko-bot @ 2026-10-03 18:05 UTC (permalink / raw)
To: Richard Acayan; +Cc: conor+dt, robh, devicetree
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] dt-bindings: schema bypass due to compatible string in standalone enum
--
commit fe965abba1a50ee3f23c3149e9b465705dc13459
Author: Richard Acayan <mailingradian@gmail.com>
dt-bindings: remoteproc: qcom: adsp: Add SDM670 ADSP compatible
The commit adds the SDM670 ADSP compatible string to the qcom,adsp binding.
It splits the compatible property into a oneOf block to allow the SDM670
compatible to fallback to SDM845.
> diff --git a/Documentation/devicetree/bindings/remoteproc/qcom,adsp.yaml b/Documentation/devicetree/bindings/remoteproc/qcom,adsp.yaml
> index 7e8ecae8e6cb6..6cf1f11efe041 100644
> --- a/Documentation/devicetree/bindings/remoteproc/qcom,adsp.yaml
> +++ b/Documentation/devicetree/bindings/remoteproc/qcom,adsp.yaml
> @@ -15,19 +15,26 @@ description:
>
> properties:
> compatible:
[ ... ]
> + oneOf:
> + - enum:
> + - qcom,msm8226-adsp-pil
[ ... ]
> + - qcom,sdm660-cdsp-pas
> + - qcom,sdm670-adsp-pas
[Severity: Medium]
Does adding qcom,sdm670-adsp-pas to this standalone enum branch bypass the
fallback requirement?
Because oneOf only requires a single branch to match, a device tree node
specifying only "qcom,sdm670-adsp-pas" matches this enum branch and passes
schema validation.
This bypasses the fallback enforcement in the items branch below, allowing
DTS nodes to be introduced without the required fallback string. Without
the fallback string, older kernels may fail to probe the device.
> + - qcom,sdm845-adsp-pas
> + - qcom,sdm845-cdsp-pas
> + - qcom,sdm845-slpi-pas
> +
> + - items:
> + - enum:
> + - qcom,sdm670-adsp-pas
> + - const: qcom,sdm845-adsp-pas
>
> reg:
> maxItems: 1
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261003175659.23536-1-mailingradian@gmail.com?part=4
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH v2 09/11] arm64: dts: qcom: pm660l: add analog audio codec
2026-10-03 17:56 ` [PATCH v2 09/11] arm64: dts: qcom: pm660l: add analog audio codec Richard Acayan
@ 2026-10-03 18:06 ` sashiko-bot
0 siblings, 0 replies; 20+ messages in thread
From: sashiko-bot @ 2026-10-03 18:06 UTC (permalink / raw)
To: Richard Acayan; +Cc: conor+dt, robh, devicetree
Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [Medium] dts: pm660l: board-specific hardware properties hardcoded in generic PMIC dtsi
- [Low] dts: pm660l: undeclared sound-name-prefix causes dtbs_check warning
--
commit cfcd4e3e10aad19a5a6d69fee31b064e8108d24a
Author: Richard Acayan <mailingradian@gmail.com>
arm64: dts: qcom: pm660l: add analog audio codec
The PM660L analog audio codec (PMIC revision 4) controls the headphone
jack, and optionally the earpiece and speaker, at the vendor's decision.
This commit adds the analog audio codec to the generic PMIC device tree.
> diff --git a/arch/arm64/boot/dts/qcom/pm660l.dtsi b/arch/arm64/boot/dts/qcom/pm660l.dtsi
> index 3f8b9eafe1641..5b406b83043c2 100644
> --- a/arch/arm64/boot/dts/qcom/pm660l.dtsi
> +++ b/arch/arm64/boot/dts/qcom/pm660l.dtsi
> @@ -87,6 +87,46 @@ pm660l_wled: leds@d800 {
> status = "disabled";
> };
>
> + pm660l_codec: audio-codec@f000 {
> + compatible = "qcom,pm660l-wcd-analog-codec",
> + "qcom,pm8953-wcd-analog-codec";
> + reg = <0xf000>;
[ ... ]
> + interrupt-names = "cdc_spk_cnp_int",
> + "cdc_spk_clip_int",
> + "cdc_spk_ocp_int",
> + "mbhc_ins_rem_det1",
> + "mbhc_but_rel_det",
> + "mbhc_but_press_det",
> + "mbhc_ins_rem_det",
> + "mbhc_switch_int",
> + "cdc_ear_ocp_int",
> + "cdc_hphr_ocp_int",
> + "cdc_hphl_ocp_det",
> + "cdc_ear_cnp_int",
> + "cdc_hphr_cnp_int",
> + "cdc_hphl_cnp_int";
> + qcom,hphl-jack-type-normally-open;
> + qcom,gnd-jack-type-normally-open;
> + qcom,micbias2-ext-cap;
[Severity: Medium]
Will this cause problems for other boards that include this generic PMIC
file but have different hardware wiring?
These physical wiring properties (qcom,hphl-jack-type-normally-open,
qcom,gnd-jack-type-normally-open, qcom,micbias2-ext-cap) seem like they
should be placed in board-specific .dts files rather than a generic common
.dtsi.
Other boards with differently wired jacks (e.g., normally-closed) or lacking
an external capacitor will inherit these settings, which could lead to
inverted headphone detection or broken microphones.
> + sound-name-prefix = "Analog";
[Severity: Low]
Is this sound-name-prefix property supported by the dt-binding schema?
It appears that the dt-binding schema for this codec
(Documentation/devicetree/bindings/sound/qcom,pm8916-wcd-analog-codec.yaml)
enforces additionalProperties: false and does not define sound-name-prefix.
Adding it here will likely cause a dtbs_check validation failure.
> + #sound-dai-cells = <1>;
> + status = "disabled";
> + };
> +
> pm660l_spmi_regulators: regulators {
> compatible = "qcom,pm660l-regulators";
> };
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261003175659.23536-1-mailingradian@gmail.com?part=9
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH v2 07/11] arm64: dts: qcom: sdm670: add adsp
2026-10-03 17:56 ` [PATCH v2 07/11] arm64: dts: qcom: sdm670: add adsp Richard Acayan
@ 2026-10-03 18:08 ` sashiko-bot
0 siblings, 0 replies; 20+ messages in thread
From: sashiko-bot @ 2026-10-03 18:08 UTC (permalink / raw)
To: Richard Acayan; +Cc: devicetree, robh, conor+dt
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] dts: qcom: missing qcom,non-secure-domain in ADSP fastrpc node
--
commit 0239f40f83c2c0077ff48ea5393d0b2751dd608a
Author: Richard Acayan <mailingradian@gmail.com>
arm64: dts: qcom: sdm670: add adsp
This commit adds the Audio DSP (ADSP) node along with the SMP2P nodes
used to communicate with it on the SDM670. The sleep state is also
included to prevent crashes related to sensor processing.
> diff --git a/arch/arm64/boot/dts/qcom/sdm670.dtsi b/arch/arm64/boot/dts/qcom/sdm670.dtsi
> index 5c60ea36f04a1..038ef0f73ea94 100644
> --- a/arch/arm64/boot/dts/qcom/sdm670.dtsi
> +++ b/arch/arm64/boot/dts/qcom/sdm670.dtsi
[ ... ]
> @@ -2301,6 +2349,126 @@ cpufreq_hw: cpufreq@17d43000 {
> #freq-domain-cells = <1>;
> };
>
> + adsp_pas: remoteproc@62400000 {
[ ... ]
> + fastrpc {
> + compatible = "qcom,fastrpc";
> + qcom,glink-channels = "fastrpcglink-apps-dsp";
> + label = "adsp";
> + #address-cells = <1>;
> + #size-cells = <0>;
[Severity: Medium]
Is the `qcom,non-secure-domain` property missing here?
During probe, the driver checks for `qcom,non-secure-domain`. When it is
missing, the driver defaults `secure_dsp` to true, creating a
`/dev/fastrpc-adsp-secure` device node instead of the standard
`/dev/fastrpc-adsp`.
Does this break standard userspace audio and sensor applications that expect
the non-secure device node for standard ADSP compute tasks?
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261003175659.23536-1-mailingradian@gmail.com?part=7
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH v2 11/11] arm64: dts: qcom: sdm670-google: add sound card
2026-10-03 17:56 ` [PATCH v2 11/11] arm64: dts: qcom: sdm670-google: add sound card Richard Acayan
@ 2026-10-03 18:11 ` sashiko-bot
0 siblings, 0 replies; 20+ messages in thread
From: sashiko-bot @ 2026-10-03 18:11 UTC (permalink / raw)
To: Richard Acayan; +Cc: conor+dt, devicetree, robh
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] dts: incorrect routing of 1.536MHz bit clock to AHB interconnect
--
commit dd0eb0dfbca83fed6d11405e093c6017f1613bfc
Author: Richard Acayan <mailingradian@gmail.com>
arm64: dts: qcom: sdm670-google: add sound card
This commit adds devicetree entries for the Pixel 3a sound card. It
configures the WCD codec, q6asm frontends, audio routing, and the
associated clocks for headset audio.
> diff --git a/arch/arm64/boot/dts/qcom/sdm670-google-common.dtsi b/arch/arm64/boot/dts/qcom/sdm670-google-common.dtsi
> index 73639b0271e9b..fadd3b5eca42a 100644
> --- a/arch/arm64/boot/dts/qcom/sdm670-google-common.dtsi
> +++ b/arch/arm64/boot/dts/qcom/sdm670-google-common.dtsi
[ ... ]
> @@ -52,6 +53,14 @@ framebuffer: framebuffer@9c000000 {
> };
> };
>
> + clocks {
> + int_cdc_bclk: int-cdc-bclk {
> + compatible = "fixed-clock";
> + #clock-cells = <0>;
> + clock-frequency = <1536000>;
> + };
> + };
> +
[ ... ]
> @@ -528,6 +618,17 @@ rmi4_f12: rmi4-f12@12 {
> };
> };
>
> +&lpass_codec {
> + clocks = <&int_cdc_bclk>,
> + <&q6afecc LPASS_CLK_ID_INT_MCLK_0 LPASS_CLK_ATTRIBUTE_COUPLE_NO>;
> + clock-names = "ahbix-clk", "mclk";
[Severity: Medium]
Is it safe to supply a dummy 1.536 MHz bit clock as the AHB interconnect
clock here?
The underlying digital codec driver unconditionally requires the AHB clock
in msm8916_wcd_digital_get_clks():
priv->ahbclk = devm_clk_get(dev, "ahbix-clk");
if (IS_ERR(priv->ahbclk)) {
dev_err(dev, "failed to get ahbix clk\n");
return PTR_ERR(priv->ahbclk);
}
By satisfying "ahbix-clk" with a dummy fixed clock, the hardware state is
misrepresented. The driver will successfully "enable" this dummy clock
and proceed to access registers.
If the actual AHB clock is gated by firmware or another driver, could
this result in register accesses without the bus being clocked,
triggering a bus stall and a synchronous external abort?
> +
> + assigned-clocks = <&q6afecc LPASS_CLK_ID_INT_MCLK_0 LPASS_CLK_ATTRIBUTE_COUPLE_NO>;
> + assigned-clock-rates = <9600000>;
> +
> + status = "okay";
> +};
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261003175659.23536-1-mailingradian@gmail.com?part=11
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH v2 05/11] ASoC: dt-bindings: msm8916-digital-codec: Add SDM670 compatible
2026-10-03 17:56 ` [PATCH v2 05/11] ASoC: dt-bindings: msm8916-digital-codec: Add SDM670 compatible Richard Acayan
@ 2026-10-04 7:55 ` Krzysztof Kozlowski
0 siblings, 0 replies; 20+ messages in thread
From: Krzysztof Kozlowski @ 2026-10-04 7:55 UTC (permalink / raw)
To: Richard Acayan
Cc: Jassi Brar, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Bjorn Andersson, Mathieu Poirier, Konrad Dybcio, Abel Vesa,
Srinivas Kandagatla, Liam Girdwood, Mark Brown,
Manivannan Sadhasivam, Andy Gross, linux-arm-msm, devicetree,
linux-remoteproc, linux-sound
On Sat, Oct 03, 2026 at 01:56:53PM -0400, Richard Acayan wrote:
> The MSM8916 digital codec is also found on SDM670, typically connected
> to the sound card. Add the compatible for SDM670.
>
> Signed-off-by: Richard Acayan <mailingradian@gmail.com>
> ---
> .../bindings/sound/qcom,msm8916-wcd-digital-codec.yaml | 1 +
> 1 file changed, 1 insertion(+)
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: (subset) [PATCH v2 00/11] ADSP for SDM670 and sound on Google Pixel 3a
2026-10-03 17:56 [PATCH v2 00/11] ADSP for SDM670 and sound on Google Pixel 3a Richard Acayan
` (10 preceding siblings ...)
2026-10-03 17:56 ` [PATCH v2 11/11] arm64: dts: qcom: sdm670-google: add sound card Richard Acayan
@ 2026-10-07 11:05 ` Mark Brown
11 siblings, 0 replies; 20+ messages in thread
From: Mark Brown @ 2026-10-07 11:05 UTC (permalink / raw)
To: Jassi Brar, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Bjorn Andersson, Mathieu Poirier, Konrad Dybcio, Abel Vesa,
Srinivas Kandagatla, Liam Girdwood, Manivannan Sadhasivam,
Andy Gross, linux-arm-msm, devicetree, linux-remoteproc,
linux-sound, Richard Acayan
On Sat, 03 Oct 2026 13:56:48 -0400, Richard Acayan wrote:
> ADSP for SDM670 and sound on Google Pixel 3a
>
> This series adds a user for the SDM660 sound support code [1]. It also
> adds the ADSP remoteproc for SDM670.
>
> [1] https://lore.kernel.org/r/20260730174353.108023-1-mailingradian@gmail.com
>
> [...]
Applied to
https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-7.4
Thanks!
[05/11] ASoC: dt-bindings: msm8916-digital-codec: Add SDM670 compatible
https://git.kernel.org/broonie/sound/c/5b81127873ae
All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.
You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.
If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.
Please add any relevant lists and maintainers to the CCs when replying
to this mail.
Thanks,
Mark
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH v2 04/11] dt-bindings: remoteproc: qcom: adsp: Add SDM670 ADSP compatible
2026-10-03 17:56 ` [PATCH v2 04/11] dt-bindings: remoteproc: qcom: adsp: Add SDM670 ADSP compatible Richard Acayan
2026-10-03 18:05 ` sashiko-bot
@ 2026-10-09 6:52 ` Krzysztof Kozlowski
1 sibling, 0 replies; 20+ messages in thread
From: Krzysztof Kozlowski @ 2026-10-09 6:52 UTC (permalink / raw)
To: Richard Acayan
Cc: Jassi Brar, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Bjorn Andersson, Mathieu Poirier, Konrad Dybcio, Abel Vesa,
Srinivas Kandagatla, Liam Girdwood, Mark Brown,
Manivannan Sadhasivam, Andy Gross, linux-arm-msm, devicetree,
linux-remoteproc, linux-sound
On Sat, Oct 03, 2026 at 01:56:52PM -0400, Richard Acayan wrote:
> The SDM670 ADSP is like the SDM845 ADSP. Add the compatible for the
> Audio DSP on SDM670, with the fallback as SDM845.
>
> Signed-off-by: Richard Acayan <mailingradian@gmail.com>
> ---
> .../bindings/remoteproc/qcom,adsp.yaml | 33 +++++++++++--------
> 1 file changed, 20 insertions(+), 13 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/remoteproc/qcom,adsp.yaml b/Documentation/devicetree/bindings/remoteproc/qcom,adsp.yaml
> index 7e8ecae8e6cb..6cf1f11efe04 100644
> --- a/Documentation/devicetree/bindings/remoteproc/qcom,adsp.yaml
> +++ b/Documentation/devicetree/bindings/remoteproc/qcom,adsp.yaml
> @@ -15,19 +15,26 @@ description:
>
> properties:
> compatible:
> - enum:
> - - qcom,msm8226-adsp-pil
> - - qcom,msm8953-adsp-pil
> - - qcom,msm8974-adsp-pil
> - - qcom,msm8996-adsp-pil
> - - qcom,msm8996-slpi-pil
> - - qcom,msm8998-adsp-pas
> - - qcom,msm8998-slpi-pas
> - - qcom,sdm660-adsp-pas
> - - qcom,sdm660-cdsp-pas
> - - qcom,sdm845-adsp-pas
> - - qcom,sdm845-cdsp-pas
> - - qcom,sdm845-slpi-pas
> + oneOf:
> + - enum:
> + - qcom,msm8226-adsp-pil
> + - qcom,msm8953-adsp-pil
> + - qcom,msm8974-adsp-pil
> + - qcom,msm8996-adsp-pil
> + - qcom,msm8996-slpi-pil
> + - qcom,msm8998-adsp-pas
> + - qcom,msm8998-slpi-pas
> + - qcom,sdm660-adsp-pas
> + - qcom,sdm660-cdsp-pas
> + - qcom,sdm670-adsp-pas
Why is it here?
> + - qcom,sdm845-adsp-pas
> + - qcom,sdm845-cdsp-pas
> + - qcom,sdm845-slpi-pas
> +
> + - items:
> + - enum:
> + - qcom,sdm670-adsp-pas
And here?
How is it supposed to work?
> + - const: qcom,sdm845-adsp-pas
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH v2 06/11] remoteproc: qcom: pas: Add SDM670 ADSP support
2026-10-03 17:56 ` [PATCH v2 06/11] remoteproc: qcom: pas: Add SDM670 ADSP support Richard Acayan
@ 2026-10-09 8:41 ` Dmitry Baryshkov
0 siblings, 0 replies; 20+ messages in thread
From: Dmitry Baryshkov @ 2026-10-09 8:41 UTC (permalink / raw)
To: Richard Acayan
Cc: Jassi Brar, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Bjorn Andersson, Mathieu Poirier, Konrad Dybcio, Abel Vesa,
Srinivas Kandagatla, Liam Girdwood, Mark Brown,
Manivannan Sadhasivam, Andy Gross, linux-arm-msm, devicetree,
linux-remoteproc, linux-sound
On Sat, Oct 03, 2026 at 01:56:54PM -0400, Richard Acayan wrote:
> The ADSP is used to control audio and sensors on the SDM670 SoC. Add the
> compatible for it, with the same data as SDM845 since the driver
> requires the load_state.
>
> Signed-off-by: Richard Acayan <mailingradian@gmail.com>
> ---
> drivers/remoteproc/qcom_q6v5_pas.c | 1 +
> 1 file changed, 1 insertion(+)
>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 20+ messages in thread
end of thread, other threads:[~2026-10-09 8:41 UTC | newest]
Thread overview: 20+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-03 17:56 [PATCH v2 00/11] ADSP for SDM670 and sound on Google Pixel 3a Richard Acayan
2026-10-03 17:56 ` [PATCH v2 01/11] dt-bindings: soc: qcom,smp2p: add sleepstate support Richard Acayan
2026-10-03 17:56 ` [PATCH v2 02/11] dt-bindings: mailbox: qcom: Add SDM670 APCS compatible Richard Acayan
2026-10-03 17:56 ` [PATCH v2 03/11] dt-bindings: soc: qcom: aoss: Add compatible for SDM670 Richard Acayan
2026-10-03 17:56 ` [PATCH v2 04/11] dt-bindings: remoteproc: qcom: adsp: Add SDM670 ADSP compatible Richard Acayan
2026-10-03 18:05 ` sashiko-bot
2026-10-09 6:52 ` Krzysztof Kozlowski
2026-10-03 17:56 ` [PATCH v2 05/11] ASoC: dt-bindings: msm8916-digital-codec: Add SDM670 compatible Richard Acayan
2026-10-04 7:55 ` Krzysztof Kozlowski
2026-10-03 17:56 ` [PATCH v2 06/11] remoteproc: qcom: pas: Add SDM670 ADSP support Richard Acayan
2026-10-09 8:41 ` Dmitry Baryshkov
2026-10-03 17:56 ` [PATCH v2 07/11] arm64: dts: qcom: sdm670: add adsp Richard Acayan
2026-10-03 18:08 ` sashiko-bot
2026-10-03 17:56 ` [PATCH v2 08/11] arm64: dts: qcom: sdm670-google: enable adsp Richard Acayan
2026-10-03 17:56 ` [PATCH v2 09/11] arm64: dts: qcom: pm660l: add analog audio codec Richard Acayan
2026-10-03 18:06 ` sashiko-bot
2026-10-03 17:56 ` [PATCH v2 10/11] arm64: dts: qcom: sdm670: add digital " Richard Acayan
2026-10-03 17:56 ` [PATCH v2 11/11] arm64: dts: qcom: sdm670-google: add sound card Richard Acayan
2026-10-03 18:11 ` sashiko-bot
2026-10-07 11:05 ` (subset) [PATCH v2 00/11] ADSP for SDM670 and sound on Google Pixel 3a Mark Brown
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox