Re: [PATCH 1/2] ASoC: dt-bindings: fsl-asoc-card: convert to YAML

From: Shengjiu Wang
Date: Fri Mar 22 2024 - 23:42:26 EST


On Fri, Mar 22, 2024 at 9:58 PM Rob Herring <robh@xxxxxxxxxx> wrote:
>
> On Fri, Mar 22, 2024 at 06:13:25PM +0800, Shengjiu Wang wrote:
> > Convert the fsl-asoc-card binding to YAML.
> >
> > In order to pass the checking, add some used compatible
> > string from devicetree.
> >
> > Signed-off-by: Shengjiu Wang <shengjiu.wang@xxxxxxx>
> > ---
> > .../bindings/sound/fsl-asoc-card.txt | 117 -----------
> > .../bindings/sound/fsl-asoc-card.yaml | 196 ++++++++++++++++++
> > 2 files changed, 196 insertions(+), 117 deletions(-)
> > delete mode 100644 Documentation/devicetree/bindings/sound/fsl-asoc-card.txt
> > create mode 100644 Documentation/devicetree/bindings/sound/fsl-asoc-card.yaml
> >
> > diff --git a/Documentation/devicetree/bindings/sound/fsl-asoc-card.txt b/Documentation/devicetree/bindings/sound/fsl-asoc-card.txt
> > deleted file mode 100644
> > index 4e8dbc5abfd1..000000000000
> > --- a/Documentation/devicetree/bindings/sound/fsl-asoc-card.txt
> > +++ /dev/null
> > @@ -1,117 +0,0 @@
> > -Freescale Generic ASoC Sound Card with ASRC support
> > -
> > -The Freescale Generic ASoC Sound Card can be used, ideally, for all Freescale
> > -SoCs connecting with external CODECs.
> > -
> > -The idea of this generic sound card is a bit like ASoC Simple Card. However,
> > -for Freescale SoCs (especially those released in recent years), most of them
> > -have ASRC (Documentation/devicetree/bindings/sound/fsl,asrc.txt) inside. And
> > -this is a specific feature that might be painstakingly controlled and merged
> > -into the Simple Card.
> > -
> > -So having this generic sound card allows all Freescale SoC users to benefit
> > -from the simplification of a new card support and the capability of the wide
> > -sample rates support through ASRC.
> > -
> > -Note: The card is initially designed for those sound cards who use AC'97, I2S
> > - and PCM DAI formats. However, it'll be also possible to support those non
> > - AC'97/I2S/PCM type sound cards, such as S/PDIF audio and HDMI audio, as
> > - long as the driver has been properly upgraded.
> > -
> > -
> > -The compatible list for this generic sound card currently:
> > - "fsl,imx-audio-ac97"
> > -
> > - "fsl,imx-audio-cs42888"
> > -
> > - "fsl,imx-audio-cs427x"
> > - (compatible with CS4271 and CS4272)
> > -
> > - "fsl,imx-audio-wm8962"
> > -
> > - "fsl,imx-audio-sgtl5000"
> > - (compatible with Documentation/devicetree/bindings/sound/imx-audio-sgtl5000.txt)
> > -
> > - "fsl,imx-audio-wm8960"
> > -
> > - "fsl,imx-audio-mqs"
> > -
> > - "fsl,imx-audio-wm8524"
> > -
> > - "fsl,imx-audio-tlv320aic32x4"
> > -
> > - "fsl,imx-audio-tlv320aic31xx"
> > -
> > - "fsl,imx-audio-si476x"
> > -
> > - "fsl,imx-audio-wm8958"
> > -
> > - "fsl,imx-audio-nau8822"
> > -
> > -Required properties:
> > -
> > - - compatible : Contains one of entries in the compatible list.
> > -
> > - - model : The user-visible name of this sound complex
> > -
> > - - audio-cpu : The phandle of an CPU DAI controller
> > -
> > - - audio-codec : The phandle of an audio codec
> > -
> > -Optional properties:
> > -
> > - - audio-asrc : The phandle of ASRC. It can be absent if there's no
> > - need to add ASRC support via DPCM.
> > -
> > - - audio-routing : 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. There're a few pre-designed board connectors:
> > - * Line Out Jack
> > - * Line In Jack
> > - * Headphone Jack
> > - * Mic Jack
> > - * Ext Spk
> > - * AMIC (stands for Analog Microphone Jack)
> > - * DMIC (stands for Digital Microphone Jack)
> > -
> > - Note: The "Mic Jack" and "AMIC" are redundant while
> > - coexisting in order to support the old bindings
> > - of wm8962 and sgtl5000.
> > -
> > - - hp-det-gpio : The GPIO that detect headphones are plugged in
> > - - mic-det-gpio : The GPIO that detect microphones are plugged in
> > - - bitclock-master : Indicates dai-link bit clock master; for details see simple-card.yaml.
> > - - frame-master : Indicates dai-link frame master; for details see simple-card.yaml.
> > - - dai-format : audio format, for details see simple-card.yaml.
> > - - frame-inversion : dai-link uses frame clock inversion, for details see simple-card.yaml.
> > - - bitclock-inversion : dai-link uses bit clock inversion, for details see simple-card.yaml.
> > - - mclk-id : main clock id, specific for each card configuration.
> > -
> > -Optional unless SSI is selected as a CPU DAI:
> > -
> > - - mux-int-port : The internal port of the i.MX audio muxer (AUDMUX)
> > -
> > - - mux-ext-port : The external port of the i.MX audio muxer
> > -
> > -Example:
> > -sound-cs42888 {
> > - compatible = "fsl,imx-audio-cs42888";
> > - model = "cs42888-audio";
> > - audio-cpu = <&esai>;
> > - audio-asrc = <&asrc>;
> > - audio-codec = <&cs42888>;
> > - audio-routing =
> > - "Line Out Jack", "AOUT1L",
> > - "Line Out Jack", "AOUT1R",
> > - "Line Out Jack", "AOUT2L",
> > - "Line Out Jack", "AOUT2R",
> > - "Line Out Jack", "AOUT3L",
> > - "Line Out Jack", "AOUT3R",
> > - "Line Out Jack", "AOUT4L",
> > - "Line Out Jack", "AOUT4R",
> > - "AIN1L", "Line In Jack",
> > - "AIN1R", "Line In Jack",
> > - "AIN2L", "Line In Jack",
> > - "AIN2R", "Line In Jack";
> > -};
> > diff --git a/Documentation/devicetree/bindings/sound/fsl-asoc-card.yaml b/Documentation/devicetree/bindings/sound/fsl-asoc-card.yaml
> > new file mode 100644
> > index 000000000000..48051655230d
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/sound/fsl-asoc-card.yaml
> > @@ -0,0 +1,196 @@
> > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> > +%YAML 1.2
> > +---
> > +$id: http://devicetree.org/schemas/sound/fsl-asoc-card.yaml#
> > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > +
> > +title: Freescale Generic ASoC Sound Card with ASRC support
> > +
> > +description:
> > + The Freescale Generic ASoC Sound Card can be used, ideally,
> > + for all Freescale SoCs connecting with external CODECs.
> > +
> > + The idea of this generic sound card is a bit like ASoC Simple Card.
> > + However, for Freescale SoCs (especially those released in recent years),
> > + most of them have ASRC
> > + (Documentation/devicetree/bindings/sound/fsl,imx-asrc.yaml) inside. And
> > + this is a specific feature that might be painstakingly controlled and
> > + merged into the Simple Card.
> > +
> > + So having this generic sound card allows all Freescale SoC users to
> > + benefit from the simplification of a new card support and the capability
> > + of the wide sample rates support through ASRC.
> > +
> > + Note, The card is initially designed for those sound cards who use AC'97, I2S
> > + and PCM DAI formats. However, it'll be also possible to support those non
> > + AC'97/I2S/PCM type sound cards, such as S/PDIF audio and HDMI audio, as
> > + long as the driver has been properly upgraded.
> > +
> > +maintainers:
> > + - Shengjiu Wang <shengjiu.wang@xxxxxxx>
> > +
> > +properties:
> > + compatible:
> > + oneOf:
> > + - items:
> > + - enum:
> > + - fsl,imx-sgtl5000
> > + - fsl,imx53-cpuvo-sgtl5000
> > + - fsl,imx51-babbage-sgtl5000
> > + - fsl,imx53-m53evk-sgtl5000
> > + - fsl,imx53-qsb-sgtl5000
> > + - fsl,imx53-voipac-sgtl5000
> > + - fsl,imx6-armadeus-sgtl5000
> > + - fsl,imx6-rex-sgtl5000
> > + - fsl,imx6-sabreauto-cs42888
> > + - fsl,imx6-wandboard-sgtl5000
> > + - fsl,imx6dl-nit6xlite-sgtl5000
> > + - fsl,imx6q-ba16-sgtl5000
> > + - fsl,imx6q-nitrogen6_max-sgtl5000
> > + - fsl,imx6q-nitrogen6_som2-sgtl5000
> > + - fsl,imx6q-nitrogen6x-sgtl5000
> > + - fsl,imx6q-sabrelite-sgtl5000
> > + - fsl,imx6q-sabresd-wm8962
> > + - fsl,imx6q-udoo-ac97
> > + - fsl,imx6q-ventana-sgtl5000
> > + - fsl,imx6sl-evk-wm8962
> > + - fsl,imx6sx-sdb-mqs
> > + - fsl,imx6sx-sdb-wm8962
> > + - fsl,imx7d-evk-wm8960
> > + - karo,tx53-audio-sgtl5000
> > + - tq,imx53-mba53-sgtl5000
>
> None of these were documented before. It's fine to add all these in this
> patch, but please state in the commit message what missing or incorrect
> things you added in the schema.

