2021-06-08 05:22:04

by Aswath Govindraju

[permalink] [raw]
Subject: [PATCH v2] dt-bindings: spi: omap-spi: Convert to json-schema

Convert omap-spi dt-binding documentation from txt to yaml format.

Signed-off-by: Aswath Govindraju <[email protected]>
---

changes since v1:
- split the series according to their respective trees

link to v1:
https://lore.kernel.org/patchwork/project/lkml/list/?series=502255

.../devicetree/bindings/spi/omap-spi.txt | 48 -------
.../devicetree/bindings/spi/omap-spi.yaml | 126 ++++++++++++++++++
2 files changed, 126 insertions(+), 48 deletions(-)
delete mode 100644 Documentation/devicetree/bindings/spi/omap-spi.txt
create mode 100644 Documentation/devicetree/bindings/spi/omap-spi.yaml

diff --git a/Documentation/devicetree/bindings/spi/omap-spi.txt b/Documentation/devicetree/bindings/spi/omap-spi.txt
deleted file mode 100644
index 487208c256c0..000000000000
--- a/Documentation/devicetree/bindings/spi/omap-spi.txt
+++ /dev/null
@@ -1,48 +0,0 @@
-OMAP2+ McSPI device
-
-Required properties:
-- compatible :
- - "ti,am654-mcspi" for AM654.
- - "ti,omap2-mcspi" for OMAP2 & OMAP3.
- - "ti,omap4-mcspi" for OMAP4+.
-- ti,spi-num-cs : Number of chipselect supported by the instance.
-- ti,hwmods: Name of the hwmod associated to the McSPI
-- ti,pindir-d0-out-d1-in: Select the D0 pin as output and D1 as
- input. The default is D0 as input and
- D1 as output.
-
-Optional properties:
-- dmas: List of DMA specifiers with the controller specific format
- as described in the generic DMA client binding. A tx and rx
- specifier is required for each chip select.
-- dma-names: List of DMA request names. These strings correspond
- 1:1 with the DMA specifiers listed in dmas. The string naming
- is to be "rxN" and "txN" for RX and TX requests,
- respectively, where N equals the chip select number.
-
-Examples:
-
-[hwmod populated DMA resources]
-
-mcspi1: mcspi@1 {
- #address-cells = <1>;
- #size-cells = <0>;
- compatible = "ti,omap4-mcspi";
- ti,hwmods = "mcspi1";
- ti,spi-num-cs = <4>;
-};
-
-[generic DMA request binding]
-
-mcspi1: mcspi@1 {
- #address-cells = <1>;
- #size-cells = <0>;
- compatible = "ti,omap4-mcspi";
- ti,hwmods = "mcspi1";
- ti,spi-num-cs = <2>;
- dmas = <&edma 42
- &edma 43
- &edma 44
- &edma 45>;
- dma-names = "tx0", "rx0", "tx1", "rx1";
-};
diff --git a/Documentation/devicetree/bindings/spi/omap-spi.yaml b/Documentation/devicetree/bindings/spi/omap-spi.yaml
new file mode 100644
index 000000000000..cd20704f2edc
--- /dev/null
+++ b/Documentation/devicetree/bindings/spi/omap-spi.yaml
@@ -0,0 +1,126 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/spi/omap-spi.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: SPI controller bindings for OMAP and K3 SoCs
+
+maintainers:
+ - Mark Brown <[email protected]>
+
+properties:
+ compatible:
+ oneOf:
+ - items:
+ - enum:
+ - ti,am654-mcspi
+ - ti,am4372-mcspi
+ - const: ti,omap4-mcspi
+ - items:
+ - enum:
+ - ti,omap2-mcspi
+ - ti,omap4-mcspi
+
+ reg:
+ maxItems: 1
+
+ interrupts:
+ maxItems: 1
+
+ clocks:
+ maxItems: 1
+
+ '#address-cells':
+ const: 1
+
+ '#size-cells':
+ const: 0
+
+ power-domains:
+ maxItems: 1
+
+ ti,spi-num-cs:
+ $ref: /schemas/types.yaml#/definitions/uint32
+ description: Number of chipselect supported by the instance.
+ minimum: 1
+ maximum: 4
+
+ ti,hwmods:
+ $ref: /schemas/types.yaml#/definitions/string
+ description:
+ Must be "mcspi<n>", n being the instance number (1-based).
+ This property is applicable only on legacy platforms mainly omap2/3
+ and ti81xx and should not be used on other platforms.
+ deprecated: true
+
+ ti,pindir-d0-out-d1-in:
+ description:
+ Select the D0 pin as output and D1 as input. The default is D0
+ as input and D1 as output.
+ type: boolean
+
+ dmas:
+ description:
+ List of DMA specifiers with the controller specific format as
+ described in the generic DMA client binding. A tx and rx
+ specifier is required for each chip select.
+ minItems: 1
+ maxItems: 8
+
+ dma-names:
+ description:
+ List of DMA request names. These strings correspond 1:1 with
+ the DMA sepecifiers listed in dmas. The string names is to be
+ "rxN" and "txN" for RX and TX requests, respectively. Where N
+ is the chip select number.
+ minItems: 1
+ maxItems: 8
+
+patternProperties:
+ "@[0-9a-f]+$":
+ type: object
+ description:
+ Flash devices are defined as a sub-node of the spi controller
+
+required:
+ - compatible
+ - reg
+ - interrupts
+
+additionalProperties: false
+
+if:
+ properties:
+ compatible:
+ oneOf:
+ - const: ti,omap2-mcspi
+ - const: ti,omap4-mcspi
+
+then:
+ properties:
+ ti,hwmods:
+ items:
+ - pattern: "^mcspi([1-9])$"
+
+else:
+ properties:
+ ti,hwmods: false
+
+examples:
+ - |
+ #include <dt-bindings/interrupt-controller/irq.h>
+ #include <dt-bindings/interrupt-controller/arm-gic.h>
+ #include <dt-bindings/soc/ti,sci_pm_domain.h>
+
+ main_spi0: spi@2100000 {
+ compatible = "ti,am654-mcspi","ti,omap4-mcspi";
+ reg = <0x2100000 0x400>;
+ interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&k3_clks 137 1>;
+ power-domains = <&k3_pds 137 TI_SCI_PD_EXCLUSIVE>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ dmas = <&main_udmap 0xc500>, <&main_udmap 0x4500>;
+ dma-names = "tx0", "rx0";
+ };
--
2.17.1


