On Wed, Nov 18, 2020 at 09:30:02PM +0100, Christian Eggers wrote:
> Convert the bindings document for Microchip KSZ Series Ethernet switches
> from txt to yaml.
> 
> Signed-off-by: Christian Eggers <cegg...@arri.de>
> ---
>  .../devicetree/bindings/net/dsa/ksz.txt       | 125 --------------
>  .../bindings/net/dsa/microchip,ksz.yaml       | 152 ++++++++++++++++++
>  MAINTAINERS                                   |   2 +-
>  3 files changed, 153 insertions(+), 126 deletions(-)
>  delete mode 100644 Documentation/devicetree/bindings/net/dsa/ksz.txt
>  create mode 100644 
> Documentation/devicetree/bindings/net/dsa/microchip,ksz.yaml
> 
> diff --git a/Documentation/devicetree/bindings/net/dsa/ksz.txt 
> b/Documentation/devicetree/bindings/net/dsa/ksz.txt
> deleted file mode 100644
> index 95e91e84151c..000000000000
> --- a/Documentation/devicetree/bindings/net/dsa/ksz.txt
> +++ /dev/null
> @@ -1,125 +0,0 @@
> -Microchip KSZ Series Ethernet switches
> -==================================
> -
> -Required properties:
> -
> -- compatible: For external switch chips, compatible string must be exactly 
> one
> -  of the following:
> -  - "microchip,ksz8765"
> -  - "microchip,ksz8794"
> -  - "microchip,ksz8795"
> -  - "microchip,ksz9477"
> -  - "microchip,ksz9897"
> -  - "microchip,ksz9896"
> -  - "microchip,ksz9567"
> -  - "microchip,ksz8565"
> -  - "microchip,ksz9893"
> -  - "microchip,ksz9563"
> -  - "microchip,ksz8563"
> -
> -Optional properties:
> -
> -- reset-gpios                : Should be a gpio specifier for a reset line
> -- microchip,synclko-125 : Set if the output SYNCLKO frequency should be set 
> to
> -                       125MHz instead of 25MHz.
> -
> -See Documentation/devicetree/bindings/net/dsa/dsa.txt for a list of 
> additional
> -required and optional properties.
> -
> -Examples:
> -
> -Ethernet switch connected via SPI to the host, CPU port wired to eth0:
> -
> -     eth0: ethernet@10001000 {
> -             fixed-link {
> -                     speed = <1000>;
> -                     full-duplex;
> -             };
> -     };
> -
> -     spi1: spi@f8008000 {
> -             pinctrl-0 = <&pinctrl_spi_ksz>;
> -             cs-gpios = <&pioC 25 0>;
> -             id = <1>;
> -
> -             ksz9477: ksz9477@0 {
> -                     compatible = "microchip,ksz9477";
> -                     reg = <0>;
> -
> -                     spi-max-frequency = <44000000>;
> -                     spi-cpha;
> -                     spi-cpol;
> -
> -                     ports {
> -                             #address-cells = <1>;
> -                             #size-cells = <0>;
> -                             port@0 {
> -                                     reg = <0>;
> -                                     label = "lan1";
> -                             };
> -                             port@1 {
> -                                     reg = <1>;
> -                                     label = "lan2";
> -                             };
> -                             port@2 {
> -                                     reg = <2>;
> -                                     label = "lan3";
> -                             };
> -                             port@3 {
> -                                     reg = <3>;
> -                                     label = "lan4";
> -                             };
> -                             port@4 {
> -                                     reg = <4>;
> -                                     label = "lan5";
> -                             };
> -                             port@5 {
> -                                     reg = <5>;
> -                                     label = "cpu";
> -                                     ethernet = <&eth0>;
> -                                     fixed-link {
> -                                             speed = <1000>;
> -                                             full-duplex;
> -                                     };
> -                             };
> -                     };
> -             };
> -             ksz8565: ksz8565@0 {
> -                     compatible = "microchip,ksz8565";
> -                     reg = <0>;
> -
> -                     spi-max-frequency = <44000000>;
> -                     spi-cpha;
> -                     spi-cpol;
> -
> -                     ports {
> -                             #address-cells = <1>;
> -                             #size-cells = <0>;
> -                             port@0 {
> -                                     reg = <0>;
> -                                     label = "lan1";
> -                             };
> -                             port@1 {
> -                                     reg = <1>;
> -                                     label = "lan2";
> -                             };
> -                             port@2 {
> -                                     reg = <2>;
> -                                     label = "lan3";
> -                             };
> -                             port@3 {
> -                                     reg = <3>;
> -                                     label = "lan4";
> -                             };
> -                             port@6 {
> -                                     reg = <6>;
> -                                     label = "cpu";
> -                                     ethernet = <&eth0>;
> -                                     fixed-link {
> -                                             speed = <1000>;
> -                                             full-duplex;
> -                                     };
> -                             };
> -                     };
> -             };
> -     };
> diff --git a/Documentation/devicetree/bindings/net/dsa/microchip,ksz.yaml 
> b/Documentation/devicetree/bindings/net/dsa/microchip,ksz.yaml
> new file mode 100644
> index 000000000000..010adb09a68f
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/net/dsa/microchip,ksz.yaml
> @@ -0,0 +1,152 @@
> +# SPDX-License-Identifier: GPL-2.0-only
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/net/dsa/microchip,ksz.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Microchip KSZ Series Ethernet switches
> +
> +allOf:
> +  - $ref: dsa.yaml#

Move this after 'maintainers'.

