2022-07-06 11:12:18

by Kavyasree Kotagiri

[permalink] [raw]
Subject: [PATCH v7 1/3] dt-bindings: mfd: Convert atmel-flexcom to json-schema

Convert the Atmel flexcom device tree bindings to json schema.

Signed-off-by: Kavyasree Kotagiri <[email protected]>
---
v6 -> v7:
- Change filename to atmel,sama5d2-flexcom.yaml
- Add #address-cells, #size-cells to flexcom node - Fixed warnings.

v5 -> v6:
- Removed spi node from example as suggested by Rob and
also pattern properties(spi dt-bindings conversion to yaml patch is under review).
Once that is accepted, I will add back spi example through new patch.

v4 -> v5:
- Fixed indentations.

v3 -> v4:
- Corrected format of enum used for compatible string.

v2 -> v3:
- used enum for compatible string.
- changed irq flag to IRQ_TYPE_LEVEL_HIGH in example.
- fixed dtschema errors.

v1 -> v2:
- Fix title.

.../bindings/mfd/atmel,sama5d2-flexcom.yaml | 74 +++++++++++++++++++
.../devicetree/bindings/mfd/atmel-flexcom.txt | 63 ----------------
2 files changed, 74 insertions(+), 63 deletions(-)
create mode 100644 Documentation/devicetree/bindings/mfd/atmel,sama5d2-flexcom.yaml
delete mode 100644 Documentation/devicetree/bindings/mfd/atmel-flexcom.txt

diff --git a/Documentation/devicetree/bindings/mfd/atmel,sama5d2-flexcom.yaml b/Documentation/devicetree/bindings/mfd/atmel,sama5d2-flexcom.yaml
new file mode 100644
index 000000000000..864f490ffb83
--- /dev/null
+++ b/Documentation/devicetree/bindings/mfd/atmel,sama5d2-flexcom.yaml
@@ -0,0 +1,74 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/mfd/atmel,sama5d2-flexcom.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Atmel Flexcom (Flexible Serial Communication Unit)
+
+maintainers:
+ - Kavyasree Kotagiri <[email protected]>
+
+description:
+ The Atmel Flexcom is just a wrapper which embeds a SPI controller,
+ an I2C controller and an USART. Only one function can be used at a
+ time and is chosen at boot time according to the device tree.
+
+properties:
+ compatible:
+ enum:
+ - atmel,sama5d2-flexcom
+
+ reg:
+ maxItems: 1
+
+ clocks:
+ maxItems: 1
+
+ "#address-cells":
+ const: 1
+
+ "#size-cells":
+ const: 1
+
+ ranges:
+ description:
+ One range for the full I/O register region. (including USART,
+ TWI and SPI registers).
+ items:
+ maxItems: 3
+
+ atmel,flexcom-mode:
+ description: |
+ Specifies the flexcom mode as follows:
+ 1: USART
+ 2: SPI
+ 3: I2C.
+ $ref: /schemas/types.yaml#/definitions/uint32
+ enum: [1, 2, 3]
+
+required:
+ - compatible
+ - reg
+ - clocks
+ - "#address-cells"
+ - "#size-cells"
+ - ranges
+ - atmel,flexcom-mode
+
+additionalProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/interrupt-controller/arm-gic.h>
+
+ flx0: flexcom@f8034000 {
+ compatible = "atmel,sama5d2-flexcom";
+ reg = <0xf8034000 0x200>;
+ clocks = <&flx0_clk>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+ ranges = <0x0 0xf8034000 0x800>;
+ atmel,flexcom-mode = <2>;
+ };
+...
diff --git a/Documentation/devicetree/bindings/mfd/atmel-flexcom.txt b/Documentation/devicetree/bindings/mfd/atmel-flexcom.txt
deleted file mode 100644
index 9d837535637b..000000000000
--- a/Documentation/devicetree/bindings/mfd/atmel-flexcom.txt
+++ /dev/null
@@ -1,63 +0,0 @@
-* Device tree bindings for Atmel Flexcom (Flexible Serial Communication Unit)
-
-The Atmel Flexcom is just a wrapper which embeds a SPI controller, an I2C
-controller and an USART. Only one function can be used at a time and is chosen
-at boot time according to the device tree.
-
-Required properties:
-- compatible: Should be "atmel,sama5d2-flexcom"
-- reg: Should be the offset/length value for Flexcom dedicated
- I/O registers (without USART, TWI or SPI registers).
-- clocks: Should be the Flexcom peripheral clock from PMC.
-- #address-cells: Should be <1>
-- #size-cells: Should be <1>
-- ranges: Should be one range for the full I/O register region
- (including USART, TWI and SPI registers).
-- atmel,flexcom-mode: Should be one of the following values:
- - <1> for USART
- - <2> for SPI
- - <3> for I2C
-
-Required child:
-A single available child device of type matching the "atmel,flexcom-mode"
-property.
-
-The phandle provided by the clocks property of the child is the same as one for
-the Flexcom parent.
-
-For other properties, please refer to the documentations of the respective
-device:
-- ../serial/atmel-usart.txt
-- ../spi/spi_atmel.txt
-- ../i2c/i2c-at91.txt
-
-Example:
-
-flexcom@f8034000 {
- compatible = "atmel,sama5d2-flexcom";
- reg = <0xf8034000 0x200>;
- clocks = <&flx0_clk>;
- #address-cells = <1>;
- #size-cells = <1>;
- ranges = <0x0 0xf8034000 0x800>;
- atmel,flexcom-mode = <2>;
-
- spi@400 {
- compatible = "atmel,at91rm9200-spi";
- reg = <0x400 0x200>;
- interrupts = <19 IRQ_TYPE_LEVEL_HIGH 7>;
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_flx0_default>;
- #address-cells = <1>;
- #size-cells = <0>;
- clocks = <&flx0_clk>;
- clock-names = "spi_clk";
- atmel,fifo-size = <32>;
-
- flash@0 {
- compatible = "atmel,at25f512b";
- reg = <0>;
- spi-max-frequency = <20000000>;
- };
- };
-};
--
2.25.1


2022-07-06 14:15:41

by Rob Herring (Arm)

[permalink] [raw]
Subject: Re: [PATCH v7 1/3] dt-bindings: mfd: Convert atmel-flexcom to json-schema

On Wed, 06 Jul 2022 09:06:17 -0200, Kavyasree Kotagiri wrote:
> Convert the Atmel flexcom device tree bindings to json schema.
>
> Signed-off-by: Kavyasree Kotagiri <[email protected]>
> ---
> v6 -> v7:
> - Change filename to atmel,sama5d2-flexcom.yaml
> - Add #address-cells, #size-cells to flexcom node - Fixed warnings.
>
> v5 -> v6:
> - Removed spi node from example as suggested by Rob and
> also pattern properties(spi dt-bindings conversion to yaml patch is under review).
> Once that is accepted, I will add back spi example through new patch.
>
> v4 -> v5:
> - Fixed indentations.
>
> v3 -> v4:
> - Corrected format of enum used for compatible string.
>
> v2 -> v3:
> - used enum for compatible string.
> - changed irq flag to IRQ_TYPE_LEVEL_HIGH in example.
> - fixed dtschema errors.
>
> v1 -> v2:
> - Fix title.
>
> .../bindings/mfd/atmel,sama5d2-flexcom.yaml | 74 +++++++++++++++++++
> .../devicetree/bindings/mfd/atmel-flexcom.txt | 63 ----------------
> 2 files changed, 74 insertions(+), 63 deletions(-)
> create mode 100644 Documentation/devicetree/bindings/mfd/atmel,sama5d2-flexcom.yaml
> delete mode 100644 Documentation/devicetree/bindings/mfd/atmel-flexcom.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/


flexcom@e0040000: 'i2c@600', 'serial@200', 'spi@400' do not match any of the regexes: 'pinctrl-[0-9]+'
arch/arm/boot/dts/lan966x-kontron-kswitch-d10-mmt-6g-2gs.dtb
arch/arm/boot/dts/lan966x-kontron-kswitch-d10-mmt-8g.dtb
arch/arm/boot/dts/lan966x-pcb8291.dtb

flexcom@e0044000: 'i2c@600', 'serial@200', 'spi@400' do not match any of the regexes: 'pinctrl-[0-9]+'
arch/arm/boot/dts/lan966x-kontron-kswitch-d10-mmt-6g-2gs.dtb
arch/arm/boot/dts/lan966x-kontron-kswitch-d10-mmt-8g.dtb
arch/arm/boot/dts/lan966x-pcb8291.dtb

