Linux Sound subsystem development
 help / color / mirror / Atom feed
From: Frank Li <Frank.li@nxp.com>
To: Rob Herring <robh@kernel.org>
Cc: Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
	Conor Dooley <conor+dt@kernel.org>,
	Shengjiu Wang <shengjiu.wang@nxp.com>,
	"open list:SOUND - SOC LAYER / DYNAMIC AUDIO POWER MANAGEM..."
	<linux-sound@vger.kernel.org>,
	"open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS"
	<devicetree@vger.kernel.org>,
	open list <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 1/1] ASoC: dt-bindings: fsl-esai: Convert fsl,esai.txt to yaml
Date: Thu, 21 Mar 2024 12:19:51 -0400	[thread overview]
Message-ID: <ZfxeJ9dAXtfYW7Qq@lizhi-Precision-Tower-5810> (raw)
In-Reply-To: <20240320152435.GA1753500-robh@kernel.org>

On Wed, Mar 20, 2024 at 10:24:35AM -0500, Rob Herring wrote:
> On Mon, Mar 18, 2024 at 03:45:34PM -0400, Frank Li wrote:
> > Convert fsl,esai.txt to yaml. So DTB_CHECK tools can verify dts file about
> > esai part.
> > 
> > clock-names 'spba' is optional according to description. So minItems of
> > clocks and clock-names is 3.
> > 
> > Signed-off-by: Frank Li <Frank.Li@nxp.com>
> > ---
> > 
> > Notes:
> >     Pass dt_binding check
> >      make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- -j8  dt_binding_check DT_SCHEMA_FILES=fsl,esai.yaml
> >       DTEX    Documentation/devicetree/bindings/sound/fsl,esai.example.dts
> >       LINT    Documentation/devicetree/bindings
> >       CHKDT   Documentation/devicetree/bindings/processed-schema.json
> >       SCHEMA  Documentation/devicetree/bindings/processed-schema.json
> >       DTC_CHK Documentation/devicetree/bindings/sound/fsl,esai.example.dtb
> > 
> >  .../devicetree/bindings/sound/fsl,esai.txt    |  68 -----------
> >  .../devicetree/bindings/sound/fsl,esai.yaml   | 110 ++++++++++++++++++
> >  2 files changed, 110 insertions(+), 68 deletions(-)
> >  delete mode 100644 Documentation/devicetree/bindings/sound/fsl,esai.txt
> >  create mode 100644 Documentation/devicetree/bindings/sound/fsl,esai.yaml
> > 
> > diff --git a/Documentation/devicetree/bindings/sound/fsl,esai.txt b/Documentation/devicetree/bindings/sound/fsl,esai.txt
> > deleted file mode 100644
> > index 90112ca1ff423..0000000000000
> > --- a/Documentation/devicetree/bindings/sound/fsl,esai.txt
> > +++ /dev/null
> > @@ -1,68 +0,0 @@
> > -Freescale Enhanced Serial Audio Interface (ESAI) Controller
> > -
> > -The Enhanced Serial Audio Interface (ESAI) provides a full-duplex serial port
> > -for serial communication with a variety of serial devices, including industry
> > -standard codecs, Sony/Phillips Digital Interface (S/PDIF) transceivers, and
> > -other DSPs. It has up to six transmitters and four receivers.
> > -
> > -Required properties:
> > -
> > -  - compatible		: Compatible list, should contain one of the following
> > -			  compatibles:
> > -			  "fsl,imx35-esai",
> > -			  "fsl,vf610-esai",
> > -			  "fsl,imx6ull-esai",
> > -			  "fsl,imx8qm-esai",
> > -
> > -  - reg			: Offset and length of the register set for the device.
> > -
> > -  - interrupts		: Contains the spdif interrupt.
> > -
> > -  - dmas		: Generic dma devicetree binding as described in
> > -			  Documentation/devicetree/bindings/dma/dma.txt.
> > -
> > -  - dma-names		: Two dmas have to be defined, "tx" and "rx".
> > -
> > -  - clocks		: Contains an entry for each entry in clock-names.
> > -
> > -  - clock-names		: Includes the following entries:
> > -	"core"		  The core clock used to access registers
> > -	"extal"		  The esai baud clock for esai controller used to
> > -			  derive HCK, SCK and FS.
> > -	"fsys"		  The system clock derived from ahb clock used to
> > -			  derive HCK, SCK and FS.
> > -	"spba"		  The spba clock is required when ESAI is placed as a
> > -			  bus slave of the Shared Peripheral Bus and when two
> > -			  or more bus masters (CPU, DMA or DSP) try to access
> > -			  it. This property is optional depending on the SoC
> > -			  design.
> > -
> > -  - fsl,fifo-depth	: The number of elements in the transmit and receive
> > -			  FIFOs. This number is the maximum allowed value for
> > -			  TFCR[TFWM] or RFCR[RFWM].
> > -
> > -  - fsl,esai-synchronous: This is a boolean property. If present, indicating
> > -			  that ESAI would work in the synchronous mode, which
> > -			  means all the settings for Receiving would be
> > -			  duplicated from Transmission related registers.
> > -
> > -Optional properties:
> > -
> > -  - big-endian		: If this property is absent, the native endian mode
> > -			  will be in use as default, or the big endian mode
> > -			  will be in use for all the device registers.
> > -
> > -Example:
> > -
> > -esai: esai@2024000 {
> > -	compatible = "fsl,imx35-esai";
> > -	reg = <0x02024000 0x4000>;
> > -	interrupts = <0 51 0x04>;
> > -	clocks = <&clks 208>, <&clks 118>, <&clks 208>;
> > -	clock-names = "core", "extal", "fsys";
> > -	dmas = <&sdma 23 21 0>, <&sdma 24 21 0>;
> > -	dma-names = "rx", "tx";
> > -	fsl,fifo-depth = <128>;
> > -	fsl,esai-synchronous;
> > -	big-endian;
> > -};
> > diff --git a/Documentation/devicetree/bindings/sound/fsl,esai.yaml b/Documentation/devicetree/bindings/sound/fsl,esai.yaml
> > new file mode 100644
> > index 0000000000000..9e31283933d1b
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/sound/fsl,esai.yaml
> > @@ -0,0 +1,110 @@
> > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> > +%YAML 1.2
> > +---
> > +$id: http://devicetree.org/schemas/sound/fsl,esai.yaml#
> > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > +
> > +title: Freescale Enhanced Serial Audio Interface (ESAI) Controller
> > +
> > +maintainers:
> > +  - Shengjiu Wang <shengjiu.wang@nxp.com>
> > +  - Frank Li <Frank.Li@nxp.com>
> > +
> > +description:
> > +  The Enhanced Serial Audio Interface (ESAI) provides a full-duplex serial port
> > +  for serial communication with a variety of serial devices, including industry
> > +  standard codecs, Sony/Phillips Digital Interface (S/PDIF) transceivers, and
> > +  other DSPs. It has up to six transmitters and four receivers.
> > +
> > +properties:
> > +  compatible:
> > +    enum:
> > +      - fsl,imx35-esai
> > +      - fsl,vf610-esai
> 
> Alphabetical order
> 
> > +      - fsl,imx6ull-esai
> > +      - fsl,imx8qm-esai
> > +
> > +  reg:
> > +    maxItems: 1
> > +
> > +  interrupts:
> > +    maxItems: 1
> > +
> > +  clocks:
> > +    minItems: 3
> > +    maxItems: 4
> > +
> > +  clock-names:
> > +    minItems: 3
> > +    description: |
> > +      core:   The core clock used to access registers.
> > +      extal:  The esai baud clock for esai controller used to
> > +              derive HCK, SCK and FS.
> > +      fsys:   The system clock derived from ahb clock used to
> > +              derive HCK, SCK and FS.
> > +      spba:   The spba clock is required when ESAI is placed as a
> > +              bus slave of the Shared Peripheral Bus and when two
> > +              or more bus masters (CPU, DMA or DSP) try to access
> > +              it. This property is optional depending on the SoC
> > +              design.
> 
> This description should be split into each items entry below.