> +
> +maintainers:
> +  - Marek Vasut <ma...@denx.de>
> +  - Woojung Huh <woojung....@microchip.com>
> +
> +properties:
> +  # See Documentation/devicetree/bindings/net/dsa/dsa.yaml for a list of 
> additional
> +  # required and optional properties.
> +  compatible:
> +    enum:
> +      - microchip,ksz8765
> +      - microchip,ksz8794
> +      - microchip,ksz8795
> +      - microchip,ksz9477
> +      - microchip,ksz9897
> +      - microchip,ksz9896
> +      - microchip,ksz9567
> +      - microchip,ksz8565
> +      - microchip,ksz9893
> +      - microchip,ksz9563
> +      - microchip,ksz8563
> +
> +  reset-gpios:
> +    description:
> +      Should be a gpio specifier for a reset line.
> +    maxItems: 1
> +
> +  microchip,synclko-125:
> +    $ref: /schemas/types.yaml#/definitions/flag
> +    description:
> +      Set if the output SYNCLKO frequency should be set to 125MHz instead of 
> 25MHz.
> +
> +required:
> +  - compatible
> +  - reg
> +
> +additionalProperties: false

You need to use unevaluatedProperties instead.

> +
> +examples:
> +  - |
> +    #include <dt-bindings/gpio/gpio.h>
> +
> +    // Ethernet switch connected via SPI to the host, CPU port wired to eth0:
> +    eth0 {
> +        fixed-link {
> +            speed = <1000>;
> +            full-duplex;
> +        };
> +    };
> +
> +    spi0 {
> +        #address-cells = <1>;
> +        #size-cells = <0>;
> +
> +        pinctrl-0 = <&pinctrl_spi_ksz>;
> +        cs-gpios = <&pioC 25 0>;
> +        id = <1>;
> +
> +        ksz9477: switch@0 {
> +            compatible = "microchip,ksz9477";
> +            reg = <0>;
> +            reset-gpios = <&gpio5 0 GPIO_ACTIVE_LOW>;
> +
> +            spi-max-frequency = <44000000>;
> +            spi-cpha;
> +            spi-cpol;

Are these 2 optional or required? Being optional is rare as most 
devices support 1 mode, but not unheard of. In general, you shouldn't 
need them as the driver should know how to configure the mode if the h/w 
is fixed.

> +
> +            ethernet-ports {
> +                #address-cells = <1>;
> +                #size-cells = <0>;
> +                port@0 {
> +                    reg = <0>;
> +                    label = "lan1";
> +                };
> +                port@1 {
> +                    reg = <1>;
> +                    label = "lan2";
> +                };
> +                port@2 {
> +                    reg = <2>;
> +                    label = "lan3";
> +                };
> +                port@3 {
> +                    reg = <3>;
> +                    label = "lan4";
> +                };
> +                port@4 {
> +                    reg = <4>;
> +                    label = "lan5";
> +                };
> +                port@5 {
> +                    reg = <5>;
> +                    label = "cpu";
> +                    ethernet = <&eth0>;
> +                    fixed-link {
> +                        speed = <1000>;
> +                        full-duplex;
> +                    };
> +                };
> +            };
> +        };
> +
> +        ksz8565: switch@1 {
> +            compatible = "microchip,ksz8565";
> +            reg = <1>;
> +
> +            spi-max-frequency = <44000000>;
> +            spi-cpha;
> +            spi-cpol;
> +
> +            ethernet-ports {
> +                #address-cells = <1>;
> +                #size-cells = <0>;
> +                port@0 {
> +                    reg = <0>;
> +                    label = "lan1";
> +                };
> +                port@1 {
> +                    reg = <1>;
> +                    label = "lan2";
> +                };
> +                port@2 {
> +                    reg = <2>;
> +                    label = "lan3";
> +                };
> +                port@3 {
> +                    reg = <3>;
> +                    label = "lan4";
> +                };
> +                port@6 {
> +                    reg = <6>;
> +                    label = "cpu";
> +                    ethernet = <&eth0>;
> +                    fixed-link {
> +                        speed = <1000>;
> +                        full-duplex;
> +                    };
> +                };
> +            };
> +        };
> +    };
> +...
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 18b5b7896af8..d1003033412f 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -11508,7 +11508,7 @@ M:    Woojung Huh <woojung....@microchip.com>
>  M:   Microchip Linux Driver Support <unglinuxdri...@microchip.com>
>  L:   netdev@vger.kernel.org
>  S:   Maintained
> -F:   Documentation/devicetree/bindings/net/dsa/ksz.txt
> +F:   Documentation/devicetree/bindings/net/dsa/microchip,ksz.yaml
>  F:   drivers/net/dsa/microchip/*
>  F:   include/linux/platform_data/microchip-ksz.h
>  F:   net/dsa/tag_ksz.c
> -- 
> Christian Eggers
> Embedded software developer
> 
> Arnold & Richter Cine Technik GmbH & Co. Betriebs KG
> Sitz: Muenchen - Registergericht: Amtsgericht Muenchen - 
> Handelsregisternummer: HRA 57918
> Persoenlich haftender Gesellschafter: Arnold & Richter Cine Technik GmbH
> Sitz: Muenchen - Registergericht: Amtsgericht Muenchen - 
> Handelsregisternummer: HRB 54477
> Geschaeftsfuehrer: Dr. Michael Neuhaeuser; Stephan Schenk; Walter Trauninger; 
> Markus Zeiler
> 

Reply via email to