flexcom@e0060000: 'i2c@600', 'serial@200', 'spi@400' do not match any of the regexes: 'pinctrl-[0-9]+'
arch/arm/boot/dts/lan966x-kontron-kswitch-d10-mmt-6g-2gs.dtb
arch/arm/boot/dts/lan966x-kontron-kswitch-d10-mmt-8g.dtb
arch/arm/boot/dts/lan966x-pcb8291.dtb

flexcom@e0064000: 'i2c@600', 'serial@200', 'spi@400' do not match any of the regexes: 'pinctrl-[0-9]+'
arch/arm/boot/dts/lan966x-kontron-kswitch-d10-mmt-6g-2gs.dtb
arch/arm/boot/dts/lan966x-kontron-kswitch-d10-mmt-8g.dtb
arch/arm/boot/dts/lan966x-pcb8291.dtb

flexcom@e0070000: 'i2c@600', 'serial@200', 'spi@400' do not match any of the regexes: 'pinctrl-[0-9]+'
arch/arm/boot/dts/lan966x-kontron-kswitch-d10-mmt-6g-2gs.dtb
arch/arm/boot/dts/lan966x-kontron-kswitch-d10-mmt-8g.dtb
arch/arm/boot/dts/lan966x-pcb8291.dtb

flexcom@e1818000: 'serial@200' does not match any of the regexes: 'pinctrl-[0-9]+'
arch/arm/boot/dts/at91-sama7g5ek.dtb

flexcom@e181c000: 'i2c@600' does not match any of the regexes: 'pinctrl-[0-9]+'
arch/arm/boot/dts/at91-sama7g5ek.dtb

flexcom@e1824000: 'serial@200' does not match any of the regexes: 'pinctrl-[0-9]+'
arch/arm/boot/dts/at91-sama7g5ek.dtb

flexcom@e2018000: 'serial@200' does not match any of the regexes: 'pinctrl-[0-9]+'
arch/arm/boot/dts/at91-sama7g5ek.dtb

flexcom@e2024000: 'serial@200' does not match any of the regexes: 'pinctrl-[0-9]+'
arch/arm/boot/dts/at91-sama7g5ek.dtb

flexcom@e2818000: 'i2c@600' does not match any of the regexes: 'pinctrl-[0-9]+'
arch/arm/boot/dts/at91-sama7g5ek.dtb

flexcom@e281c000: 'i2c@600' does not match any of the regexes: 'pinctrl-[0-9]+'
arch/arm/boot/dts/at91-sama7g5ek.dtb

flexcom@e2824000: 'spi@400' does not match any of the regexes: 'pinctrl-[0-9]+'
arch/arm/boot/dts/at91-sama7g5ek.dtb

flexcom@f0000000: 'spi@400' does not match any of the regexes: 'pinctrl-[0-9]+'
arch/arm/boot/dts/at91-sam9x60ek.dtb

flexcom@f0004000: 'serial@200' does not match any of the regexes: 'pinctrl-[0-9]+'
arch/arm/boot/dts/at91-sam9x60ek.dtb

flexcom@f8010000: 'i2c@600' does not match any of the regexes: 'pinctrl-[0-9]+'
arch/arm/boot/dts/at91-sam9x60ek.dtb

flexcom@f801c000: 'i2c@600' does not match any of the regexes: 'pinctrl-[0-9]+'
arch/arm/boot/dts/at91-sam9x60ek.dtb

flexcom@f8034000: 'i2c@600', 'serial@200', 'spi@400' do 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

flexcom@f8038000: 'i2c@600', 'serial@200', 'spi@400' do 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

flexcom@fc010000: 'i2c@600', 'serial@200', 'spi@400' do 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

flexcom@fc014000: 'i2c@600', 'serial@200', 'spi@400' do 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

flexcom@fc018000: 'i2c@600', 'serial@200', 'spi@400' do 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-06 15:24:39

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH v7 1/3] dt-bindings: mfd: Convert atmel-flexcom to json-schema

On 06/07/2022 13:06, Kavyasree Kotagiri wrote:
> Convert the Atmel flexcom device tree bindings to json schema.
>
> Signed-off-by: Kavyasree Kotagiri <[email protected]>
> ---
> v6 -> v7:
> - Change filename to atmel,sama5d2-flexcom.yaml
> - Add #address-cells, #size-cells to flexcom node - Fixed warnings.
>
> v5 -> v6:
> - Removed spi node from example as suggested by Rob and
> also pattern properties(spi dt-bindings conversion to yaml patch is under review).
> Once that is accepted, I will add back spi example through new patch.
>
> v4 -> v5:
> - Fixed indentations.
>
> v3 -> v4:
> - Corrected format of enum used for compatible string.
>
> v2 -> v3:
> - used enum for compatible string.
> - changed irq flag to IRQ_TYPE_LEVEL_HIGH in example.
> - fixed dtschema errors.
>
> v1 -> v2:
> - Fix title.
>
> .../bindings/mfd/atmel,sama5d2-flexcom.yaml | 74 +++++++++++++++++++
> .../devicetree/bindings/mfd/atmel-flexcom.txt | 63 ----------------
> 2 files changed, 74 insertions(+), 63 deletions(-)
> create mode 100644 Documentation/devicetree/bindings/mfd/atmel,sama5d2-flexcom.yaml
> delete mode 100644 Documentation/devicetree/bindings/mfd/atmel-flexcom.txt
>
> diff --git a/Documentation/devicetree/bindings/mfd/atmel,sama5d2-flexcom.yaml b/Documentation/devicetree/bindings/mfd/atmel,sama5d2-flexcom.yaml
> new file mode 100644
> index 000000000000..864f490ffb83
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/mfd/atmel,sama5d2-flexcom.yaml
> @@ -0,0 +1,74 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/mfd/atmel,sama5d2-flexcom.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Atmel Flexcom (Flexible Serial Communication Unit)
> +
> +maintainers:
> + - Kavyasree Kotagiri <[email protected]>
> +
> +description:
> + The Atmel Flexcom is just a wrapper which embeds a SPI controller,
> + an I2C controller and an USART. Only one function can be used at a
> + time and is chosen at boot time according to the device tree.
> +
> +properties:
> + compatible:
> + enum:
> + - atmel,sama5d2-flexcom
> +
> + reg:
> + maxItems: 1
> +
> + clocks:
> + maxItems: 1
> +
> + "#address-cells":
> + const: 1
> +
> + "#size-cells":
> + const: 1
> +
> + ranges:
> + description:
> + One range for the full I/O register region. (including USART,
> + TWI and SPI registers).
> + items:
> + maxItems: 3
> +
> + atmel,flexcom-mode:
> + description: |
> + Specifies the flexcom mode as follows:
> + 1: USART
> + 2: SPI
> + 3: I2C.
> + $ref: /schemas/types.yaml#/definitions/uint32
> + enum: [1, 2, 3]
> +

As pointed out by Rob's bot - why do you not allow the protocol-specific
children here? spi, serial etc?


Best regards,
Krzysztof

2022-07-07 05:34:04

by Kavyasree Kotagiri

[permalink] [raw]
Subject: RE: [PATCH v7 1/3] dt-bindings: mfd: Convert atmel-flexcom to json-schema