I am not sure how to do that. 

items: 
  - descripton: abc
  - const: core
  ....

I get below error.
 properties:clock-names:items: 'oneOf' conditional failed, one must be fixed:
	[{'description': 'abcd', 'const': 'core'}, {'description': 'abcd', 'const': 'extal'}, {'description': 'abcd', 'const': 'fsys'}, {'description': 'abcd', 'const': 'spba'}] is not of type 'object'
	Additional properties are not allowed ('description' was unexpected)
	from schema $id: http://devicetree.org/meta-schemas/string-array.yaml#


snps,dw-pcie.yaml give example

items:
  oneOf
    - desecirpt: abc
      const: core

allOf
  contain:
    - const: core


but it lost clock-names order restriction.

Could you please give me example about how to add description for const
under items?

Frank


> 
> > +    items:
> > +      - const: core
> > +      - const: extal
> > +      - const: fsys
> > +      - const: spba
> > +
> > +  dmas:
> > +    minItems: 2
> > +    maxItems: 2
> > +
> > +  dma-names:
> > +    items:
> > +      - const: rx
> > +      - const: tx
> > +
> > +  fsl,fifo-depth:
> > +    $ref: /schemas/types.yaml#/definitions/uint32
> > +    description: The number of elements in the transmit and receive
> > +                 FIFOs. This number is the maximum allowed value for
> > +                 TFCR[TFWM] or RFCR[RFWM].
> 
> Not the normal indentation. Should be just indent 2 more spaces than 
> 'description'.
> 
> > +
> > +  fsl,esai-synchronous:
> > +    $ref: /schemas/types.yaml#/definitions/flag
> > +    description: This is a boolean property. If present, indicating
> > +                 that ESAI would work in the synchronous mode, which
> > +                 means all the settings for Receiving would be
> > +                 duplicated from Transmission related registers.
> > +
> > +  big-endian:
> > +    $ref: /schemas/types.yaml#/definitions/flag
> > +    description: If this property is absent, the native endian mode
> > +                 will be in use as default, or the big endian mode
> > +                 will be in use for all the device registers.
> > +
> > +required:
> > +  - compatible
> > +  - reg
> > +  - interrupts
> > +  - clocks
> > +  - clock-names
> > +  - dmas
> > +  - dma-names
> > +  - fsl,fifo-depth
> > +  - fsl,esai-synchronous
> > +
> > +unevaluatedProperties: false
> > +
> > +examples:
> > +  - |
> > +    esai@2024000 {
> > +      compatible = "fsl,imx35-esai";
> > +      reg = <0x02024000 0x4000>;
> > +      interrupts = <0 51 0x04>;
> > +      clocks = <&clks 208>, <&clks 118>, <&clks 208>;
> > +      clock-names = "core", "extal", "fsys";
> > +      dmas = <&sdma 23 21 0>, <&sdma 24 21 0>;
> > +      dma-names = "rx", "tx";
> > +      fsl,fifo-depth = <128>;
> > +      fsl,esai-synchronous;
> > +      big-endian;
> > +    };
> > -- 
> > 2.34.1
> > 

  reply	other threads:[~2024-03-21 16:20 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-03-18 19:45 [PATCH 1/1] ASoC: dt-bindings: fsl-esai: Convert fsl,esai.txt to yaml Frank Li
2024-03-20 15:24 ` Rob Herring
2024-03-21 16:19   ` Frank Li [this message]
2024-03-22  6:17     ` Krzysztof Kozlowski

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ZfxeJ9dAXtfYW7Qq@lizhi-Precision-Tower-5810 \
    --to=frank.li@nxp.com \
    --cc=broonie@kernel.org \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=krzysztof.kozlowski+dt@linaro.org \
    --cc=lgirdwood@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-sound@vger.kernel.org \
    --cc=robh@kernel.org \
    --cc=shengjiu.wang@nxp.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox