2022-07-13 16:33:26

by Ryan.Wanner

[permalink] [raw]
Subject: [PATCH] ASoC: dt-bindings: atmel-i2s: Convert to json-schema

From: Ryan Wanner <[email protected]>

Convert atmel i2s devicetree binding to json-schema.
Change file name to match json-schema naming.

Signed-off-by: Ryan Wanner <[email protected]>
---
.../bindings/sound/atmel,sama5d2-i2s.yaml | 83 +++++++++++++++++++
.../devicetree/bindings/sound/atmel-i2s.txt | 46 ----------
2 files changed, 83 insertions(+), 46 deletions(-)
create mode 100644 Documentation/devicetree/bindings/sound/atmel,sama5d2-i2s.yaml
delete mode 100644 Documentation/devicetree/bindings/sound/atmel-i2s.txt

diff --git a/Documentation/devicetree/bindings/sound/atmel,sama5d2-i2s.yaml b/Documentation/devicetree/bindings/sound/atmel,sama5d2-i2s.yaml
new file mode 100644
index 000000000000..1cadc476565c
--- /dev/null
+++ b/Documentation/devicetree/bindings/sound/atmel,sama5d2-i2s.yaml
@@ -0,0 +1,83 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+# Copyright (C) 2022 Microchip Technology, Inc. and its subsidiaries
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/sound/atmel,sama5d2-i2s.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Atmel I2S controller
+
+maintainers:
+ - Nicolas Ferre <[email protected]>
+ - Alexandre Belloni <[email protected]>
+ - Claudiu Beznea <[email protected]>
+
+description:
+ Atmel I2S (Inter-IC Sound Controller) bus is the standard
+ interface for connecting audio devices, such as audio codecs.
+
+properties:
+ compatible:
+ const: atmel,sama5d2-i2s
+
+ reg:
+ maxItems: 1
+
+ interrupts:
+ maxItems: 1
+
+ clocks:
+ description:
+ Only the peripheral clock (pclk) is required. The generated clock (gclk)
+ and the I2S mux clock (muxclk) are optional and should only be set together,
+ when Master Mode is required.
+
+ clock-names:
+ items:
+ - const: pclk
+ - const: gclk
+ - const: muxclk
+ minItems: 1
+
+ dmas:
+ description:
+ Should be one per channel name listed in the dma-names property.
+ maxItems: 2
+
+ dma-names:
+ items:
+ - const: tx
+ - const: rx
+
+required:
+ - compatible
+ - reg
+ - interrupts
+ - dmas
+ - dma-names
+ - clocks
+ - clock-names
+
+additionalProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/dma/at91.h>
+ #include <dt-bindings/interrupt-controller/arm-gic.h>
+
+ i2s@f8050000 {
+ compatible = "atmel,sama5d2-i2s";
+ reg = <0xf8050000 0x300>;
+ interrupts = <54 IRQ_TYPE_LEVEL_HIGH 7>;
+ dmas = <&dma0
+ (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
+ AT91_XDMAC_DT_PERID(31))>,
+ <&dma0
+ (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
+ AT91_XDMAC_DT_PERID(32))>;
+ dma-names = "tx", "rx";
+ clocks = <&i2s0_clk>, <&i2s0_gclk>, <&i2s0muxck>;
+ clock-names = "pclk", "gclk", "muxclk";
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_i2s0_default>;
+ };
diff --git a/Documentation/devicetree/bindings/sound/atmel-i2s.txt b/Documentation/devicetree/bindings/sound/atmel-i2s.txt
deleted file mode 100644
index 40549f496a81..000000000000
--- a/Documentation/devicetree/bindings/sound/atmel-i2s.txt
+++ /dev/null
@@ -1,46 +0,0 @@
-* Atmel I2S controller
-
-Required properties:
-- compatible: Should be "atmel,sama5d2-i2s".
-- reg: Should be the physical base address of the controller and the
- length of memory mapped region.
-- interrupts: Should contain the interrupt for the controller.
-- dmas: Should be one per channel name listed in the dma-names property,
- as described in atmel-dma.txt and dma.txt files.
-- dma-names: Two dmas have to be defined, "tx" and "rx".
- This IP also supports one shared channel for both rx and tx;
- if this mode is used, one "rx-tx" name must be used.
-- clocks: Must contain an entry for each entry in clock-names.
- Please refer to clock-bindings.txt.
-- clock-names: Should be one of each entry matching the clocks phandles list:
- - "pclk" (peripheral clock) Required.
- - "gclk" (generated clock) Optional (1).
- - "muxclk" (I2S mux clock) Optional (1).
-
-Optional properties:
-- pinctrl-0: Should specify pin control groups used for this controller.
-- princtrl-names: Should contain only one value - "default".
-
-
-(1) : Only the peripheral clock is required. The generated clock and the I2S
- mux clock are optional and should only be set together, when Master Mode
- is required.
-
-Example:
-
- i2s@f8050000 {
- compatible = "atmel,sama5d2-i2s";
- reg = <0xf8050000 0x300>;
- interrupts = <54 IRQ_TYPE_LEVEL_HIGH 7>;
- dmas = <&dma0
- (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
- AT91_XDMAC_DT_PERID(31))>,
- <&dma0
- (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
- AT91_XDMAC_DT_PERID(32))>;
- dma-names = "tx", "rx";
- clocks = <&i2s0_clk>, <&i2s0_gclk>, <&i2s0muxck>;
- clock-names = "pclk", "gclk", "muxclk";
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_i2s0_default>;
- };
--
2.34.1


