[PATCH] dt-bindings: spi: convert spi_atmel to json-schema

Krzysztof Kozlowski krzysztof.kozlowski at linaro.org
Wed Jun 29 06:23:52 PDT 2022


On 29/06/2022 14:58, Sergiu Moga wrote:
> Convert SPI binding for Atmel/Microchip SoCs to Device Tree Schema
> format.
> 
> Signed-off-by: Sergiu Moga <sergiu.moga at microchip.com>
> ---
>  .../devicetree/bindings/spi/atmel,spi.yaml    | 82 +++++++++++++++++++
>  .../devicetree/bindings/spi/spi_atmel.txt     | 36 --------
>  2 files changed, 82 insertions(+), 36 deletions(-)
>  create mode 100644 Documentation/devicetree/bindings/spi/atmel,spi.yaml
>  delete mode 100644 Documentation/devicetree/bindings/spi/spi_atmel.txt
> 
> diff --git a/Documentation/devicetree/bindings/spi/atmel,spi.yaml b/Documentation/devicetree/bindings/spi/atmel,spi.yaml
> new file mode 100644
> index 000000000000..751618a47235
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/spi/atmel,spi.yaml
> @@ -0,0 +1,82 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +# Copyright (C) 2022 Microchip Technology, Inc. and its subsidiaries
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/spi/atmel,spi.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Atmel SPI device
> +
> +maintainers:
> +  - Mark Brown <broonie at kernel.org>

This should be rather someone from Microchip.

> +
> +allOf:
> +  - $ref: "spi-controller.yaml#"

No need for quotes.

> +
> +properties:
> +  compatible:
> +    oneOf:
> +      - items:
> +          - const: atmel,at91rm9200-spi
> +      - items:

These are not items, just single entry. Should be combined with above
and made an 'enum'.

> +          - const: microchip,sam9x60-spi
> +      - items:
> +          - const: microchip,sam9x60-spi
> +          - const: atmel,at91rm9200-spi

This is wrong. Either this is a fallback or it is not. It's not the
Schroedinger's cat... Maybe your DTS are wrong.

> +
> +  reg:
> +    maxItems: 1
> +
> +  interrupts:
> +    maxItems: 1
> +
> +  cs-gpios: true

No need, coming from spi-controller.yaml.

> +
> +  clock-names:
> +    description:
> +      Tuple listing input clock names, "spi_clk" is a required element.

Skip description.

> +    contains:
> +      const: spi_clk
> +    additionalItems: true

no additionalItems.

> +
> +  clocks:
> +    maxItems: 1
> +
> +  atmel,fifo-size:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description: |
> +      Maximum number of data the RX and TX FIFOs can store for FIFO
> +      capable SPI controllers.

minimum and maximum for values, if it is known.

> +
> +required:
> +  - compatible
> +  - reg
> +  - interrupts
> +  - clock-names
> +  - clocks
> +
> +unevaluatedProperties: false
> +
> +examples:
> +  - |
> +    #include <dt-bindings/gpio/gpio.h>
> +    #include <dt-bindings/interrupt-controller/irq.h>
> +
> +    spi1: spi at fffcc000 {
> +        compatible = "atmel,at91rm9200-spi";
> +        reg = <0xfffcc000 0x4000>;
> +        interrupts = <13 IRQ_TYPE_LEVEL_HIGH 5>;
> +        #address-cells = <1>;
> +        #size-cells = <0>;
> +        clocks = <&spi1_clk>;
> +        clock-names = "spi_clk", "str2";

This does not make really sense. You have one clock.

> +        cs-gpios = <&pioB 3 GPIO_ACTIVE_HIGH>;
> +        atmel,fifo-size = <32>;
> +
> +        mmc at 0 {
> +            compatible = "mmc-spi-slot";
> +            reg = <0>;
> +            gpios = <&pioC 4 GPIO_ACTIVE_HIGH>;    /* CD */
> +            spi-max-frequency = <25000000>;
> +        };


Best regards,
Krzysztof



More information about the linux-arm-kernel mailing list