Re: [PATCH net-next v3 01/12] dt-bindings: net: dsa: convert ksz bindings document to yaml

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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 <ceggers@xxxxxxx>
> ---
>  .../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 <marex@xxxxxxx>
> +  - Woojung Huh <Woojung.Huh@xxxxxxxxxxxxx>
> +
> +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.huh@xxxxxxxxxxxxx>
>  M:	Microchip Linux Driver Support <UNGLinuxDriver@xxxxxxxxxxxxx>
>  L:	netdev@xxxxxxxxxxxxxxx
>  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
> 



[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux