Re: [PATCH net-next v3 01/12] dt-bindings: net: dsa: convert ksz bindings document to yaml
From: Rob Herring
Date: Thu Nov 19 2020 - 08:48:08 EST
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 = <ð0>;
> - 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 = <ð0>;
> - 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 = <ð0>;
> + 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 = <ð0>;
> + 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
>