mbox series

[0/9] ASoC: dt-bindings: meson: covert axg audio to schema

Message ID 20230202183653.486216-1-jbrunet@baylibre.com
Headers show
Series ASoC: dt-bindings: meson: covert axg audio to schema | expand

Message

Jerome Brunet Feb. 2, 2023, 6:36 p.m. UTC
Convert AXG audio dt-binding documentation to schema

Jerome Brunet (9):
  ASoC: dt-bindings: create component common schema
  ASoC: dt-bindings: meson: fix gx-card codec node regex
  ASoC: dt-bindings: meson: convert axg tdm interface to schema
  ASoC: dt-bindings: meson: convert axg tdm formatters to schema
  ASoC: dt-bindings: meson: convert axg pdm to schema
  ASoC: dt-bindings: meson: convert axg fifo to schema
  ASoC: dt-bindings: meson: convert axg spdif input to schema
  ASoC: dt-bindings: meson: convert axg spdif output to schema
  ASoC: dt-bindings: meson: convert axg sound card control to schema

 .../bindings/sound/amlogic,axg-fifo.txt       |  34 ----
 .../bindings/sound/amlogic,axg-fifo.yaml      | 116 +++++++++++
 .../bindings/sound/amlogic,axg-pdm.txt        |  29 ---
 .../bindings/sound/amlogic,axg-pdm.yaml       |  86 +++++++++
 .../bindings/sound/amlogic,axg-sound-card.txt | 124 ------------
 .../sound/amlogic,axg-sound-card.yaml         | 182 ++++++++++++++++++
 .../bindings/sound/amlogic,axg-spdifin.txt    |  27 ---
 .../bindings/sound/amlogic,axg-spdifin.yaml   |  90 +++++++++
 .../bindings/sound/amlogic,axg-spdifout.txt   |  25 ---
 .../bindings/sound/amlogic,axg-spdifout.yaml  |  83 ++++++++
 .../sound/amlogic,axg-tdm-formatters.txt      |  36 ----
 .../sound/amlogic,axg-tdm-formatters.yaml     |  90 +++++++++
 .../bindings/sound/amlogic,axg-tdm-iface.txt  |  22 ---
 .../bindings/sound/amlogic,axg-tdm-iface.yaml |  59 ++++++
 .../bindings/sound/amlogic,gx-sound-card.yaml |   2 +-
 .../bindings/sound/component-common.yaml      |  21 ++
 .../devicetree/bindings/sound/dai-common.yaml |  11 +-
 17 files changed, 731 insertions(+), 306 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/sound/amlogic,axg-fifo.txt
 create mode 100644 Documentation/devicetree/bindings/sound/amlogic,axg-fifo.yaml
 delete mode 100644 Documentation/devicetree/bindings/sound/amlogic,axg-pdm.txt
 create mode 100644 Documentation/devicetree/bindings/sound/amlogic,axg-pdm.yaml
 delete mode 100644 Documentation/devicetree/bindings/sound/amlogic,axg-sound-card.txt
 create mode 100644 Documentation/devicetree/bindings/sound/amlogic,axg-sound-card.yaml
 delete mode 100644 Documentation/devicetree/bindings/sound/amlogic,axg-spdifin.txt
 create mode 100644 Documentation/devicetree/bindings/sound/amlogic,axg-spdifin.yaml
 delete mode 100644 Documentation/devicetree/bindings/sound/amlogic,axg-spdifout.txt
 create mode 100644 Documentation/devicetree/bindings/sound/amlogic,axg-spdifout.yaml
 delete mode 100644 Documentation/devicetree/bindings/sound/amlogic,axg-tdm-formatters.txt
 create mode 100644 Documentation/devicetree/bindings/sound/amlogic,axg-tdm-formatters.yaml
 delete mode 100644 Documentation/devicetree/bindings/sound/amlogic,axg-tdm-iface.txt
 create mode 100644 Documentation/devicetree/bindings/sound/amlogic,axg-tdm-iface.yaml
 create mode 100644 Documentation/devicetree/bindings/sound/component-common.yaml

Comments

Krzysztof Kozlowski Feb. 3, 2023, 7:42 a.m. UTC | #1
On 02/02/2023 19:36, Jerome Brunet wrote:
> Convert the DT binding documentation for the Amlogic tdm interface to
> schema.
> 
> Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>