> > Convert the Atmel flexcom device tree bindings to json schema.
> >
> > Signed-off-by: Kavyasree Kotagiri <[email protected]>
> > ---
> > v6 -> v7:
> > - Change filename to atmel,sama5d2-flexcom.yaml
> > - Add #address-cells, #size-cells to flexcom node - Fixed warnings.
> >
> > v5 -> v6:
> > - Removed spi node from example as suggested by Rob and
> > also pattern properties(spi dt-bindings conversion to yaml patch is under
> review).
> > Once that is accepted, I will add back spi example through new patch.
> >
> > v4 -> v5:
> > - Fixed indentations.
> >
> > v3 -> v4:
> > - Corrected format of enum used for compatible string.
> >
> > v2 -> v3:
> > - used enum for compatible string.
> > - changed irq flag to IRQ_TYPE_LEVEL_HIGH in example.
> > - fixed dtschema errors.
> >
> > v1 -> v2:
> > - Fix title.
> >
> > .../bindings/mfd/atmel,sama5d2-flexcom.yaml | 74
> +++++++++++++++++++
> > .../devicetree/bindings/mfd/atmel-flexcom.txt | 63 ----------------
> > 2 files changed, 74 insertions(+), 63 deletions(-)
> > create mode 100644
> Documentation/devicetree/bindings/mfd/atmel,sama5d2-flexcom.yaml
> > delete mode 100644 Documentation/devicetree/bindings/mfd/atmel-
> flexcom.txt
> >
> > diff --git a/Documentation/devicetree/bindings/mfd/atmel,sama5d2-
> flexcom.yaml b/Documentation/devicetree/bindings/mfd/atmel,sama5d2-
> flexcom.yaml
> > new file mode 100644
> > index 000000000000..864f490ffb83
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/mfd/atmel,sama5d2-
> flexcom.yaml
> > @@ -0,0 +1,74 @@
> > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> > +%YAML 1.2
> > +---
> > +$id: http://devicetree.org/schemas/mfd/atmel,sama5d2-flexcom.yaml#
> > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > +
> > +title: Atmel Flexcom (Flexible Serial Communication Unit)
> > +
> > +maintainers:
> > + - Kavyasree Kotagiri <[email protected]>
> > +
> > +description:
> > + The Atmel Flexcom is just a wrapper which embeds a SPI controller,
> > + an I2C controller and an USART. Only one function can be used at a
> > + time and is chosen at boot time according to the device tree.
> > +
> > +properties:
> > + compatible:
> > + enum:
> > + - atmel,sama5d2-flexcom
> > +
> > + reg:
> > + maxItems: 1
> > +
> > + clocks:
> > + maxItems: 1
> > +
> > + "#address-cells":
> > + const: 1
> > +
> > + "#size-cells":
> > + const: 1
> > +
> > + ranges:
> > + description:
> > + One range for the full I/O register region. (including USART,
> > + TWI and SPI registers).
> > + items:
> > + maxItems: 3
> > +
> > + atmel,flexcom-mode:
> > + description: |
> > + Specifies the flexcom mode as follows:
> > + 1: USART
> > + 2: SPI
> > + 3: I2C.
> > + $ref: /schemas/types.yaml#/definitions/uint32
> > + enum: [1, 2, 3]
> > +
>
> As pointed out by Rob's bot - why do you not allow the protocol-specific
> children here? spi, serial etc?
>
usart/serial, spi and i2c dt-bindings are in .txt format. So, I cannot refer them here. Like I mentioned in v5 -> v6 changes description, spi dt-bindings conversion is under discussion. For now, I am removing child nodes from example. I will add it through new patch once below bindings are accepted:
https://patchwork.kernel.org/project/linux-arm-kernel/patch/[email protected]/

>
> Best regards,
> Krzysztof

2022-07-07 06:48:02

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH v7 1/3] dt-bindings: mfd: Convert atmel-flexcom to json-schema

On 07/07/2022 07:29, [email protected] wrote:
>>> Convert the Atmel flexcom device tree bindings to json schema.
>>>
>>> Signed-off-by: Kavyasree Kotagiri <[email protected]>
>>> ---
>>> v6 -> v7:
>>> - Change filename to atmel,sama5d2-flexcom.yaml
>>> - Add #address-cells, #size-cells to flexcom node - Fixed warnings.
>>>
>>> v5 -> v6:
>>> - Removed spi node from example as suggested by Rob and
>>> also pattern properties(spi dt-bindings conversion to yaml patch is under
>> review).
>>> Once that is accepted, I will add back spi example through new patch.
>>>
>>> v4 -> v5:
>>> - Fixed indentations.
>>>
>>> v3 -> v4:
>>> - Corrected format of enum used for compatible string.
>>>
>>> v2 -> v3:
>>> - used enum for compatible string.
>>> - changed irq flag to IRQ_TYPE_LEVEL_HIGH in example.
>>> - fixed dtschema errors.
>>>
>>> v1 -> v2:
>>> - Fix title.
>>>
>>> .../bindings/mfd/atmel,sama5d2-flexcom.yaml | 74
>> +++++++++++++++++++
>>> .../devicetree/bindings/mfd/atmel-flexcom.txt | 63 ----------------
>>> 2 files changed, 74 insertions(+), 63 deletions(-)
>>> create mode 100644
>> Documentation/devicetree/bindings/mfd/atmel,sama5d2-flexcom.yaml
>>> delete mode 100644 Documentation/devicetree/bindings/mfd/atmel-
>> flexcom.txt
>>>
>>> diff --git a/Documentation/devicetree/bindings/mfd/atmel,sama5d2-
>> flexcom.yaml b/Documentation/devicetree/bindings/mfd/atmel,sama5d2-
>> flexcom.yaml
>>> new file mode 100644
>>> index 000000000000..864f490ffb83
>>> --- /dev/null
>>> +++ b/Documentation/devicetree/bindings/mfd/atmel,sama5d2-
>> flexcom.yaml
>>> @@ -0,0 +1,74 @@
>>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
>>> +%YAML 1.2
>>> +---
>>> +$id: http://devicetree.org/schemas/mfd/atmel,sama5d2-flexcom.yaml#
>>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>>> +
>>> +title: Atmel Flexcom (Flexible Serial Communication Unit)
>>> +
>>> +maintainers:
>>> + - Kavyasree Kotagiri <[email protected]>
>>> +
>>> +description:
>>> + The Atmel Flexcom is just a wrapper which embeds a SPI controller,
>>> + an I2C controller and an USART. Only one function can be used at a
>>> + time and is chosen at boot time according to the device tree.
>>> +
>>> +properties:
>>> + compatible:
>>> + enum:
>>> + - atmel,sama5d2-flexcom
>>> +
>>> + reg:
>>> + maxItems: 1
>>> +
>>> + clocks:
>>> + maxItems: 1
>>> +
>>> + "#address-cells":
>>> + const: 1
>>> +
>>> + "#size-cells":
>>> + const: 1
>>> +
>>> + ranges:
>>> + description:
>>> + One range for the full I/O register region. (including USART,
>>> + TWI and SPI registers).
>>> + items:
>>> + maxItems: 3
>>> +
>>> + atmel,flexcom-mode:
>>> + description: |
>>> + Specifies the flexcom mode as follows:
>>> + 1: USART
>>> + 2: SPI
>>> + 3: I2C.
>>> + $ref: /schemas/types.yaml#/definitions/uint32
>>> + enum: [1, 2, 3]
>>> +
>>
>> As pointed out by Rob's bot - why do you not allow the protocol-specific
>> children here? spi, serial etc?
>>
> usart/serial, spi and i2c dt-bindings are in .txt format. So, I cannot refer them here. Like I mentioned in v5 -> v6 changes description, spi dt-bindings conversion is under discussion. For now, I am removing child nodes from example. I will add it through new patch once below bindings are accepted:
> https://patchwork.kernel.org/project/linux-arm-kernel/patch/[email protected]/

No one talks about example. Your schema does not allow any child nodes
now, which is not correct. You must describe these children - even if
their schema is not ready. In such case just type:object, description
and maybe compatibles.

I don't understand why you cannot refer to them here.

Best regards,
Krzysztof

2022-07-07 06:58:50

by Kavyasree Kotagiri

[permalink] [raw]
Subject: RE: [PATCH v7 1/3] dt-bindings: mfd: Convert atmel-flexcom to json-schema

