Re: [PATCH 1/1] ASoC: dt-bindings: fsl-esai: Convert fsl,esai.txt to yaml

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]



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@xxxxxxx>
> > ---
> > 
> > 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@xxxxxxx>
> > +  - Frank Li <Frank.Li@xxxxxxx>
> > +
> > +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
> > 




[Index of Archives]     [Pulseaudio]     [Linux Audio Users]     [ALSA Devel]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]

  Powered by Linux