> +title: Amlogic Audio TDM Interfaces
> +
> +maintainers:
> +  - Jerome Brunet <jbrunet@baylibre.com>
> +
> +allOf:
> +  - $ref: dai-common.yaml#
> +
> +properties:
> +  $nodename:
> +    pattern: "^audio-controller-.*"

Such pattern is also not correct (see your patch #2), but so far we do
not require node naming from individual schemas, so I propose just to
drop it.

> +
> +  compatible:
> +    items:

Drop items

> +      - const: 'amlogic,axg-tdm-iface'

Drop quotes

> +
> +  "#sound-dai-cells":
> +    const: 0
> +
> +  clocks:
> +    minItems: 2
> +    items:
> +      - description: Bit clock
> +      - description: Sample clock
> +      - description: Master clock #optional
> +
> +  clock-names:
> +    minItems: 2
> +    items:
> +      - const: sclk
> +      - const: lrclk
> +      - const: mclk
> +
> +required:
> +  - compatible
> +  - "#sound-dai-cells"
> +  - clocks
> +  - clock-names
> +
> +unevaluatedProperties: false
> +
> +examples:
> +  - |
> +    #include <dt-bindings/clock/axg-audio-clkc.h>
> +
> +    tdmif_a: audio-controller-0 {

audio-controller (and drop the label)

> +        compatible = "amlogic,axg-tdm-iface";
> +        #sound-dai-cells = <0>;
> +        clocks = <&clkc_audio AUD_CLKID_MST_A_SCLK>,
> +                 <&clkc_audio AUD_CLKID_MST_A_LRCLK>,
> +                 <&clkc_audio AUD_CLKID_MST_A_MCLK>;
> +        clock-names = "sclk", "lrclk", "mclk";
> +    };

Best regards,
Krzysztof
Jerome Brunet Feb. 3, 2023, 2:13 p.m. UTC | #2
On Fri 03 Feb 2023 at 09:09, Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> wrote:

> On 02/02/2023 19:36, Jerome Brunet wrote:
>> Convert the DT binding documentation for the Amlogic axg sound card to
>> schema.
>> 
>> Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
>> ---
>>  .../bindings/sound/amlogic,axg-sound-card.txt | 124 ------------
>>  .../sound/amlogic,axg-sound-card.yaml         | 182 ++++++++++++++++++
>>  2 files changed, 182 insertions(+), 124 deletions(-)
>>  delete mode 100644 Documentation/devicetree/bindings/sound/amlogic,axg-sound-card.txt
>>  create mode 100644 Documentation/devicetree/bindings/sound/amlogic,axg-sound-card.yaml
>> 
>> diff --git a/Documentation/devicetree/bindings/sound/amlogic,axg-sound-card.txt b/Documentation/devicetree/bindings/sound/amlogic,axg-sound-card.txt
>> deleted file mode 100644
>> index 80b411296480..000000000000
>> --- a/Documentation/devicetree/bindings/sound/amlogic,axg-sound-card.txt
>> +++ /dev/null
>> @@ -1,124 +0,0 @@
>> -Amlogic AXG sound card:
>> -
>> -Required properties:
>> -
>> -- compatible: "amlogic,axg-sound-card"
>> -- model : User specified audio sound card name, one string
>> -
>> -Optional properties:
>> -
>> -- audio-aux-devs : List of phandles pointing to auxiliary devices
>> -- audio-widgets : Please refer to widgets.txt.
>> -- audio-routing : A list of the connections between audio components.
>> -
>> -Subnodes:
>> -
>> -- dai-link: Container for dai-link level properties and the CODEC
>> -	    sub-nodes. There should be at least one (and probably more)
>> -	    subnode of this type.
>> -
>> -Required dai-link properties:
>> -
>> -- sound-dai: phandle and port of the CPU DAI.
>> -
>> -Required TDM Backend dai-link properties:
>> -- dai-format : CPU/CODEC common audio format
>> -
>> -Optional TDM Backend dai-link properties:
>> -- dai-tdm-slot-rx-mask-{0,1,2,3}: Receive direction slot masks
>> -- dai-tdm-slot-tx-mask-{0,1,2,3}: Transmit direction slot masks
>> -				  When omitted, mask is assumed to have to no
>> -				  slots. A valid must have at one slot, so at
>> -				  least one these mask should be provided with
>> -				  an enabled slot.
>> -- dai-tdm-slot-num : Please refer to tdm-slot.txt.
>> -		     If omitted, slot number is set to accommodate the largest
>> -		     mask provided.
>> -- dai-tdm-slot-width : Please refer to tdm-slot.txt. default to 32 if omitted.
>> -- mclk-fs : Multiplication factor between stream rate and mclk
>> -
>> -Backend dai-link subnodes:
>> -
>> -- codec: dai-link representing backend links should have at least one subnode.
>> -	 One subnode for each codec of the dai-link.
>> -	 dai-link representing frontend links have no codec, therefore have no
>> -	 subnodes
>> -
>> -Required codec subnodes properties:
>> -
>> -- sound-dai: phandle and port of the CODEC DAI.
>> -
>> -Optional codec subnodes properties:
>> -
>> -- dai-tdm-slot-tx-mask : Please refer to tdm-slot.txt.
>> -- dai-tdm-slot-rx-mask : Please refer to tdm-slot.txt.
>> -
>> -Example:
>> -
>> -sound {
>> -	compatible = "amlogic,axg-sound-card";
>> -	model = "AXG-S420";
>> -	audio-aux-devs = <&tdmin_a>, <&tdmout_c>;
>> -	audio-widgets = "Line", "Lineout",
>> -			"Line", "Linein",
>> -			"Speaker", "Speaker1 Left",
>> -			"Speaker", "Speaker1 Right";
>> -			"Speaker", "Speaker2 Left",
>> -			"Speaker", "Speaker2 Right";
>> -	audio-routing = "TDMOUT_C IN 0", "FRDDR_A OUT 2",
>> -			"SPDIFOUT IN 0", "FRDDR_A OUT 3",
>> -			"TDM_C Playback", "TDMOUT_C OUT",
>> -			"TDMIN_A IN 2", "TDM_C Capture",
>> -			"TDMIN_A IN 5", "TDM_C Loopback",
>> -			"TODDR_A IN 0", "TDMIN_A OUT",
>> -			"Lineout", "Lineout AOUTL",
>> -			"Lineout", "Lineout AOUTR",
>> -			"Speaker1 Left", "SPK1 OUT_A",
>> -			"Speaker2 Left", "SPK2 OUT_A",
>> -			"Speaker1 Right", "SPK1 OUT_B",
>> -			"Speaker2 Right", "SPK2 OUT_B",
>> -			"Linein AINL", "Linein",
>> -			"Linein AINR", "Linein";
>> -
>> -	dai-link@0 {
>> -		sound-dai = <&frddr_a>;
>> -	};
>> -
>> -	dai-link@1 {
>> -		sound-dai = <&toddr_a>;
>> -	};
>> -
>> -	dai-link@2 {
>> -		sound-dai = <&tdmif_c>;
>> -		dai-format = "i2s";
>> -		dai-tdm-slot-tx-mask-2 = <1 1>;
>> -		dai-tdm-slot-tx-mask-3 = <1 1>;
>> -		dai-tdm-slot-rx-mask-1 = <1 1>;
>> -		mclk-fs = <256>;
>> -
>> -		codec@0 {
>> -			sound-dai = <&lineout>;
>> -		};
>> -
>> -		codec@1 {
>> -			sound-dai = <&speaker_amp1>;
>> -		};
>> -
>> -		codec@2 {
>> -			sound-dai = <&speaker_amp2>;
>> -		};
>> -
>> -		codec@3 {
>> -			sound-dai = <&linein>;
>> -		};
>> -
>> -	};
>> -
>> -	dai-link@3 {
>> -		sound-dai = <&spdifout>;
>> -
>> -		codec {
>> -			sound-dai = <&spdif_dit>;
>> -		};
>> -	};
>> -};
>> diff --git a/Documentation/devicetree/bindings/sound/amlogic,axg-sound-card.yaml b/Documentation/devicetree/bindings/sound/amlogic,axg-sound-card.yaml
>> new file mode 100644
>> index 000000000000..185cd9fbeda1
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/sound/amlogic,axg-sound-card.yaml
>> @@ -0,0 +1,182 @@
>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
>> +%YAML 1.2
>> +---
>> +$id: http://devicetree.org/schemas/sound/amlogic,axg-sound-card.yaml#
>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>> +
>> +title: Amlogic AXG sound card
>> +
>> +maintainers:
>> +  - Jerome Brunet <jbrunet@baylibre.com>
>> +
>> +properties:
>> +  compatible:
>> +    items:
>
> Drop
>
>> +      - const: amlogic,axg-sound-card
>
> And here you can keep such code in one line?
>
>> +
>> +  audio-aux-devs:
>> +    $ref: /schemas/types.yaml#/definitions/phandle-array
>> +    description: list of auxiliary devices
>
> min/maxItems

Auxiliary devices are not mandatory and there is no limit on how many a
sound card may have. Any number of item is valid.

>
>> +
>> +  audio-routing:
>> +    $ref: /schemas/types.yaml#/definitions/non-unique-string-array
>> +    description: |-
>> +      A list of the connections between audio components. Each entry is a
>> +      pair of strings, the first being the connection's sink, the second
>> +      being the connection's source.
>> +
>> +  audio-widgets:
>> +    $ref: /schemas/types.yaml#/definitions/non-unique-string-array
>> +    description: |-
>> +      A list off component DAPM widget. Each entry is a pair of strings,
>> +      the first being the widget type, the second being the widget name
>> +
>> +  model:
>> +    $ref: /schemas/types.yaml#/definitions/string
>> +    description: User specified audio sound card name
>> +
>> +patternProperties:
>> +  "^dai-link-[0-9]+$":
>> +    type: object
>> +    additionalProperties: false
>> +    description: |-
>
> Drop |-
>
>> +      dai-link child nodes:
>
> Drop, this is not a property list.
>
>> +        Container for dai-link level properties and the CODEC sub-nodes.
>> +        There should be at least one (and probably more) subnode of this type
>> +
>> +    properties:
>> +      dai-format:
>> +        $ref: /schemas/types.yaml#/definitions/string
>> +        enum: [ i2s, left-j, dsp_a ]
>> +
>> +      dai-tdm-slot-num:
>> +        $ref: /schemas/types.yaml#/definitions/uint32
>> +        description: |
>> +          Number of slots in use. If omitted, slot number is set to
>> +          accommodate the largest mask provided.
>> +        maximum: 32
>> +
>> +      dai-tdm-slot-width:
>> +        $ref: /schemas/types.yaml#/definitions/uint32
>> +        description: Width in bits for each slot
>> +        enum: [ 8, 16, 20, 24, 32 ]
>> +        default: 32
>> +
>> +      mclk-fs:
>> +        $ref: /schemas/types.yaml#/definitions/uint32
>> +        description: |-
>
> Drop |-
> Drop it everywhere where not needed
>
>> +          Multiplication factor between the frame rate and master clock
>> +          rate
>> +
>> +      sound-dai:
>> +        $ref: /schemas/types.yaml#/definitions/phandle-array
>
> Old binding was saying it is just phandle

It is just a phandle but the bindings used to have problem with phandle
that had cells.

See:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/Documentation/devicetree/bindings/sound/amlogic,gx-sound-card.yaml?h=v6.2-rc6&id=d031d99b02eaf7363c33f5b27b38086cc8104082

Was it wrong or did the situation change since then ?

>
>> +        description: phandle of the CPU DAI
>> +
>> +    patternProperties:
>> +      "^dai-tdm-slot-(t|r)x-mask-[0-3]$":
>> +        $ref: /schemas/types.yaml#/definitions/uint32-array
>> +        description: |-
>
> Drop |-
>
>> +          Transmit and receive cpu slot masks of each TDM lane
>> +          When omitted, mask is assumed to have to no slots. A valid
>> +          interface must have at least one slot, so at least one these
>> +          mask should be provided with an enabled slot.
>> +
>> +      "^codec(-[0-9]+)?$":
>> +        type: object
>> +        additionalProperties: false
>> +        description: |-
>> +          dai-link representing backend links should have at least one subnode.
>> +          One subnode for each codec of the dai-link. dai-link representing
>> +          frontend links have no codec, therefore have no subnodes
>> +
>> +        properties:
>> +          sound-dai:
>> +            $ref: /schemas/types.yaml#/definitions/phandle-array
>
> phandle
>
>> +            description: phandle of the codec DAI
>> +
>> +        patternProperties:
>> +          "^dai-tdm-slot-(t|r)x-mask$":
>> +            $ref: /schemas/types.yaml#/definitions/uint32-array
>> +            description: Transmit and receive codec slot masks
>
> Are you sure codec has dai-tdm-slot-....?

Yes. Both CPU and and codecs have slots.

A classic case is a CPU with 2 codecs attached
Codec #0 plays slots 0,1
Codec #1 plays slots 2,3

CPU tx slots is       <1, 1, 1, 1>
Codec #0 rx slots is  <1, 1, 0, 0>
Codec #1 rx slots is  <0, 0, 1, 1>

>
>> +
>> +        required:
>> +          - sound-dai
>> +
>> +    required:
>> +      - sound-dai
>> +
>> +required:
>> +  - model
>> +  - dai-link-0
>> +
>> +unevaluatedProperties: false
>> +
>> +examples:
>> +  - |
>> +    sound {
>> +        compatible = "amlogic,axg-sound-card";
>> +        model = "AXG-S420";
>> +        audio-aux-devs = <&tdmin_a>, <&tdmout_c>;
>> +        audio-widgets = "Line", "Lineout",
>> +                        "Line", "Linein",
>> +                        "Speaker", "Speaker1 Left",
>> +                        "Speaker", "Speaker1 Right",
>> +                        "Speaker", "Speaker2 Left",
>> +                        "Speaker", "Speaker2 Right";
>> +        audio-routing = "TDMOUT_C IN 0", "FRDDR_A OUT 2",
>> +                        "SPDIFOUT IN 0", "FRDDR_A OUT 3",
>> +                        "TDM_C Playback", "TDMOUT_C OUT",
>> +                        "TDMIN_A IN 2", "TDM_C Capture",
>> +                        "TDMIN_A IN 5", "TDM_C Loopback",
>> +                        "TODDR_A IN 0", "TDMIN_A OUT",
>> +                        "Lineout", "Lineout AOUTL",
>> +                        "Lineout", "Lineout AOUTR",
>> +                        "Speaker1 Left", "SPK1 OUT_A",
>> +                        "Speaker2 Left", "SPK2 OUT_A",
>> +                        "Speaker1 Right", "SPK1 OUT_B",
>> +                        "Speaker2 Right", "SPK2 OUT_B",
>> +                        "Linein AINL", "Linein",
>> +                        "Linein AINR", "Linein";
>> +
>> +        dai-link-0 {
>> +               sound-dai = <&frddr_a>;
>
> Use 4 spaces for example indentation.
>
>> +        };
>> +
>> +        dai-link-1 {
>> +               sound-dai = <&toddr_a>;
>> +        };
>
> Best regards,
> Krzysztof
Mark Brown Feb. 3, 2023, 2:56 p.m. UTC | #3
On Thu, 02 Feb 2023 19:36:44 +0100, Jerome Brunet wrote:
> Convert AXG audio dt-binding documentation to schema
> 
> Jerome Brunet (9):
>   ASoC: dt-bindings: create component common schema
>   ASoC: dt-bindings: meson: fix gx-card codec node regex
>   ASoC: dt-bindings: meson: convert axg tdm interface to schema
>   ASoC: dt-bindings: meson: convert axg tdm formatters to schema
>   ASoC: dt-bindings: meson: convert axg pdm to schema
>   ASoC: dt-bindings: meson: convert axg fifo to schema
>   ASoC: dt-bindings: meson: convert axg spdif input to schema
>   ASoC: dt-bindings: meson: convert axg spdif output to schema
>   ASoC: dt-bindings: meson: convert axg sound card control to schema
> 
> [...]

Applied to

   https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next

Thanks!

[1/9] ASoC: dt-bindings: create component common schema
      commit: e398bbb9834a2f6cbe27cbd72956159ecc92055f
[2/9] ASoC: dt-bindings: meson: fix gx-card codec node regex
      commit: 480b26226873c88e482575ceb0d0a38d76e1be57

All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.

You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying
to this mail.

Thanks,
Mark
Krzysztof Kozlowski Feb. 3, 2023, 5:59 p.m. UTC | #4
On 03/02/2023 15:13, Jerome Brunet wrote:
>>> +          Multiplication factor between the frame rate and master clock
>>> +          rate
>>> +
>>> +      sound-dai:
>>> +        $ref: /schemas/types.yaml#/definitions/phandle-array
>>
>> Old binding was saying it is just phandle
> 
> It is just a phandle but the bindings used to have problem with phandle
> that had cells.
> 
> See:
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/Documentation/devicetree/bindings/sound/amlogic,gx-sound-card.yaml?h=v6.2-rc6&id=d031d99b02eaf7363c33f5b27b38086cc8104082
> 
> Was it wrong or did the situation change since then ?

Then define it as having cells:

https://elixir.bootlin.com/linux/v5.18-rc1/source/Documentation/devicetree/bindings/soc/samsung/exynos-usi.yaml#L42


Best regards,
Krzysztof
Jerome Brunet Feb. 3, 2023, 7:34 p.m. UTC | #5
On Fri 03 Feb 2023 at 18:59, Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> wrote:

> On 03/02/2023 15:13, Jerome Brunet wrote:
>>>> +          Multiplication factor between the frame rate and master clock
>>>> +          rate
>>>> +
>>>> +      sound-dai:
>>>> +        $ref: /schemas/types.yaml#/definitions/phandle-array
>>>
>>> Old binding was saying it is just phandle
>> 
>> It is just a phandle but the bindings used to have problem with phandle
>> that had cells.
>> 
>> See:
>> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/Documentation/devicetree/bindings/sound/amlogic,gx-sound-card.yaml?h=v6.2-rc6&id=d031d99b02eaf7363c33f5b27b38086cc8104082
>> 
>> Was it wrong or did the situation change since then ?
>
> Then define it as having cells:
>
> https://elixir.bootlin.com/linux/v5.18-rc1/source/Documentation/devicetree/bindings/soc/samsung/exynos-usi.yaml#L42
>

The card is provided with the phandle.
Whether or not the phandle has cells or not has nothing do with card
driver. The card just consums sound-dai. I don't understand this comment.

>
> Best regards,
> Krzysztof
Krzysztof Kozlowski Feb. 3, 2023, 8:21 p.m. UTC | #6
On 03/02/2023 20:34, Jerome Brunet wrote:
> 
> On Fri 03 Feb 2023 at 18:59, Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> wrote:
> 
>> On 03/02/2023 15:13, Jerome Brunet wrote:
>>>>> +          Multiplication factor between the frame rate and master clock
>>>>> +          rate
>>>>> +
>>>>> +      sound-dai:
>>>>> +        $ref: /schemas/types.yaml#/definitions/phandle-array
>>>>
>>>> Old binding was saying it is just phandle
>>>
>>> It is just a phandle but the bindings used to have problem with phandle
>>> that had cells.
>>>
>>> See:
>>> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/Documentation/devicetree/bindings/sound/amlogic,gx-sound-card.yaml?h=v6.2-rc6&id=d031d99b02eaf7363c33f5b27b38086cc8104082
>>>
>>> Was it wrong or did the situation change since then ?
>>
>> Then define it as having cells:
>>
>> https://elixir.bootlin.com/linux/v5.18-rc1/source/Documentation/devicetree/bindings/soc/samsung/exynos-usi.yaml#L42
>>
> 
> The card is provided with the phandle.
> Whether or not the phandle has cells or not has nothing do with card
> driver. The card just consums sound-dai. I don't understand this comment.

You said this is only a phandle. Then you have just two options - either
this is one phandle without arguments (then change it as I asked
originally) or this is one phandle with arguments (then change it to
define the arguments like in example I gave you).

Best regards,
Krzysztof
Krzysztof Kozlowski Feb. 3, 2023, 8:27 p.m. UTC | #7
On 03/02/2023 20:34, Jerome Brunet wrote:
> 
> On Fri 03 Feb 2023 at 18:59, Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> wrote:
> 
>> On 03/02/2023 15:13, Jerome Brunet wrote:
>>>>> +          Multiplication factor between the frame rate and master clock
>>>>> +          rate
>>>>> +
>>>>> +      sound-dai:
>>>>> +        $ref: /schemas/types.yaml#/definitions/phandle-array
>>>>
>>>> Old binding was saying it is just phandle
>>>
>>> It is just a phandle but the bindings used to have problem with phandle
>>> that had cells.
>>>
>>> See:
>>> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/Documentation/devicetree/bindings/sound/amlogic,gx-sound-card.yaml?h=v6.2-rc6&id=d031d99b02eaf7363c33f5b27b38086cc8104082
>>>
>>> Was it wrong or did the situation change since then ?
>>
>> Then define it as having cells:
>>
>> https://elixir.bootlin.com/linux/v5.18-rc1/source/Documentation/devicetree/bindings/soc/samsung/exynos-usi.yaml#L42

Eh, it is already defined, so my advice is incorrect. Drop the ref and
define maxItems.

Best regards,
Krzysztof