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

From: Krzysztof Kozlowski

Date: Sun Jul 12 2026 - 04:11:44 EST


On 12/07/2026 08:44, Mohammad Rafi Shaik wrote:
>
>
> On 7/11/2026 8:41 PM, Krzysztof Kozlowski wrote:
>> On Sat, Jul 11, 2026 at 06:27:38PM +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.
>>>
>>> On platforms such as Monaco and Lemans, third-party codecs are hardware
>>> wired to the SoC and do not always have an in-tree codec driver to manage
>>> their clocks. For these designs, clock line enablement must be driven
>>> from the platform side, and this series provides the necessary support
>>> for that.
>>>
>>> On QAIF-based platforms such as Shikra and Hawi, responsibility for voting
>>> I2S MCLK and BCLK has moved from the DSP to the kernel. This series
>>> introduces the required device tree binding support to represent and
>>> vote for these clocks from the kernel.
>>>
>>> Co-developed-by: Srinivas Kandagatla <srinivas.kandagatla@xxxxxxxxxxxxxxxx>
>>> Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@xxxxxxxxxxxxxxxx>
>>> Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxxxxxxxx>
>>
>> Drop my tag, you made a important change to ABI.
>>
>
> Ack
>
>>> Tested-by: Neil Armstrong <neil.armstrong@xxxxxxxxxx>
>>
>> Drop, you cannot test a binding (in the meaning of Tested-by tag).
>
> Ack, will drop Tested-by tag.
>
>>
>>> Signed-off-by: Mohammad Rafi Shaik <mohammad.rafi.shaik@xxxxxxxxxxxxxxxx>
>>> ---
>>> .../bindings/sound/qcom,q6apm-lpass-dais.yaml | 58 +++++++++++++++++++
>>> 1 file changed, 58 insertions(+)
>>>
>>> diff --git a/Documentation/devicetree/bindings/sound/qcom,q6apm-lpass-dais.yaml b/Documentation/devicetree/bindings/sound/qcom,q6apm-lpass-dais.yaml
>>> index 2fb95544db8b..f3a8b12d7fc8 100644
>>> --- a/Documentation/devicetree/bindings/sound/qcom,q6apm-lpass-dais.yaml
>>> +++ b/Documentation/devicetree/bindings/sound/qcom,q6apm-lpass-dais.yaml
>>> @@ -21,6 +21,49 @@ properties:
>>> '#sound-dai-cells':
>>> const: 1
>>>
>>> + '#address-cells':
>>> + const: 1
>>> +
>>> + '#size-cells':
>>> + const: 0
>>> +
>>> +# 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 master clock
>>> + - description: MI2S bit clock
>>> + - description: MI2S external bit clock
>>> +
>>> + clock-names:
>>> + minItems: 1
>>> + maxItems: 3
>>> + items:
>>> + enum:
>>
>> That wasn't here and that's also not correct, usually. Especially that
>> it does not fit your clocks property.
>>
>
> The reason for changing this to enum was that some hardware may expose
> only a single clock, which can be bclk or eclk instead of mclk. With the
> previous positional const definition, such configurations fail schema
> validation because the first entry is always expected to be mclk.
>

master clock feels like something should be present there always, but if
that is the case, then you need:
minItems: 1
items:
- enum: [ bclk, eclk ]
- const: eclk
- const: mclk

Best regards,
Krzysztof