On Wed 26 Jan 2022 at 17:14, Rob Herring <robh@xxxxxxxxxx> wrote: > 'sound-dai' is a common property, but has duplicate type definitions. > Create a new common definition to define the type and then update all > the other occurrences to just define how many entries there are just > like other phandle+arg properties. > > The constraints on the number of entries is based on the examples and > could be wrong. > > Cc: Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxxxxx> > Signed-off-by: Rob Herring <robh@xxxxxxxxxx> > --- > Please ack, this depends on commit abf0fee97313 ("dt-bindings: Improve > phandle-array schemas") in my tree. > --- > .../bindings/sound/amlogic,gx-sound-card.yaml | 4 ++-- > .../bindings/sound/google,sc7180-trogdor.yaml | 6 ++++-- > .../bindings/sound/imx-audio-card.yaml | 7 +++++-- > .../bindings/sound/qcom,sm8250.yaml | 10 +++++++--- > .../bindings/sound/samsung,aries-wm8994.yaml | 5 +---- > .../bindings/sound/samsung,midas-audio.yaml | 2 -- > .../bindings/sound/samsung,odroid.yaml | 9 +++------ > .../devicetree/bindings/sound/sound-dai.yaml | 20 +++++++++++++++++++ > 8 files changed, 42 insertions(+), 21 deletions(-) > create mode 100644 Documentation/devicetree/bindings/sound/sound-dai.yaml > > diff --git a/Documentation/devicetree/bindings/sound/amlogic,gx-sound-card.yaml b/Documentation/devicetree/bindings/sound/amlogic,gx-sound-card.yaml > index 2e35aeaa8781..8b5be4b92f35 100644 > --- a/Documentation/devicetree/bindings/sound/amlogic,gx-sound-card.yaml > +++ b/Documentation/devicetree/bindings/sound/amlogic,gx-sound-card.yaml > @@ -57,7 +57,7 @@ patternProperties: > rate > > sound-dai: > - $ref: /schemas/types.yaml#/definitions/phandle-array > + maxItems: 1 > description: phandle of the CPU DAI > > patternProperties: > @@ -71,7 +71,7 @@ patternProperties: > > properties: > sound-dai: > - $ref: /schemas/types.yaml#/definitions/phandle-array > + maxItems: 1 No min or max here. Links may have more than one codec. Ex: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc.dts#n158 > description: phandle of the codec DAI > > required: > diff --git a/Documentation/devicetree/bindings/sound/google,sc7180-trogdor.yaml b/Documentation/devicetree/bindings/sound/google,sc7180-trogdor.yaml > index 837e3faa63a9..233caa0ade87 100644 > --- a/Documentation/devicetree/bindings/sound/google,sc7180-trogdor.yaml > +++ b/Documentation/devicetree/bindings/sound/google,sc7180-trogdor.yaml > @@ -62,13 +62,15 @@ patternProperties: > description: Holds subnode which indicates cpu dai. > type: object > properties: > - sound-dai: true > + sound-dai: > + maxItems: 1 > > codec: > description: Holds subnode which indicates codec dai. > type: object > properties: > - sound-dai: true > + sound-dai: > + maxItems: 1 > > required: > - link-name > diff --git a/Documentation/devicetree/bindings/sound/imx-audio-card.yaml b/Documentation/devicetree/bindings/sound/imx-audio-card.yaml > index d1816dd061cf..bb3a435722c7 100644 > --- a/Documentation/devicetree/bindings/sound/imx-audio-card.yaml > +++ b/Documentation/devicetree/bindings/sound/imx-audio-card.yaml > @@ -59,13 +59,16 @@ patternProperties: > description: Holds subnode which indicates cpu dai. > type: object > properties: > - sound-dai: true > + sound-dai: > + maxItems: 1 > > codec: > description: Holds subnode which indicates codec dai. > type: object > properties: > - sound-dai: true > + sound-dai: > + minItems: 1 > + maxItems: 2 > > fsl,mclk-equal-bclk: > description: Indicates mclk can be equal to bclk, especially for sai interface > diff --git a/Documentation/devicetree/bindings/sound/qcom,sm8250.yaml b/Documentation/devicetree/bindings/sound/qcom,sm8250.yaml > index 4bfda04b4608..4ecd4080bb96 100644 > --- a/Documentation/devicetree/bindings/sound/qcom,sm8250.yaml > +++ b/Documentation/devicetree/bindings/sound/qcom,sm8250.yaml > @@ -69,19 +69,23 @@ patternProperties: > description: Holds subnode which indicates cpu dai. > type: object > properties: > - sound-dai: true > + sound-dai: > + maxItems: 1 > > platform: > description: Holds subnode which indicates platform dai. > type: object > properties: > - sound-dai: true > + sound-dai: > + maxItems: 1 > > codec: > description: Holds subnode which indicates codec dai. > type: object > properties: > - sound-dai: true > + sound-dai: > + minItems: 1 > + maxItems: 4 > > required: > - link-name > diff --git a/Documentation/devicetree/bindings/sound/samsung,aries-wm8994.yaml b/Documentation/devicetree/bindings/sound/samsung,aries-wm8994.yaml > index eb487ed3ca3b..4ffa275b3c49 100644 > --- a/Documentation/devicetree/bindings/sound/samsung,aries-wm8994.yaml > +++ b/Documentation/devicetree/bindings/sound/samsung,aries-wm8994.yaml > @@ -27,9 +27,6 @@ properties: > sound-dai: > minItems: 2 > maxItems: 2 > - items: > - maxItems: 1 > - $ref: /schemas/types.yaml#/definitions/phandle-array > description: | > phandles to the I2S controller and bluetooth codec, > in that order > @@ -38,7 +35,7 @@ properties: > type: object > properties: > sound-dai: > - $ref: /schemas/types.yaml#/definitions/phandle-array > + maxItems: 1 > description: phandle to the WM8994 CODEC > > samsung,audio-routing: > diff --git a/Documentation/devicetree/bindings/sound/samsung,midas-audio.yaml b/Documentation/devicetree/bindings/sound/samsung,midas-audio.yaml > index 095775c598fa..ec50bcb4af5f 100644 > --- a/Documentation/devicetree/bindings/sound/samsung,midas-audio.yaml > +++ b/Documentation/devicetree/bindings/sound/samsung,midas-audio.yaml > @@ -21,7 +21,6 @@ properties: > type: object > properties: > sound-dai: > - $ref: /schemas/types.yaml#/definitions/phandle-array > maxItems: 1 > description: phandle to the I2S controller > required: > @@ -31,7 +30,6 @@ properties: > type: object > properties: > sound-dai: > - $ref: /schemas/types.yaml#/definitions/phandle-array > maxItems: 1 > description: phandle to the WM1811 CODEC > required: > diff --git a/Documentation/devicetree/bindings/sound/samsung,odroid.yaml b/Documentation/devicetree/bindings/sound/samsung,odroid.yaml > index e8122bc87362..db2513f3e168 100644 > --- a/Documentation/devicetree/bindings/sound/samsung,odroid.yaml > +++ b/Documentation/devicetree/bindings/sound/samsung,odroid.yaml > @@ -37,18 +37,15 @@ properties: > type: object > properties: > sound-dai: > - $ref: /schemas/types.yaml#/definitions/phandle-array > description: phandles to the I2S controllers > > codec: > type: object > properties: > sound-dai: > - $ref: /schemas/types.yaml#/definitions/phandle-array > - description: | > - List of phandles to the CODEC nodes, > - first entry must be corresponding to the MAX98090 CODEC and > - the second entry must be the phandle of the HDMI IP block node. > + items: > + - description: phandle of the MAX98090 CODEC > + - description: phandle of the HDMI IP block node > > samsung,audio-routing: > $ref: /schemas/types.yaml#/definitions/non-unique-string-array > diff --git a/Documentation/devicetree/bindings/sound/sound-dai.yaml b/Documentation/devicetree/bindings/sound/sound-dai.yaml > new file mode 100644 > index 000000000000..61c6f7abc4e7 > --- /dev/null > +++ b/Documentation/devicetree/bindings/sound/sound-dai.yaml > @@ -0,0 +1,20 @@ > +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/sound/sound-dai.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Digital Audio Interface consumer Device Tree Bindings > + > +maintainers: > + - Rob Herring <robh@xxxxxxxxxx> > + > +select: true > + > +properties: > + sound-dai: > + $ref: /schemas/types.yaml#/definitions/phandle-array > + description: A phandle plus args to digital audio interface provider(s) > + > +additionalProperties: true > +...