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