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

From: Mohammad Rafi Shaik

Date: Tue Jul 21 2026 - 05:31:06 EST




On 7/21/2026 2:16 PM, Krzysztof Kozlowski wrote:
On 21/07/2026 10:42, Mohammad Rafi Shaik wrote:


On 7/21/2026 1:50 PM, Krzysztof Kozlowski wrote:
On 21/07/2026 10:14, Mohammad Rafi Shaik wrote:


On 7/21/2026 12:18 PM, Krzysztof Kozlowski wrote:
On Mon, Jul 20, 2026 at 09:32:24PM +0530, Mohammad Rafi Shaik wrote:
+# Digital Audio Interfaces
+patternProperties:
+ '^dai@[0-9a-f]+$':
+ type: object
+ description:
+ Q6DSP Digital Audio Interfaces.
+
+ properties:
+ reg:
+ maxItems: 1
+ description:
+ Digital Audio Interface ID
+
+ clocks:
+ minItems: 1
+ items:
+ - description: MI2S bit clock
+ - description: MI2S external bit clock
+ - description: MI2S master clock
+
+ clock-names:
+ minItems: 1
+ items:
+ - enum: [bclk, eclk, mclk]
+ - const: mclk

This does not match your clocks.


will fix this.

clocks descriptions are misleading because they imply an
ordered bclk + eclk configuration. I'll drop those descriptions.

will keep only

clocks:
minItems: 1
maxItems: 2

I gave you exact syntax to use, then in previous version you used
something else. So I reminded. Again you used something else.

If you decide not to use it, sure, your right but YOU CANNOT come with
clearly invalid code as a substitute.

NAK

Suggested change:
https://lore.kernel.org/all/2b4448d0-81f8-410f-b849-0d957a2d2a17@xxxxxxxxxx/#t
minItems: 1
items:
- enum: [ bclk, eclk ]
- const: eclk
- const: mclk

I tested the suggested schema, but it results in DT binding check failures.

DT binding check errors with the suggested change
1. Only mclk enabled
bedais: dai@10:clock-names:0: 'mclk' is not one of ['bclk', 'eclk']

2. bclk and mclk enabled
bedais:dai@10:clock-names:1: 'eclk' was expected


With the current version of this patch, I do not see any DT binding
check issues. I tested all supported clock combinations, and
dt_binding_check passes successfully in each case.

Your clocks told story that you have up to three clocks, so indeed if
you do not have three clocks then my syntax is not accurate.

Before we go further, where is upstream DTS using this?

Currently, the Shikra DTS changes already present on the mailing list
include this patch as a dependency:
https://lore.kernel.org/all/20260616201315.2565115-7-mohammad.rafi.shaik@xxxxxxxxxxxxxxxx/

+&q6apmbedai {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ dai@40 {
+ reg = <SECONDARY_TDM_RX_0>;
+ clocks = <&q6prmcc LPASS_CLK_ID_AUD_INTF2_IBIT
+ LPASS_CLK_ATTRIBUTE_COUPLE_NO>;
+ clock-names = "bclk";
+ };
+};


RubikPi3 DTS patch series uses both mclk and bclk:
https://lore.kernel.org/all/20260715-rubikpi-next-20260605-v2-6-67601d7a8581@xxxxxxxxxxxxxxx/


Thanks, I did not see "eclk" used.


Yes, you're right. We have not used eclk in any upstream DTS so far since no such board using this.

include/dt-bindings/sound/qcom,q6dsp-lpass-ports.h#L156
#define LPASS_CLK_ID_PRI_MI2S_IBIT 1 (bclk)
#define LPASS_CLK_ID_PRI_MI2S_EBIT 2 (eclk)

My mistake—I understand it now. Both represent bit clocks; one is an internal bit clock (IBIT) and the other is an external bit clock (EBIT).

Since they are functionally the same clock type, we can use a single clock name (bclk) for both cases. At this point, only mclk and bclk are required, so there is no need to introduce a separate eclk clock name.

Sorry for the confusion earlier, i understood wrongly.

so can we keep like below syntex.

clocks:
minItems: 1
maxItems: 2

clock-names:
minItems: 1
items:
- enum: [bclk, mclk]
- const: mclk

This allows:
bclk
mclk
bclk, mclk

Thanks & regards,
Rafi.

Best regards,
Krzysztof