ok, will add info in the commit message.

>
> > + - enum:
> > + - fsl,imx-audio-ac97
> > + - fsl,imx-audio-cs42888
> > + - fsl,imx-audio-mqs
> > + - fsl,imx-audio-sgtl5000
> > + - fsl,imx-audio-wm8960
> > + - fsl,imx-audio-wm8962
> > + - items:
> > + - enum:
> > + - fsl,imx-audio-ac97
> > + - fsl,imx-audio-cs42888
> > + - fsl,imx-audio-cs427x
> > + - fsl,imx-audio-mqs
> > + - fsl,imx-audio-nau8822
> > + - fsl,imx-audio-sgtl5000
> > + - fsl,imx-audio-si476x
> > + - fsl,imx-audio-tlv320aic31xx
> > + - fsl,imx-audio-tlv320aic32x4
> > + - fsl,imx-audio-wm8524
> > + - fsl,imx-audio-wm8960
> > + - fsl,imx-audio-wm8962
> > + - fsl,imx-audio-wm8958
> > +
> > + model:
> > + $ref: /schemas/types.yaml#/definitions/string
> > + description: The user-visible name of this sound complex
> > +
> > + audio-asrc:
> > + $ref: /schemas/types.yaml#/definitions/phandle
> > + description:
> > + The phandle of ASRC. It can be absent if there's no
> > + need to add ASRC support via DPCM.
> > +
> > + audio-codec:
> > + $ref: /schemas/types.yaml#/definitions/phandle
> > + description: The phandle of an audio codec
> > +
> > + audio-cpu:
> > + $ref: /schemas/types.yaml#/definitions/phandle
> > + description: The phandle of an CPU DAI controller
> > +
> > + 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. There're a few pre-designed board
> > + connectors.
> > + * Line Out Jack
> > + * Line In Jack
> > + * Headphone Jack
> > + * Mic Jack
> > + * Ext Spk
> > + * AMIC (stands for Analog Microphone Jack)
> > + * DMIC (stands for Digital Microphone Jack)
> > + Note, The "Mic Jack" and "AMIC" are redundant while coexisting in
> > + order to support the old bindings of wm8962 and sgtl5000.
>
> Please list the strings out as schema:
>
> minItems: 2
> items:
> enum:
> - "Line Out Jack"
> ...