2021-06-19 04:05:33

by Rob Herring (Arm)

[permalink] [raw]
Subject: Re: [PATCH v2] dt-bindings: spi: omap-spi: Convert to json-schema

On Tue, Jun 08, 2021 at 10:50:09AM +0530, Aswath Govindraju wrote:
> Convert omap-spi dt-binding documentation from txt to yaml format.
>
> Signed-off-by: Aswath Govindraju <[email protected]>
> ---
>
> changes since v1:
> - split the series according to their respective trees
>
> link to v1:
> https://lore.kernel.org/patchwork/project/lkml/list/?series=502255
>
> .../devicetree/bindings/spi/omap-spi.txt | 48 -------
> .../devicetree/bindings/spi/omap-spi.yaml | 126 ++++++++++++++++++
> 2 files changed, 126 insertions(+), 48 deletions(-)
> delete mode 100644 Documentation/devicetree/bindings/spi/omap-spi.txt
> create mode 100644 Documentation/devicetree/bindings/spi/omap-spi.yaml
>
> diff --git a/Documentation/devicetree/bindings/spi/omap-spi.txt b/Documentation/devicetree/bindings/spi/omap-spi.txt
> deleted file mode 100644
> index 487208c256c0..000000000000
> --- a/Documentation/devicetree/bindings/spi/omap-spi.txt
> +++ /dev/null
> @@ -1,48 +0,0 @@
> -OMAP2+ McSPI device
> -
> -Required properties:
> -- compatible :
> - - "ti,am654-mcspi" for AM654.
> - - "ti,omap2-mcspi" for OMAP2 & OMAP3.
> - - "ti,omap4-mcspi" for OMAP4+.
> -- ti,spi-num-cs : Number of chipselect supported by the instance.
> -- ti,hwmods: Name of the hwmod associated to the McSPI
> -- ti,pindir-d0-out-d1-in: Select the D0 pin as output and D1 as
> - input. The default is D0 as input and
> - D1 as output.
> -
> -Optional properties:
> -- dmas: List of DMA specifiers with the controller specific format
> - as described in the generic DMA client binding. A tx and rx
> - specifier is required for each chip select.
> -- dma-names: List of DMA request names. These strings correspond
> - 1:1 with the DMA specifiers listed in dmas. The string naming
> - is to be "rxN" and "txN" for RX and TX requests,
> - respectively, where N equals the chip select number.
> -
> -Examples:
> -
> -[hwmod populated DMA resources]
> -
> -mcspi1: mcspi@1 {
> - #address-cells = <1>;
> - #size-cells = <0>;
> - compatible = "ti,omap4-mcspi";
> - ti,hwmods = "mcspi1";
> - ti,spi-num-cs = <4>;
> -};
> -
> -[generic DMA request binding]
> -
> -mcspi1: mcspi@1 {
> - #address-cells = <1>;
> - #size-cells = <0>;
> - compatible = "ti,omap4-mcspi";
> - ti,hwmods = "mcspi1";
> - ti,spi-num-cs = <2>;
> - dmas = <&edma 42
> - &edma 43
> - &edma 44
> - &edma 45>;
> - dma-names = "tx0", "rx0", "tx1", "rx1";
> -};
> diff --git a/Documentation/devicetree/bindings/spi/omap-spi.yaml b/Documentation/devicetree/bindings/spi/omap-spi.yaml
> new file mode 100644
> index 000000000000..cd20704f2edc
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/spi/omap-spi.yaml
> @@ -0,0 +1,126 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/spi/omap-spi.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: SPI controller bindings for OMAP and K3 SoCs
> +
> +maintainers:
> + - Mark Brown <[email protected]>