2022-07-13 19:33:57

by Rob Herring (Arm)

[permalink] [raw]
Subject: Re: [PATCH] ASoC: dt-bindings: atmel-i2s: Convert to json-schema

On Wed, 13 Jul 2022 09:25:38 -0700, [email protected] wrote:
> From: Ryan Wanner <[email protected]>
>
> Convert atmel i2s devicetree binding to json-schema.
> Change file name to match json-schema naming.
>
> Signed-off-by: Ryan Wanner <[email protected]>
> ---
> .../bindings/sound/atmel,sama5d2-i2s.yaml | 83 +++++++++++++++++++
> .../devicetree/bindings/sound/atmel-i2s.txt | 46 ----------
> 2 files changed, 83 insertions(+), 46 deletions(-)
> create mode 100644 Documentation/devicetree/bindings/sound/atmel,sama5d2-i2s.yaml
> delete mode 100644 Documentation/devicetree/bindings/sound/atmel-i2s.txt
>

Running 'make dtbs_check' with the schema in this patch gives the
following warnings. Consider if they are expected or the schema is
incorrect. These may not be new warnings.

Note that it is not yet a requirement to have 0 warnings for dtbs_check.
This will change in the future.

Full log is available here: https://patchwork.ozlabs.org/patch/


i2s@fc04c000: 'assigned-parrents' does not match any of the regexes: 'pinctrl-[0-9]+'
arch/arm/boot/dts/at91-kizbox3-hs.dtb
arch/arm/boot/dts/at91-sama5d27_som1_ek.dtb
arch/arm/boot/dts/at91-sama5d27_wlsom1_ek.dtb
arch/arm/boot/dts/at91-sama5d2_icp.dtb
arch/arm/boot/dts/at91-sama5d2_ptc_ek.dtb
arch/arm/boot/dts/at91-sama5d2_xplained.dtb

2022-07-13 22:54:19

by Ryan.Wanner

[permalink] [raw]
Subject: Re: [PATCH] ASoC: dt-bindings: atmel-i2s: Convert to json-schema