> > > Convert the Atmel flexcom device tree bindings to json schema.
> > >
> > > Signed-off-by: Kavyasree Kotagiri <[email protected]>
> > > ---
> > > v6 -> v7:
> > > - Change filename to atmel,sama5d2-flexcom.yaml
> > > - Add #address-cells, #size-cells to flexcom node - Fixed warnings.
> > >
> > > v5 -> v6:
> > > - Removed spi node from example as suggested by Rob and
> > > also pattern properties(spi dt-bindings conversion to yaml patch is
> under
> > review).
> > > Once that is accepted, I will add back spi example through new patch.
> > >
> > > v4 -> v5:
> > > - Fixed indentations.
> > >
> > > v3 -> v4:
> > > - Corrected format of enum used for compatible string.
> > >
> > > v2 -> v3:
> > > - used enum for compatible string.
> > > - changed irq flag to IRQ_TYPE_LEVEL_HIGH in example.
> > > - fixed dtschema errors.
> > >
> > > v1 -> v2:
> > > - Fix title.
> > >
> > > .../bindings/mfd/atmel,sama5d2-flexcom.yaml | 74
> > +++++++++++++++++++
> > > .../devicetree/bindings/mfd/atmel-flexcom.txt | 63 ----------------
> > > 2 files changed, 74 insertions(+), 63 deletions(-)
> > > create mode 100644
> > Documentation/devicetree/bindings/mfd/atmel,sama5d2-flexcom.yaml
> > > delete mode 100644 Documentation/devicetree/bindings/mfd/atmel-
> > flexcom.txt
> > >
> > > diff --git a/Documentation/devicetree/bindings/mfd/atmel,sama5d2-
> > flexcom.yaml b/Documentation/devicetree/bindings/mfd/atmel,sama5d2-
> > flexcom.yaml
> > > new file mode 100644
> > > index 000000000000..864f490ffb83
> > > --- /dev/null
> > > +++ b/Documentation/devicetree/bindings/mfd/atmel,sama5d2-
> > flexcom.yaml
> > > @@ -0,0 +1,74 @@
> > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> > > +%YAML 1.2
> > > +---
> > > +$id: http://devicetree.org/schemas/mfd/atmel,sama5d2-flexcom.yaml#
> > > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > > +
> > > +title: Atmel Flexcom (Flexible Serial Communication Unit)
> > > +
> > > +maintainers:
> > > + - Kavyasree Kotagiri <[email protected]>
> > > +
> > > +description:
> > > + The Atmel Flexcom is just a wrapper which embeds a SPI controller,
> > > + an I2C controller and an USART. Only one function can be used at a
> > > + time and is chosen at boot time according to the device tree.
> > > +
> > > +properties:
> > > + compatible:
> > > + enum:
> > > + - atmel,sama5d2-flexcom
> > > +
> > > + reg:
> > > + maxItems: 1
> > > +
> > > + clocks:
> > > + maxItems: 1
> > > +
> > > + "#address-cells":
> > > + const: 1
> > > +
> > > + "#size-cells":
> > > + const: 1
> > > +
> > > + ranges:
> > > + description:
> > > + One range for the full I/O register region. (including USART,
> > > + TWI and SPI registers).
> > > + items:
> > > + maxItems: 3
> > > +
> > > + atmel,flexcom-mode:
> > > + description: |
> > > + Specifies the flexcom mode as follows:
> > > + 1: USART
> > > + 2: SPI
> > > + 3: I2C.
> > > + $ref: /schemas/types.yaml#/definitions/uint32
> > > + enum: [1, 2, 3]
> > > +
> >
> > As pointed out by Rob's bot - why do you not allow the protocol-specific
> > children here? spi, serial etc?
> >
> usart/serial, spi and i2c dt-bindings are in .txt format. So, I cannot refer them
> here. Like I mentioned in v5 -> v6 changes description, spi dt-bindings
> conversion is under discussion. For now, I am removing child nodes from
> example. I will add it through new patch once below bindings are accepted:
> https://patchwork.kernel.org/project/linux-arm-
> kernel/patch/[email protected]/
>
Could you please tell if child nodes can be added as below?
-----------
+patternProperties:
+ "^serial@[0-9a-f]+$":
+ description: See atmel-usart.txt for details of USART bindings.
+ type: object
+
+ "^spi@[0-9a-f]+$":
+ description: See ../spi/spi_atmel.txt for details of SPI bindings.
+ type: object
+
+ "^i2c@[0-9a-f]+$":
+ description: See ../i2c/i2c-at91.txt for details of I2C bindings.
+ type: object
-------------

> >
> > Best regards,
> > Krzysztof

2022-07-07 07:00:01

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH v7 1/3] dt-bindings: mfd: Convert atmel-flexcom to json-schema

On 07/07/2022 08:54, [email protected] wrote:
> Could you please tell if child nodes can be added as below?
> -----------
> +patternProperties:
> + "^serial@[0-9a-f]+$":
> + description: See atmel-usart.txt for details of USART bindings.
> + type: object
> +
> + "^spi@[0-9a-f]+$":
> + description: See ../spi/spi_atmel.txt for details of SPI bindings.
> + type: object
> +
> + "^i2c@[0-9a-f]+$":
> + description: See ../i2c/i2c-at91.txt for details of I2C bindings.
> + type: object

Yes, this is good.

Best regards,
Krzysztof