A TI person here please.

You need a ref to spi-controller.yaml

> +
> +properties:
> + compatible:
> + oneOf:
> + - items:
> + - enum:
> + - ti,am654-mcspi
> + - ti,am4372-mcspi
> + - const: ti,omap4-mcspi
> + - items:
> + - enum:
> + - ti,omap2-mcspi
> + - ti,omap4-mcspi
> +
> + reg:
> + maxItems: 1
> +
> + interrupts:
> + maxItems: 1
> +
> + clocks:
> + maxItems: 1
> +

> + '#address-cells':
> + const: 1
> +
> + '#size-cells':
> + const: 0

Don't need these, covered by spi-controller.yaml.

> +
> + power-domains:
> + maxItems: 1
> +
> + ti,spi-num-cs:
> + $ref: /schemas/types.yaml#/definitions/uint32
> + description: Number of chipselect supported by the instance.
> + minimum: 1
> + maximum: 4
> +
> + ti,hwmods:
> + $ref: /schemas/types.yaml#/definitions/string
> + description:
> + Must be "mcspi<n>", n being the instance number (1-based).
> + This property is applicable only on legacy platforms mainly omap2/3
> + and ti81xx and should not be used on other platforms.
> + deprecated: true
> +
> + ti,pindir-d0-out-d1-in:
> + description:
> + Select the D0 pin as output and D1 as input. The default is D0
> + as input and D1 as output.
> + type: boolean
> +
> + dmas:
> + description:
> + List of DMA specifiers with the controller specific format as
> + described in the generic DMA client binding. A tx and rx
> + specifier is required for each chip select.
> + minItems: 1
> + maxItems: 8
> +
> + dma-names:
> + description:
> + List of DMA request names. These strings correspond 1:1 with
> + the DMA sepecifiers listed in dmas. The string names is to be
> + "rxN" and "txN" for RX and TX requests, respectively. Where N
> + is the chip select number.
> + minItems: 1
> + maxItems: 8
> +
> +patternProperties:
> + "@[0-9a-f]+$":
> + type: object
> + description:
> + Flash devices are defined as a sub-node of the spi controller

Covered by spi-controller.yaml.

> +
> +required:
> + - compatible
> + - reg
> + - interrupts
> +
> +additionalProperties: false
> +
> +if:
> + properties:
> + compatible:
> + oneOf:
> + - const: ti,omap2-mcspi
> + - const: ti,omap4-mcspi
> +
> +then:
> + properties:
> + ti,hwmods:
> + items:
> + - pattern: "^mcspi([1-9])$"
> +
> +else:
> + properties:
> + ti,hwmods: false
> +
> +examples:
> + - |
> + #include <dt-bindings/interrupt-controller/irq.h>
> + #include <dt-bindings/interrupt-controller/arm-gic.h>
> + #include <dt-bindings/soc/ti,sci_pm_domain.h>
> +
> + main_spi0: spi@2100000 {

Drop unused labels.

> + compatible = "ti,am654-mcspi","ti,omap4-mcspi";
> + reg = <0x2100000 0x400>;
> + interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
> + clocks = <&k3_clks 137 1>;
> + power-domains = <&k3_pds 137 TI_SCI_PD_EXCLUSIVE>;
> + #address-cells = <1>;
> + #size-cells = <0>;
> + dmas = <&main_udmap 0xc500>, <&main_udmap 0x4500>;
> + dma-names = "tx0", "rx0";
> + };
> --
> 2.17.1
>
>

