Re: [PATCH 18/22] ASoC: dt-bindings: mt8195: Document audio-routing and dai-link subnode

From: Krzysztof Kozlowski
Date: Thu Feb 29 2024 - 03:25:58 EST


On 27/02/2024 13:09, AngeloGioacchino Del Regno wrote:
> Document the dai-link subnodes and the audio-routing property, allowing
> to describe machine specific audio hardware and links in device tree.
>
> While at it, also deprecate the old properties which were previously
> used with driver hardcoded configuration.
>
> Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@xxxxxxxxxxxxx>
> ---


>
> mediatek,adsp:
> $ref: /schemas/types.yaml#/definitions/phandle
> @@ -45,12 +56,75 @@ properties:
> A list of the desired dai-links in the sound card. Each entry is a
> name defined in the machine driver.
>
> +patternProperties:
> + ".*-dai-link$":
> + type: object
> + description:
> + Container for dai-link level properties and CODEC sub-nodes.
> +
> + properties:
> + link-name:
> + description: Indicates dai-link name and PCM stream name
> + items:

That's not a list, but just enum.

> + enum:
> + - DPTX_BE
> + - ETDM1_IN_BE
> + - ETDM2_IN_BE
> + - ETDM1_OUT_BE
> + - ETDM2_OUT_BE
> + - ETDM3_OUT_BE
> + - PCM1_BE
> +
> + codec:
> + description: Holds subnode which indicates codec dai.
> + type: object
> + additionalProperties: false
> + properties:
> + sound-dai:
> + minItems: 1
> + maxItems: 2
> + required:
> + - sound-dai
> +
> + dai-format:
> + description: audio format
> + items:

Ditto

> + enum:
> + - i2s
> + - right_j
> + - left_j
> + - dsp_a
> + - dsp_b
> +
> + mediatek,clk-provider:
> + $ref: /schemas/types.yaml#/definitions/string
> + description: Indicates dai-link clock master.
> + items:

Ditto

> + enum:
> + - cpu
> + - codec
> +
> + additionalProperties: false

This goes either to the top of the section (after type:object) for
readability or after required: block below.

> +
> + required:
> + - link-name
> +
> additionalProperties: false

>
> required:
> - compatible
> - mediatek,platform
>
> +# Disallow legacy properties if dai-link-xxx nodes are specified
> +if:
> + not:

I don't think this works. To test if node is present or node, you would
need to use required.
https://elixir.bootlin.com/linux/v6.4-rc7/source/Documentation/devicetree/bindings/net/qcom,ipa.yaml#L174

Are you sure this if:then: works as expected?


> + patternProperties:
> + ".*-dai-link$": false
> +then:
> + properties:
> + mediatek,dptx-codec: false
> + mediatek,hdmi-codec: false
> +
> examples:
> - |
>


Best regards,
Krzysztof