Can I not list them? Because this fsl-asoc-card is generic
it supports several codecs, if list them, there will be a long list.

>
> > +
> > + hp-det-gpio:
> > + maxItems: 1
> > + description: The GPIO that detect headphones are plugged in
>
> deprecated: true

ok, will add it.

>
> > +
> > + hp-det-gpios:
> > + maxItems: 1
> > + description: The GPIO that detect headphones are plugged in
> > +
> > + mic-det-gpio:
> > + maxItems: 1
> > + description: The GPIO that detect microphones are plugged in
>
> deprecated: true
>
> > +
> > + mic-det-gpios:
> > + maxItems: 1
> > + description: The GPIO that detect microphones are plugged in
> > +
> > + bitclock-master:
> > + description: Indicates dai-link bit clock master; for details see simple-card.yaml.
>
> Drop the prose reference and add:
>
> $ref: simple-card.yaml#/definitions/bitclock-master
>
> Otherwise, bitclock-master could be anything.
>
> And similar for the rest.

ok, will change them.

Best regards
Shengjiu Wang
>
> > +
> > + frame-master:
> > + description: Indicates dai-link frame master; for details see simple-card.yaml.
> > +
> > + dai-format:
> > + description: audio format, for details see simple-card.yaml.
> > +
> > + frame-inversion:
> > + description: dai-link uses frame clock inversion, for details see simple-card.yaml.
> > +
> > + bitclock-inversion:
> > + description: dai-link uses bit clock inversion, for details see simple-card.yaml.
> > +
> > + mclk-id:
> > + $ref: /schemas/types.yaml#/definitions/uint32
> > + description: main clock id, specific for each card configuration.
> > +
> > + mux-int-port:
> > + $ref: /schemas/types.yaml#/definitions/uint32
> > + enum: [1, 2, 7]
> > + description: The internal port of the i.MX audio muxer (AUDMUX)
> > +
> > + mux-ext-port:
> > + $ref: /schemas/types.yaml#/definitions/uint32
> > + enum: [3, 4, 5, 6]
> > + description: The external port of the i.MX audio muxer
> > +
> > + ssi-controller:
> > + $ref: /schemas/types.yaml#/definitions/phandle
> > + description: The phandle of an CPU DAI controller
> > +
> > +required:
> > + - compatible
> > + - model
> > +
> > +unevaluatedProperties: false
> > +
> > +examples:
> > + - |
> > + sound-cs42888 {
> > + compatible = "fsl,imx-audio-cs42888";
> > + model = "cs42888-audio";
> > + audio-cpu = <&esai>;
> > + audio-asrc = <&asrc>;
> > + audio-codec = <&cs42888>;
> > + audio-routing =
> > + "Line Out Jack", "AOUT1L",
> > + "Line Out Jack", "AOUT1R",
> > + "Line Out Jack", "AOUT2L",
> > + "Line Out Jack", "AOUT2R",
> > + "Line Out Jack", "AOUT3L",
> > + "Line Out Jack", "AOUT3R",
> > + "Line Out Jack", "AOUT4L",
> > + "Line Out Jack", "AOUT4R",
> > + "AIN1L", "Line In Jack",
> > + "AIN1R", "Line In Jack",
> > + "AIN2L", "Line In Jack",
> > + "AIN2R", "Line In Jack";
> > + };
> > --
> > 2.34.1
> >