2021-06-21 09:35:47

by Aswath Govindraju

[permalink] [raw]
Subject: Re: [PATCH v2] dt-bindings: spi: omap-spi: Convert to json-schema

Hi Rob,

On 19/06/21 2:15 am, Rob Herring wrote:
> On Tue, Jun 08, 2021 at 10:50:09AM +0530, Aswath Govindraju wrote:
>> Convert omap-spi dt-binding documentation from txt to yaml format.
>>
>> Signed-off-by: Aswath Govindraju <[email protected]>
>> ---
>>
>> changes since v1:
>> - split the series according to their respective trees
>>
>> link to v1:
>> https://lore.kernel.org/patchwork/project/lkml/list/?series=502255
>>
>> .../devicetree/bindings/spi/omap-spi.txt | 48 -------
>> .../devicetree/bindings/spi/omap-spi.yaml | 126 ++++++++++++++++++
>> 2 files changed, 126 insertions(+), 48 deletions(-)
>> delete mode 100644 Documentation/devicetree/bindings/spi/omap-spi.txt
>> create mode 100644 Documentation/devicetree/bindings/spi/omap-spi.yaml
>>
>> diff --git a/Documentation/devicetree/bindings/spi/omap-spi.txt b/Documentation/devicetree/bindings/spi/omap-spi.txt
>> deleted file mode 100644
>> index 487208c256c0..000000000000
>> --- a/Documentation/devicetree/bindings/spi/omap-spi.txt
>> +++ /dev/null
>> @@ -1,48 +0,0 @@
>> -OMAP2+ McSPI device
>> -
>> -Required properties:
>> -- compatible :
>> - - "ti,am654-mcspi" for AM654.
>> - - "ti,omap2-mcspi" for OMAP2 & OMAP3.
>> - - "ti,omap4-mcspi" for OMAP4+.
>> -- ti,spi-num-cs : Number of chipselect supported by the instance.
>> -- ti,hwmods: Name of the hwmod associated to the McSPI
>> -- ti,pindir-d0-out-d1-in: Select the D0 pin as output and D1 as
>> - input. The default is D0 as input and
>> - D1 as output.
>> -
>> -Optional properties:
>> -- dmas: List of DMA specifiers with the controller specific format
>> - as described in the generic DMA client binding. A tx and rx
>> - specifier is required for each chip select.
>> -- dma-names: List of DMA request names. These strings correspond
>> - 1:1 with the DMA specifiers listed in dmas. The string naming
>> - is to be "rxN" and "txN" for RX and TX requests,
>> - respectively, where N equals the chip select number.
>> -
>> -Examples:
>> -
>> -[hwmod populated DMA resources]
>> -
>> -mcspi1: mcspi@1 {
>> - #address-cells = <1>;
>> - #size-cells = <0>;
>> - compatible = "ti,omap4-mcspi";
>> - ti,hwmods = "mcspi1";
>> - ti,spi-num-cs = <4>;
>> -};
>> -
>> -[generic DMA request binding]
>> -
>> -mcspi1: mcspi@1 {
>> - #address-cells = <1>;
>> - #size-cells = <0>;
>> - compatible = "ti,omap4-mcspi";
>> - ti,hwmods = "mcspi1";
>> - ti,spi-num-cs = <2>;
>> - dmas = <&edma 42
>> - &edma 43
>> - &edma 44
>> - &edma 45>;
>> - dma-names = "tx0", "rx0", "tx1", "rx1";
>> -};
>> diff --git a/Documentation/devicetree/bindings/spi/omap-spi.yaml b/Documentation/devicetree/bindings/spi/omap-spi.yaml
>> new file mode 100644
>> index 000000000000..cd20704f2edc
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/spi/omap-spi.yaml
>> @@ -0,0 +1,126 @@
>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
>> +%YAML 1.2
>> +---
>> +$id: http://devicetree.org/schemas/spi/omap-spi.yaml#
>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>> +
>> +title: SPI controller bindings for OMAP and K3 SoCs
>> +
>> +maintainers:
>> + - Mark Brown <[email protected]>
>
> A TI person here please.
>

Added myself as the reviewer in v3.

Thank you for the review and comments. I have posted a respin(v3) of
this patch after addressing all the comments.

Thanks,
Aswath

> You need a ref to spi-controller.yaml
>
>> +
>> +properties:
>> + compatible:
>> + oneOf:
>> + - items:
>> + - enum:
>> + - ti,am654-mcspi
>> + - ti,am4372-mcspi
>> + - const: ti,omap4-mcspi
>> + - items:
>> + - enum:
>> + - ti,omap2-mcspi
>> + - ti,omap4-mcspi
>> +
>> + reg:
>> + maxItems: 1
>> +
>> + interrupts:
>> + maxItems: 1
>> +
>> + clocks:
>> + maxItems: 1
>> +
>
>> + '#address-cells':
>> + const: 1
>> +
>> + '#size-cells':
>> + const: 0
>
> Don't need these, covered by spi-controller.yaml.
>
>> +
>> + power-domains:
>> + maxItems: 1
>> +
>> + ti,spi-num-cs:
>> + $ref: /schemas/types.yaml#/definitions/uint32
>> + description: Number of chipselect supported by the instance.
>> + minimum: 1
>> + maximum: 4
>> +
>> + ti,hwmods:
>> + $ref: /schemas/types.yaml#/definitions/string
>> + description:
>> + Must be "mcspi<n>", n being the instance number (1-based).
>> + This property is applicable only on legacy platforms mainly omap2/3
>> + and ti81xx and should not be used on other platforms.
>> + deprecated: true
>> +
>> + ti,pindir-d0-out-d1-in:
>> + description:
>> + Select the D0 pin as output and D1 as input. The default is D0
>> + as input and D1 as output.
>> + type: boolean
>> +
>> + dmas:
>> + description:
>> + List of DMA specifiers with the controller specific format as
>> + described in the generic DMA client binding. A tx and rx
>> + specifier is required for each chip select.
>> + minItems: 1
>> + maxItems: 8
>> +
>> + dma-names:
>> + description:
>> + List of DMA request names. These strings correspond 1:1 with
>> + the DMA sepecifiers listed in dmas. The string names is to be
>> + "rxN" and "txN" for RX and TX requests, respectively. Where N
>> + is the chip select number.
>> + minItems: 1
>> + maxItems: 8
>> +
>> +patternProperties:
>> + "@[0-9a-f]+$":
>> + type: object
>> + description:
>> + Flash devices are defined as a sub-node of the spi controller
>
> Covered by spi-controller.yaml.
>
>> +
>> +required:
>> + - compatible
>> + - reg
>> + - interrupts
>> +
>> +additionalProperties: false
>> +
>> +if:
>> + properties:
>> + compatible:
>> + oneOf:
>> + - const: ti,omap2-mcspi
>> + - const: ti,omap4-mcspi
>> +
>> +then:
>> + properties:
>> + ti,hwmods:
>> + items:
>> + - pattern: "^mcspi([1-9])$"
>> +
>> +else:
>> + properties:
>> + ti,hwmods: false
>> +
>> +examples:
>> + - |
>> + #include <dt-bindings/interrupt-controller/irq.h>
>> + #include <dt-bindings/interrupt-controller/arm-gic.h>
>> + #include <dt-bindings/soc/ti,sci_pm_domain.h>
>> +
>> + main_spi0: spi@2100000 {
>
> Drop unused labels.
>
>> + compatible = "ti,am654-mcspi","ti,omap4-mcspi";
>> + reg = <0x2100000 0x400>;
>> + interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
>> + clocks = <&k3_clks 137 1>;
>> + power-domains = <&k3_pds 137 TI_SCI_PD_EXCLUSIVE>;
>> + #address-cells = <1>;
>> + #size-cells = <0>;
>> + dmas = <&main_udmap 0xc500>, <&main_udmap 0x4500>;
>> + dma-names = "tx0", "rx0";
>> + };
>> --
>> 2.17.1
>>
>>