On Mon, Feb 24, 2025 at 5:47 AM Vincenzo Frascino <vincenzo.frascino@xxxxxxx> wrote: > > Convert the Xilinx I2S device tree binding documentation to json-schema. > > Signed-off-by: Vincenzo Frascino <vincenzo.frascino@xxxxxxx> > --- > .../devicetree/bindings/sound/xlnx,i2s.txt | 28 -------- > .../devicetree/bindings/sound/xlnx,i2s.yaml | 68 +++++++++++++++++++ > 2 files changed, 68 insertions(+), 28 deletions(-) > delete mode 100644 Documentation/devicetree/bindings/sound/xlnx,i2s.txt > create mode 100644 Documentation/devicetree/bindings/sound/xlnx,i2s.yaml > > diff --git a/Documentation/devicetree/bindings/sound/xlnx,i2s.txt b/Documentation/devicetree/bindings/sound/xlnx,i2s.txt > deleted file mode 100644 > index 5e7c7d5bb60a..000000000000 > --- a/Documentation/devicetree/bindings/sound/xlnx,i2s.txt > +++ /dev/null > @@ -1,28 +0,0 @@ > -Device-Tree bindings for Xilinx I2S PL block > - > -The IP supports I2S based playback/capture audio > - > -Required property: > - - compatible: "xlnx,i2s-transmitter-1.0" for playback and > - "xlnx,i2s-receiver-1.0" for capture > - > -Required property common to both I2S playback and capture: > - - reg: Base address and size of the IP core instance. > - - xlnx,dwidth: sample data width. Can be any of 16, 24. > - - xlnx,num-channels: Number of I2S streams. Can be any of 1, 2, 3, 4. > - supported channels = 2 * xlnx,num-channels > - > -Example: > - > - i2s_receiver@a0080000 { > - compatible = "xlnx,i2s-receiver-1.0"; > - reg = <0x0 0xa0080000 0x0 0x10000>; > - xlnx,dwidth = <0x18>; > - xlnx,num-channels = <1>; > - }; > - i2s_transmitter@a0090000 { > - compatible = "xlnx,i2s-transmitter-1.0"; > - reg = <0x0 0xa0090000 0x0 0x10000>; > - xlnx,dwidth = <0x18>; > - xlnx,num-channels = <1>; > - }; > diff --git a/Documentation/devicetree/bindings/sound/xlnx,i2s.yaml b/Documentation/devicetree/bindings/sound/xlnx,i2s.yaml > new file mode 100644 > index 000000000000..5d7f0c651944 > --- /dev/null > +++ b/Documentation/devicetree/bindings/sound/xlnx,i2s.yaml > @@ -0,0 +1,68 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/sound/xlnx,i2s.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Xilinx I2S PL block > + > +description: | Don't need '|' if no formatting to preserve. > + The IP supports I2S based playback/capture audio. > + > +maintainers: > + - Vincenzo Frascino <vincenzo.frascino@xxxxxxx> > + > +allOf: > + - $ref: dai-common.yaml# > + > +properties: > + compatible: > + enum: > + - xlnx,i2s-receiver-1.0 > + - xlnx,i2s-transmitter-1.0 > + > + reg: > + minItems: 1 > + maxItems: 4 If there is more than 1 entry, then you need to describe what each one is. Looks like 1 entry per channel? But I can only guess. > + description: | > + Base address and size of the IP core instance. That's every 'reg' property if there's only 1 entry. Description should be specific to this binding or dropped. > + > + xlnx,dwidth: > + $ref: /schemas/types.yaml#/definitions/uint32 > + enum: > + - 16 > + - 24 > + description: | > + Sample data width. Can be any of 16, 24. Don't repeat constraints in prose. > + > + xlnx,num-channels: > + $ref: /schemas/types.yaml#/definitions/uint32 > + minimum: 1 > + maximum: 4 > + description: | > + Number of I2S streams. > + > +required: > + - compatible > + - reg > + - xlnx,dwidth > + - xlnx,num-channels > + > +additionalProperties: true > + > +examples: > + - | > + i2s_receiver@a0080000 { i2s@... > + compatible = "xlnx,i2s-receiver-1.0"; > + reg = <0x0 0xa0080000 0x0 0x10000>; > + xlnx,dwidth = <0x18>; > + xlnx,num-channels = <1>; > + }; > + i2s_transmitter@a0090000 { i2s@... > + compatible = "xlnx,i2s-transmitter-1.0"; > + reg = <0x0 0xa0090000 0x0 0x10000>; > + xlnx,dwidth = <0x18>; > + xlnx,num-channels = <1>; > + }; > + > +... > -- > 2.43.0 >