diff mbox series

ASoC: dt-bindings: Centralize the 'sound-dai' definition

Message ID 20220126231427.1638089-1-robh@kernel.org
State Accepted
Commit 97709d365bbd68056ace43ef47ad8aaf40f44855
Headers show
Series ASoC: dt-bindings: Centralize the 'sound-dai' definition | expand

Commit Message

Rob Herring (Arm) Jan. 26, 2022, 11:14 p.m. UTC
'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@canonical.com>
Signed-off-by: Rob Herring <robh@kernel.org>
---
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

Comments

Krzysztof Kozlowski Jan. 27, 2022, 7:28 a.m. UTC | #1
On 27/01/2022 00:14, Rob Herring 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@canonical.com>
> Signed-off-by: Rob Herring <robh@kernel.org>
> ---
> 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
> 


Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>


Best regards,
Krzysztof
Jerome Brunet Jan. 27, 2022, 9 a.m. UTC | #2
On Wed 26 Jan 2022 at 17:14, Rob Herring <robh@kernel.org> 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@canonical.com>
> Signed-off-by: Rob Herring <robh@kernel.org>
> ---
> 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@kernel.org>
> +
> +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
> +...
Rob Herring (Arm) Jan. 27, 2022, 2:35 p.m. UTC | #3
On Thu, Jan 27, 2022 at 3:05 AM Jerome Brunet <jbrunet@baylibre.com> wrote:
>
>
> On Wed 26 Jan 2022 at 17:14, Rob Herring <robh@kernel.org> 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@canonical.com>
> > Signed-off-by: Rob Herring <robh@kernel.org>
> > ---
> > 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

What do you mean? Every 'sound-dai' there only has 1 phande+args. Each
codec is a child node.

Rob
Mark Brown Jan. 28, 2022, 1:06 p.m. UTC | #4
On Wed, Jan 26, 2022 at 05:14:27PM -0600, Rob Herring 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.

Acked-by: Mark Brown <broonie@kernel.org>
diff mbox series

Patch

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
             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@kernel.org>
+
+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
+...