Re: [PATCH v1 1/4] ASoC: dt-bindings: qcom,q6apm-lpass-dais: Document DAI subnode

From: Mohammad Rafi Shaik

Date: Tue Mar 17 2026 - 01:28:01 EST




On 3/10/2026 3:25 PM, Krzysztof Kozlowski wrote:
On Mon, Mar 09, 2026 at 04:42:57PM +0530, Mohammad Rafi Shaik wrote:
Extend the qcom,q6apm-lpass-dais device tree binding to explicitly
describe Digital Audio Interface (DAI) child nodes.

Add #address-cells and #size-cells to allow representation of multiple
DAI instances as child nodes, and define a dai@<id> pattern to document
per-DAI properties such as the interface ID and associated clocks.

Qualcomm platforms like talos integrate third-party audio codecs or use
different external audio paths. These designs often require additional
configuration such as explicit MI2S MCLK settings for audio to work.

Co-developed-by: Srinivas Kandagatla <srinivas.kandagatla@xxxxxxxxxxxxxxxx>
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@xxxxxxxxxxxxxxxx>
Signed-off-by: Mohammad Rafi Shaik <mohammad.rafi.shaik@xxxxxxxxxxxxxxxx>
---
.../bindings/sound/qcom,q6apm-lpass-dais.yaml | 41 ++++++++++++++++++-
1 file changed, 40 insertions(+), 1 deletion(-)

diff --git a/Documentation/devicetree/bindings/sound/qcom,q6apm-lpass-dais.yaml b/Documentation/devicetree/bindings/sound/qcom,q6apm-lpass-dais.yaml
index 2fb95544d..1d770cbcb 100644
--- a/Documentation/devicetree/bindings/sound/qcom,q6apm-lpass-dais.yaml
+++ b/Documentation/devicetree/bindings/sound/qcom,q6apm-lpass-dais.yaml
@@ -21,6 +21,34 @@ properties:
'#sound-dai-cells':
const: 1
+ '#address-cells':
+ const: 1
+
+ '#size-cells':
+ const: 0
+
+# Digital Audio Interfaces
+patternProperties:
+ '^dai@[0-9]+$':
+ type: object
+ description:
+ Q6DSP Digital Audio Interfaces.
+
+ properties:
+ reg:
+ description:
+ Digital Audio Interface ID
+
+ clocks:
+ minItems: 1
+ maxItems: 3
+
+ clock-names:
+ minItems: 1
+ maxItems: 3

No, this is just way too generic. There is no such syntax in the kernel
and this should stop you right there. You are not allowed to add your
own style.

I don't think DAI is here a separate device needing its own resources
expressed in DT. This is still part of ADSP so you just described in DT
internal routing between two services on ADSP.


Thanks for reviewing.

I’d like to clarify that this is not intended to model the DAI as a separate physical device or to describe internal ADSP routing.

Requirement is to allow the kernel to send clock‑voting requests to the ADSP. LPASS MCLK routing is not enabled by default on the ADSP, so the kernel must explicitly request the ADSP to enable the relevant LPASS MCLKs, which is a real hardware control requirement.

These clocks are LPASS‑owned, and driving them via a third‑party codec is not appropriate. The intent of adding clock capabilities at the DAI level is to allow the kernel to associate LPASS clock votes with a specific DAI instance during stream activity.

While the DAI itself is not a physical device, some DT representation is required to describe per‑DAI LPASS clock requirements.

I’m open to considering alternative representations, but removing this entirely would leave no generic way for the kernel to handle correct LPASS MCLK voting.

+
+ additionalProperties: false
+
required:
- compatible
- '#sound-dai-cells'
@@ -29,7 +57,18 @@ unevaluatedProperties: false
examples:
- |
- dais {

Why?


I renamed the example node to bedais to mirror the node naming used in Actual DT (q6apmbedai: bedais { ... }).

However, I understand the binding does not require any specific node name; only the compatible and required properties/child nodes matter.

The rename was done purely to align the actual DT node naming used in practice and improve cross-referencing clarity.

+ #include <dt-bindings/sound/qcom,q6afe.h>
+
+ bedais {
compatible = "qcom,q6apm-lpass-dais";
#sound-dai-cells = <1>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ dai@16 {
+ reg = <PRIMARY_MI2S_RX>;
+ clocks = <&q6prmcc LPASS_CLK_ID_MCLK_1
+ LPASS_CLK_ATTRIBUTE_COUPLE_NO>;

So one entry, not three.


ACK,

I will add three clock entries for better clarity.


Best Regards,
Rafi.

+ clock-names = "mclk";
+ };
};
--
2.34.1