On 7/13/22 12:08, Rob Herring wrote:
> EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe
>
> On Wed, 13 Jul 2022 09:25:38 -0700, [email protected] wrote:
>> From: Ryan Wanner <[email protected]>
>>
>> Convert atmel i2s devicetree binding to json-schema.
>> Change file name to match json-schema naming.
>>
>> Signed-off-by: Ryan Wanner <[email protected]>
>> ---
>> .../bindings/sound/atmel,sama5d2-i2s.yaml | 83 +++++++++++++++++++
>> .../devicetree/bindings/sound/atmel-i2s.txt | 46 ----------
>> 2 files changed, 83 insertions(+), 46 deletions(-)
>> create mode 100644 Documentation/devicetree/bindings/sound/atmel,sama5d2-i2s.yaml
>> delete mode 100644 Documentation/devicetree/bindings/sound/atmel-i2s.txt
>>
>
> Running 'make dtbs_check' with the schema in this patch gives the
> following warnings. Consider if they are expected or the schema is
> incorrect. These may not be new warnings.
>
> Note that it is not yet a requirement to have 0 warnings for dtbs_check.
> This will change in the future.
>
> Full log is available here: https://patchwork.ozlabs.org/patch/
>
>
The warning is fixed with this patch:
https://lore.kernel.org/linux-arm-kernel/[email protected]/
I did not think this strictly depended on this patch because it does not
change things on this file.

> i2s@fc04c000: 'assigned-parrents' does not match any of the regexes: 'pinctrl-[0-9]+'
> arch/arm/boot/dts/at91-kizbox3-hs.dtb
> arch/arm/boot/dts/at91-sama5d27_som1_ek.dtb
> arch/arm/boot/dts/at91-sama5d27_wlsom1_ek.dtb
> arch/arm/boot/dts/at91-sama5d2_icp.dtb
> arch/arm/boot/dts/at91-sama5d2_ptc_ek.dtb
> arch/arm/boot/dts/at91-sama5d2_xplained.dtb
>

2022-07-14 08:39:54

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH] ASoC: dt-bindings: atmel-i2s: Convert to json-schema

On 13/07/2022 18:25, [email protected] wrote:
> From: Ryan Wanner <[email protected]>
>

Thank you for your patch. There is something to discuss/improve.

> Convert atmel i2s devicetree binding to json-schema.
> Change file name to match json-schema naming.
>
> Signed-off-by: Ryan Wanner <[email protected]>
> ---
> .../bindings/sound/atmel,sama5d2-i2s.yaml | 83 +++++++++++++++++++
> .../devicetree/bindings/sound/atmel-i2s.txt | 46 ----------
> 2 files changed, 83 insertions(+), 46 deletions(-)
> create mode 100644 Documentation/devicetree/bindings/sound/atmel,sama5d2-i2s.yaml
> delete mode 100644 Documentation/devicetree/bindings/sound/atmel-i2s.txt
>
> diff --git a/Documentation/devicetree/bindings/sound/atmel,sama5d2-i2s.yaml b/Documentation/devicetree/bindings/sound/atmel,sama5d2-i2s.yaml
> new file mode 100644
> index 000000000000..1cadc476565c
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/sound/atmel,sama5d2-i2s.yaml
> @@ -0,0 +1,83 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +# Copyright (C) 2022 Microchip Technology, Inc. and its subsidiaries
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/sound/atmel,sama5d2-i2s.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Atmel I2S controller
> +
> +maintainers:
> + - Nicolas Ferre <[email protected]>
> + - Alexandre Belloni <[email protected]>
> + - Claudiu Beznea <[email protected]>
> +
> +description:
> + Atmel I2S (Inter-IC Sound Controller) bus is the standard
> + interface for connecting audio devices, such as audio codecs.
> +
> +properties:
> + compatible:
> + const: atmel,sama5d2-i2s
> +
> + reg:
> + maxItems: 1
> +
> + interrupts:
> + maxItems: 1
> +
> + clocks:
> + description:
> + Only the peripheral clock (pclk) is required. The generated clock (gclk)
> + and the I2S mux clock (muxclk) are optional and should only be set together,
> + when Master Mode is required.

Skip property description, but list and describe the items.

> +
> + clock-names:
> + items:
> + - const: pclk
> + - const: gclk
> + - const: muxclk
> + minItems: 1
> +
> + dmas:
> + description:
> + Should be one per channel name listed in the dma-names property.
> + maxItems: 2

Instead items+description. The description you pasted is obvious and not
helping.

> +
> + dma-names:
> + items:
> + - const: tx
> + - const: rx
> +
Best regards,
Krzysztof